Ich versuche, Login-Informationen für eine Website mit curl php zu überprüfen. Request-Header sieht wie folgt aus:Wie bekomme ich Cookie in Anfrage Header während curl php
GET /loginpage.cgi HTTP/1.1
Host: test.com
Connection: keep-alive
pragma: no-cache
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Accept: */*
Referer: https://test.com/login.cgi
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8
Cookie: QSESSIONID=**c0da73be1917324c157e5c45b1bccd4f**
Der QSESSIONID Wert ändert sich jedes Mal, ich diesen Wert benötigen Pässe in der Kopfzeile sein, um eine Locke Anfrage von PHP zu machen. Mein PHP-Code sieht folgendermaßen aus:
<?php
$username = 'user';
$password = 'pass';
$url = "https://test.com/login.cgi?key=GetLoginUserInfo";
$ch = curl_init();
$headers = array();
$headers[] = "Pragma: no-cache";
$headers[] = "Accept-Encoding: gzip, deflate, br";
$headers[] = "Accept-Language: en-US,en;q=0.8";
$headers[] = "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36";
$headers[] = "Accept: */*";
$headers[] = "Referer: https://test.com/login.cgi?key=UDIT";
$headers[] = "Cookie: QSESSIONID=c0da73be1917324c157e5c45b1bccd4f";
$headers[] = "Connection: keep-alive";
$headers[] = "Cache-Control: no-cache, no-store, max-age=0, must-
revalidate";
$headers[] = "Expires: Fri, 01 Jan 1990 00:00:00 GMT";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$result = curl_exec($ch);
print_r($result);
$ch_error = curl_error($ch);
if ($ch_error) {
echo "cURL Error: $ch_error";
} else {
echo $result;
}
curl_close($ch);
?>
Jetzt, wenn ich dies ausführen. Wenn ich die Sitzungs-ID aus dem Header der dev tools-Anforderung abrufe und sie in meiner Kopfzeile ändere, kann ich mich nur anmelden, da sich der Wert jedes Mal ändert, wenn ich mich einmal anmelde.
Also meine Frage ist, ist ihre eine Möglichkeit, ich kann diesen Wert aus der Anfrage Header, so dass ich diesen Wert in meinem Header in PHP-Code anhängen kann. Oder auf eine andere Weise, die Sie vorschlagen können, bin ich offen für Vorschläge. Wenn ich diese Informationen aus PHP-Code entfernen, schlägt die Anfrage fehl, wenn
Hallo Ollie, ich bin immer noch nicht in der Lage, die Daten zu bekommen. Um meine Frage klarer zu stellen, versuche ich, die Daten auf dieser Seite zu erhalten, die so aussehen: {"Erfolg": "true", "data": {"UserId": "user", "LoginAccess": " READ-ONLY "," ActiveUsers ":" 1 "," UserLevel ":" 3 "}," Nachricht ":" "}, aber ich erhalte Zeichenfolge (60)" {"success": "false", "data ":" "," Nachricht ":" Sitzung abgelaufen "} –
Ich kann mich aber wegen der Sitzungs-ID nicht anmelden. Ich habe noch nie Sitzungen verwendet, also habe ich keine Ahnung, wie das geht. –
Mit Ihrer ersten Anfrage Wenn Sie auf die Seite klicken, wird ein Header angezeigt, der einige Cookies anzeigt: Set-Cookie: QSESSIONID = c0da73be1917324c157e5c45b1bccd4f; Sie müssen dies übernehmen und dann als Cookie-Header festlegen für jede andere Anfrage an das System, einschließlich der Anmeldung. – Ollie