2010-04-06 8 views
1

J'essaie le code suivant pour envoyer des données de publication au formulaire de connexion, puis recharger cette page dans le navigateur en tant qu'utilisateur connecté. en quelque sorte, il ne sauvegarde pas le cookie, et en le réutilisant pour la fonction header(), peut-on faire la même chose que l'en-tête en appelant à nouveau curl après avoir envoyé les informations de connexion?Connectez-vous via via curl puis ouvrez cette page connectée



.. 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST , false); 
curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']); 
//curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); 
curl_setopt($ch, CURLOPT_MAXREDIRS, 1); 

// Apply the XML to our curl call 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 

$data = curl_exec($ch); 

setcookie($cookie); 
header('location: ' . $url); 

die(); 

+1

Est-ce pour le même domaine? Si non, c'est impossible. Si c'est le cas, je ne comprends tout simplement pas. En outre, aucune raison pour quelqu'un de mourir à la fin. – zaf

Répondre

3

Vous pouvez vous connecter en utilisant cURL. Et faites tout ce que vous avez à faire en utilisant cURL. Je ne suis pas sûr si vous pouvez restaurer ce cookie et le réutiliser pour une utilisation ultérieure. Vous pouvez transmettre une chaîne en tant qu'identifiant pour votre cookie dans cURL. Je ne suis pas sûr si vous pouvez l'utiliser pour charger le cookie ailleurs ... Peut-être, peut-être pas. Cependant, le code suivant fonctionne très bien. Au moins pour les choses dont j'ai besoin.

Bonne chance.

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL , "http://www.example.com/login.php"); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "login=" . $login . "&password=" . $password . "&submit=submit"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies"); 
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies"); 
$response= curl_exec ($ch); 
curl_close($ch); 

Ne pas oublier que vous devez utiliser la même clé de cookies pour toutes les autres actions que vous envisagez d'effectuer dans ce domaine ..

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL , "http://www.example.com/datapageyouneed.php"); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies"); 
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies"); 
$reponse= curl_exec ($ch); 
curl_close($ch); 
1

qui est impossible
et ressemble à du phishing.
laisser l'utilisateur se connecter.

+3

Vous avez presque obtenu le Haiku, mais c'est 5-7-5, pas 5-5-7. –

+0

je devrais pouvoir faire ceci avec javascript maintenant. –

Questions connexes