8796 sujets

Développement web côté serveur, CMS

Bonjour a tous

Voila j'ai un petit problème pour récupéré une [ value"" ] depuis une page distante

voici le code source de la page a récupéré


<form class="form" id="form" method="post" action="/en/Generic/Auth/Index/login"><div class="hidden"><input type="hidden" value="M8sy7VVRzjTE4ueJom9XBxz4QP3hlGPy" name="formToken"></div>
        <fieldset>
            <legend><span>Login</span></legend>
            <div class="fieldset">
                <div class="form required">
                    <label class="formRow1" for="username">User name</label>
                    <input type="text" value="" id="username" name="username" maxlength="255" class="input wFieldset" size="40">
                </div>
                <div class="form required">
                    <label class="formRow1" for="password">Password</label>
                    <input type="password" value="" id="password" name="password" maxlength="255" class="input wFieldset" size="40">
                </div>
                            </div>
        </fieldset>
        <p class="right">
            <input type="submit" value="Login" class="button">
        </p>
    </form>


J'arrive bien a tous recupe sauf
value="M8sy7VVRzjTE4ueJom9XBxz4QP3hlGPy" 


qui me sort toujours ma balise value comme ceci
value=""


Cette balise value change a chaque rafraichissement de la page du site en question



Voici se que j'ai tester pour recuper la valeur da value

1ER test :

$page = file_get_contents('[b]URL_Du_Site_Distant[/b]');
$page = substr($page, strstr($page, '<div class="hidden">'), strstr($page, '</div>'));



<form class="form" id="form" method="post" action="[b]URL_Du_Site_Distant[/b]">
						 '.$page.'
                                     <td>Nom d\'utilisateur: <input type="text" value="" id="username" name="username" maxlength="255" class="input wFieldset" size="40">
								     </td><br />
                                    <td>Mot de passe: <input type="password" value="" id="password" name="password" maxlength="255" class="input wFieldset" size="40">  
									</td><br />
                                    <td>
							                        <input type="submit" value="Login" class="button">
						            </td>
                             </form> [:code]


Voila mon resultat 

[code]
<form action="https://my.server4you.com/en/Generic/Auth/Index/login" method="post" id="form" class="form">
						 <input type="hidden" name="formToken" value="">
                                     </form>



2eme TEST


function get_title($lien){

     // On récupère le code HTML de la page
     $html=file_get_contents($lien);

    // On extrait le contenu compris entre <title> et </title>
    eregi('<input type="hidden" name="formToken" value="(.*)</div>', $html, $regs);

     // On retourne le résultat obtenu
     return $regs[1];
}
    
$titre = file_get_contents('Url_Site_Distant');



<form action="Url_Site_Distant" method="post" id="form" class="form"><div class="hidden">
						 <input type="hidden" name="formToken" value="'.$titre.'</div>
                                     <td>Nom d\'utilisateur: <input type="text" value="" id="username" name="username" maxlength="255" class="input wFieldset" size="40">
								     </td><br />
                                    <td>Mot de passe: <input type="password" value="" id="password" name="password" maxlength="255" class="input wFieldset" size="40">  
									</td><br />
                                    <td>
							                        <input type="submit" value="Login" class="button">
						            </td>
                             </form>  


Celui ci me recupe bien ma valeur du VALUE , mes il m'affiche carrément la page du site distant
Modifié par jojo2a2a (19 May 2011 - 17:53)
Salut,

Essaie ceci...


function get_title($lien){
	// On récupère le code HTML de la page
	$html=file_get_contents($lien);

	// On extrait la valeur du champ formToken
	$title='';
	if(preg_match('%(?<=<div class="hidden">)\s*<input type="hidden" (?:name="formToken"\s+)?value="([^"]+)"(?:\s+name="formToken")?[^>]*>\s*(?=</div>)%i',$html,$regs))
		$title=$regs[1];

	// On retourne le résultat
	return $title;
}
a écrit :

Mmm, ça te sert à quoi de récupérer un token CSRF sur une page qui n'est pas à toi ?


pourquoi des que l'on veut recupe sur un site distant , on a toujours les même réponse

Reponse: Cela me sert a me loguer directement depuis mon site

J'ai une page administration , avec tous mes liens panel de mes différent services , qui s'affiche directement dans mon panel admin de mon site Smiley cligne


Merci eric mais ca ne fonctionne pas

voila mon code


function get_title($lien){ 
    // On récupère le code HTML de la page 
    $html=file_get_contents($lien); 
 
    // On extrait la valeur du champ formToken 
    $title='https://my.server4you.com/en/Generic/Auth/Index/login'; 
    if(preg_match('%(?<=<div class="hidden">)\s*<input type="hidden" (?:name="formToken"\s+)?value="([^"]+)"(?:\s+name="formToken")?[^>]*>\s*(?=</div>)%i',$html,$regs)) 
        $title=$regs[1]; 
 
    // On retourne le résultat 
    return $title; 
} 


$server4you = '
<table cellpadding="4" cellspacing="0" border="0" align="center" width="90%" style="border-collapse:separate" class="tborder">
         <tr>
             <td colspan="5" align="left">
                     <p><img src="'.$patchimages.'s4you.png" WIDTH="150" HEIGHT="50" border="0" align="center"></p>
             </td>
                         <td colspan="5" width="10%" align="right">
						 <form action="https://my.server4you.com/en/Generic/Auth/Index/login" method="post" id="form" class="form">
						<div class="hidden">
                        <input type="hidden" value="'.$title.'" name="formToken">
                        </div>
						       
                                     <td>Nom d\'utilisateur: <input type="text" value="" id="username" name="username" maxlength="255" class="input wFieldset" size="40">
								     </td><br />
                                    <td>Mot de passe: <input type="password" value="" id="password" name="password" maxlength="255" class="input wFieldset" size="40">  
									</td><br />
                                    <td>
							                        <input type="submit" value="Login" class="button">
						            </td>
                             </form> 
   
						 
						 
			


                            
                         </td>
         </tr>
</table>
';

// Affichage des variable sur la page 

echo '
'.$server4you.'
';


De corse aussi Eric ?
Smiley biggrin
jojo2a2a a écrit :
De Corse aussi Eric ?

Oui d'Ajaccio Smiley smile

jojo2a2a a écrit :
ca ne fonctionne pas

Et comme ceci ?

function get_title($lien){
	// On récupère le code HTML de la page
	$html=file_get_contents($lien);

	// On extrait la valeur du champ formToken
	$title='';
	if(preg_match('%(?<=<div class="hidden">)\s*<input type="hidden" (?:name="formToken"\s+)?value="([^"]+)"(?:\s+name="formToken")?[^>]*>\s*(?=</div>)%i',$html,$regs))
		$title=$regs[1];

	// On retourne le résultat
	return $title;
}

$title=get_title('https://my.server4you.com/en/Generic/Auth/Index/login');

$server4you='........';

// Affichage des variable sur la page 
echo $server4you;


NB : Maintenant il n'est pas garanti que la connection se fasse même si la valeur est récuperée correctement.
Merci , ça récupère bien la value , mais ça ne fonctionne pas , pour me connecter Smiley decu

Peut être une explication/Solution ?


PS : Suis de propriano moi Smiley biggrin
On a confirmation que le service utilisé sécurise l'accès aux compte des clients Smiley smile

Pourquoi ne pas placer dans une page du site, un lien vers la page de connexion ?

@ prestu
je pense vais devoir faire cela Smiley confused

le but étais de ne pas sortir de mes page administration Smiley cligne

Les autre page de mes services souvre bien dans mon panel admin

Encore merci poto Smiley cligne