2016-08-27 1 views
1

Ich logge mich mit diesem Code in mein Konto ein. http://www.mywebsite.com/login.php ';Anmelden und Abmelden in curl?

$postVars = 'username=myuser&password=1234'; 
$tmpfname = 'cookie.txt'; 
$page = '/login.php'; 
$headers = array( 
     "POST ".$page." HTTP/1.1", 
     "Content-Type: application/x-www-form-urlencoded; charset=UTF-8", 
     "Accept: */*", 
     "Accept-Language: en-US,en;q=0.5", 
     "Cache-Control: no-cache", 
     "Referer: http://www.mywebsite.com/", 
     "Content-length: ".strlen($postVars), 
     "Pragma: no-cache", 
     "Connection: keep-alive", 
     "X-Requested-With: XMLHttpRequest", 
     "Cache-Control: no-cache" 
    ); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0'); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postVars); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $tmpfname); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $tmpfname); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
$run = curl_exec($ch); 
$info = curl_getinfo($ch); 

curl_close($ch); 

?> 

Nach Anmeldung möchte ich http://mywebsite.com/profile.php und http://example.com/home.php,and Logout Besuch von http://mywebsite.com/logout.php Besuch

Was soll ich tun? Hast du ein Beispiel?

+0

Willkommen bei Stack Overflow! Es wird erwartet, dass Sie zumindest versuchen, dies für sich selbst zu programmieren. Stack Overflow ist kein Code-Schreibdienst. Ich würde vorschlagen, dass Sie einige [zusätzliche Forschung] (https://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-sected-of-stack-overflow-users), entweder über Google machen oder indem Sie SO suchen, versuchen Sie es und wenn Sie weiterhin Probleme haben, kommen Sie mit Ihrem Code zurück und erklären Sie, was Sie versucht haben und warum es nicht funktioniert hat. –

+0

Danke. Ich weiß nicht, was ich wirklich tun soll, also muss ich Ihre Vorschläge kennen. – cutecat654

Antwort

2

Ich denke, Sie möchten eine Sitzung in CURL pflegen (genau wie Browser). damit Sie andere Seiten besuchen können, auf denen die Zugangskontrolle aktiviert ist.

Dafür können Sie die Cookies in einer Datei speichern, während Sie sich einloggen. und verwende diese Cookies beim Besuch anderer Seiten. weil im Allgemeinen Sitzung über Cookies verwaltet wird.

Wenn Sie CURLOPT_COOKIE_FILE und CURLOPT_COOKIE_JAR verwenden, liest/schreibt curl die Cookies von/in eine Datei.

Fügen Sie also diese 3 Zeilen zu allen Curl-Abfragen hinzu.

$ckfile = tempnam ("/tmp", 'cookiename'); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile); 
curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile); 
+0

danke, es funktioniert. – cutecat654

Verwandte Themen