Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Methode zur Realisierung einer Hintergrund-Remote-Anmeldung beim Zhengfang Educational Affairs System basierend auf Curl

PHP-Methode zur Realisierung einer Hintergrund-Remote-Anmeldung beim Zhengfang Educational Affairs System basierend auf Curl

墨辰丷
墨辰丷Original
2018-05-31 17:37:011639Durchsuche

Dieser Artikel stellt hauptsächlich die Methode der Remote-Anmeldung beim Zhengfang Educational Affairs System vor, die auf dem PHP-Curl-Hintergrund basiert. Er analysiert die Betriebsfähigkeiten von PHP mithilfe von Curl und Cookies, um eine Remote-Anmeldung in Form von Beispielen zu erreichen it

Dieser Artikel beschreibt die Methode der Remote-Anmeldung beim Zhengfang Academic Affairs System basierend auf dem PHP-Curl-Hintergrund. Ich teile es Ihnen als Referenz mit:

Ich habe seit letztem Jahr darüber nachgedacht, wie ich dieses Problem lösen kann, aber der Bestätigungscode muss ausgefüllt werden In.

Wenn Sie Tickets wie 360 ​​​​erhalten können, das den Bestätigungscode automatisch erkennt, ist alles in Ordnung. Kein Unsinn mehr. Zurück zum Thema

Hier wird CURL verwendet.

Designidee: Melden Sie sich zuerst auf der Seite an, um COOKIES zu erhalten, und verwenden Sie dann die Cookies, um den Server für den Bestätigungscode zu finden. Stellen Sie abschließend alle Informationen bereit, die der Server benötigt.

(Diese Art des Denkens besteht darin, den Browser, der auf die Seite zugreift, vollständig zu simulieren, und der grundlegende Unterschied besteht darin, dass es sich um einen Menschen gegenüber einer Maschine handelt)

public function index(){
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url); //填对于的URL就可以了
 curl_setopt($ch, CURLOPT_HEADER, 0);
 curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
 curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); //主要cookie的路径,本保存页面cookie
 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //返回结果自动输出
 $response = curl_exec($ch);
 curl_close($ch);
}

Besuchen Sie die Homepage des Zhengfang Academic Affairs System. Der erste Schritt besteht darin, den HTML-Code in die Seite einzubinden, und der zweite Schritt besteht darin, die Cookies abzurufen.

Noch weitere Fragen? Was nützt es, HTML zu bekommen?

Wenn Sie den HTML-Code auf der Startseite des akademischen Verwaltungssystems genau beobachten, werden Sie feststellen, dass darin viele versteckte Felder vorhanden sind und diese Felder sich ändern.
Sie können sich also genauso gut den gesamten HTML-Code besorgen, ihn analysieren und dann alle erforderlichen Felder extrahieren.

HTML-Struktur

Haben Sie das gesehen? ? Für die Übermittlung von Daten sind ausgeblendete Felder erforderlich, und es dürfen nicht zu viele Felder vorhanden sein.

Seiteneffekt

Als nächstes möchte ich die wichtigste Frage beantworten: Wie erhalte ich den Bestätigungscode?

Zuerst wollte ich einfach nur

<img src="xxxx/CheckCode.aspx" />

. Obwohl der Bestätigungscode herauskommt, gehört er nicht Ihnen. Wenn Sie also die Remote-Anmeldung speichern, wird Ihnen mitgeteilt, dass der Bestätigungscode falsch ist

Wie erhalten Sie also Ihren eigenen Bestätigungscode? Was mir zu diesem Zeitpunkt natürlich in den Sinn kommt, sind Kekse.

Wie der Server unterscheidet, ob die Browseranfrage für dieselbe Person bestimmt ist, hängt von der Sitzungs-ID im Cookie ab.

Auf diese Weise. Wenn Sie die Cookies, die Sie auf der Homepage erhalten haben, nehmen und den Server nach Ihrem Bestätigungscode fragen, wird es dann zu einer Fehlermeldung kommen?

public function getImg()
{
    $url = "http://xxxx/CheckCode.aspx";
    $filedir = SITE_PATH."/TMP/Cookies";
    $cookie_file = $filedir."/cookie.txt";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); //
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_TIMEOUT, "10");
    header("Content-type:image/gif"); //这个视不同图片格式不一样,请注意
    echo curl_exec($ch);
    curl_close($ch);
}

Dann rufen Sie diese Methode auf anderen Seiten auf und Sie können den Bestätigungscode erhalten.

CURLs PHP-Anfrage und das von Ihrem Browser ausgegebene PHP gehören zu zwei verschiedenen Threads, daher werden ihre Cookies unterschiedlich geteilt.

Sie können sich auf diese Weise anmelden, aber denken Sie nicht, dass Sie nach der Anmeldung auf diese Weise alle Funktionen bedienen können, dann liegen Sie falsch. Es gibt noch ein kleines Detail. .

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

Implementierung und Effizienzanalyse von vier Sortieralgorithmen in PHP [Blasensortierung, Einfügungssortierung, Auswahlsortierung und Schnellsortierung]

Zusammenfassung der PHP-Interviewfragen

Über die Think PHP Deployment Nginx-Konfiguration

Das obige ist der detaillierte Inhalt vonPHP-Methode zur Realisierung einer Hintergrund-Remote-Anmeldung beim Zhengfang Educational Affairs System basierend auf Curl. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn