cURL login-Sitzung
Ich brauchen, um eine website als angemeldeter Benutzer. Der code unten tut den job gut, aber es hat sich anmelden, jedes mal wenn das script aufgerufen wird. Ich möchte die log-in nur einmal und dann verwenden session-cookies.
$c=curl_init();
$url='http://www.site.com/login/';
$opt=array(CURLOPT_URL=>$url,CURLOPT_COOKIEJAR=>'cookie.txt',CURLOPT_POST=>1,CURLOPT_RETURNTRANSFER=>1,CURLOPT_POSTFIELDS=>'username=usr123&password=pass&submit='); //submit=1 works too
curl_setopt_array($c,$opt);
curl_exec($c);
$url='http://www.site.com/next';
$opt2=array(CURLOPT_URL=>$url,CURLOPT_RETURNTRANSFER=>1);
curl_setopt_array($c,$opt2);
$out=curl_exec($c);
echo $out;
curl_close($c);
Versuchte ich mit session, aber für einige Grund die Anmeldung des Benutzers funktioniert nicht.
$c=curl_init();
$ag='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)';
if(!file_exists('cookie.txt')){
$url='http://www.site.com/login/';
$opt=array(CURLOPT_URL=>$url,
CURLOPT_COOKIEJAR=>'cookie.txt',
CURLOPT_COOKIEFILE=>'cookie.txt',
CURLOPT_POST=>0,
CURLOPT_RETURNTRANSFER=>1,
CURLOPT_FOLLOWLOCATION=>1,
CURLOPT_USERPWD=>'usr123:pass,
CURLOPT_SSL_VERIFYPEER=>false,
CURLOPT_SSL_VERIFYHOST=>0,
CURLOPT_USERAGENT=>$ag);
curl_setopt_array($c,$opt);
curl_exec($c);
}
$url='http://www.site.com/next/';
$opt2=array(CURLOPT_URL=>$url,
CURLOPT_COOKIEJAR=>'cookie.txt',
CURLOPT_COOKIEFILE=>'cookie.txt',
CURLOPT_RETURNTRANSFER=>1,
CURLOPT_FOLLOWLOCATION=>1,
CURLOPT_SSL_VERIFYPEER=>false,
CURLOPT_SSL_VERIFYHOST=>2,
CURLOPT_USERAGENT=>$ag);
curl_setopt_array($c,$opt2);
$out=curl_exec($c);
echo $out;
curl_close($c);
Es sieht aus wie die Website ist mit HTTP-auth, richtig? Technisch brauchen Sie nicht auf "anmelden", senden Sie einfach die
Danke für die Anregung. Ich habe das problem gelöst. Die Lösung wird Hinzugefügt, um den ursprünglichen post
alle Rechte, hinzu, als eine Antwort
USERPWD
mit der ersten Anfrage, egal, wo er gehen muss. Wenn die Website ist etwas besonderes mit dem login und dann das setzen eines Cookies, seine schwer zu helfen, ohne zu sehen, wie die Website funktioniert.Danke für die Anregung. Ich habe das problem gelöst. Die Lösung wird Hinzugefügt, um den ursprünglichen post
alle Rechte, hinzu, als eine Antwort
InformationsquelleAutor user965748 | 2012-07-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lösung:
InformationsquelleAutor user965748