Ich habe den folgenden PHP-Code, der sich auf einer passwortgeschützten Seite anmeldet und die geschützte Seite ergreift. Das Skript funktioniert gut, aber ich möchte die Login-Funktion nur einmal verwenden, wenn ich eine andere geschützte Seite innerhalb der gleichen Domain erfassen möchte.Wie php curl response cookie wiederverwenden und Login-Schritte bei den folgenden Ausführungen des Skripts umgehen?
Ich möchte die Cookie-Datei verwenden, um die nächste geschützte Seite zu öffnen, anstatt die Login-Funktion erneut zu verwenden! In einem anderen Wort möchte ich nur den Login-Schritt zum Ergreifen anderer geschützter Seiten umgehen.
Kann mir jemand zeigen, wie das geht?
Hinweis: Meine Login-Funktion erstellt keine Cookies, ich sehe sie nicht im selben Ordner wie das Skript! Kann mir jemand sagen, warum?
<?
$ch=login();
$html=downloadUrl('http://www.example.com/page1.asp', $ch);
////echo $html;
function downloadUrl($Url, $ch){
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_REFERER, "http://www.google.com/");
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = curl_exec($ch);
return $output;
}
function login()
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/login.asp'); //login URL
curl_setopt ($ch, CURLOPT_POST, 1);
$post_array = array(
'txtUserName'=>'brad',
'txtPassword'=>'bradpassword',
);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $post_array);
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$store = curl_exec ($ch);
return $ch;
}
?>
<html>
<br>
<textarea rows="30" cols="150"><?PHP print_r($html); ?></textarea>
</html>
Also was zeigt 'cookie.txt'? –
Danke für answers.cookie.txt wird nicht im selben Ordner wie das PHP-Skript erstellt! Ich habe es selbst erstellt, aber nichts wurde darauf geschrieben! Wenn ich mich manuell auf der Remote-Site anmelde, werde ich mich auch nach vielen Tagen nicht mehr nach dem Passwort fragen! Ich möchte dasselbe erreichen, während ich dieses PHP-Skript mehrmals ausführe! denn wenn ich meinen aktuellen PHP-Code ausführe, bekomme ich die geschützten Seiten nicht, da mir die Website meine Religion so schnell verweigert! – user1788736
Haben Sie das gesehen? http://stackoverflow.com/questions/895786/how-to-get-the-cookies-from-a-php-curl-into-a-variable –