


PHP verwendet Curl, um die Anmeldung bei einer Website mit Best?tigungscode zu simulieren
Jul 29, 2016 am 09:11 AMDie Anforderung ist wie folgt: Sie müssen sich mit einem Best?tigungscode bei einer Website anmelden. Es ist jedoch unm?glich, die Daten st?ndig manuell zu erfassen ist der Ergebniscode aus dem Test! Bitte beziehen Sie sich ggf. darauf!
<?php namespace Home\Controller; use Think\Controller; class LoginController extends Controller { protected $cookieName = array('cookie_verify', 'cookie_verify'); protected $cookiePath = '/cookie/'; protected $cookiePathFile = array(); public function index() { $this->display(); } public function _initialize(){ foreach($this->cookieName as $key => $name) { $this->cookiePathFile[] = ROOT_PATH . $this->cookiePath . $this->cookieName[$key] . '_xxx.txt'; } } /** * 登錄xxx */ public function xxxLogin() { $username = I('username'); $password = I('password'); $verifyCode = I('verify'); $loginData = array( '__VIEWSTATE' => '/wEPDwUKMTU0MzAzOTU4NmQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFDExvZ2luX1N1Ym1pdL/yae69NsY163G3yuP0lxjz8oXu', //不把參數(shù)補(bǔ)全可能會(huì)不被響應(yīng)哦 '__VIEWSTATEGENERATOR' => 'DC42DE27', 'txt_UserName' => $username, 'txt_PWD' => $password, 'txt_VerifyCode' => $verifyCode, 'SMONEY' => 'ABC', 'Login_Submit.x' => '52', 'Login_Submit.y' => '19', ); $getBack = $this->_cookieRequest('http://xxx.com/noLogin.aspx', $loginData); if(preg_match('/<div[^\<div]*?id\s*=\s*[\'\"]{1}div_msg[\'\"]{1}.*?>(.*?)<\/div>/s', $getBack, $match)){ echo 'matched\r\n'; print_r($match); }else{ echo $getBack, '<br />'; $paramsFull = parse_url($getBack); parse_str($paramsFull['query'], $paramsFull['parsedQuery']); if(!empty($paramsFull['parsedQuery']['Warn'])) { $msg = "您好,歡迎來P,請先登錄。"; switch ($paramsFull['parsedQuery']['Warn']) { case '2': $msg = '您輸入的驗(yàn)證碼錯(cuò)誤,請重試'; break; case '3': $msg = '該帳號不存在,還沒帳號?'; break; case '5': $msg = '賬戶已注銷'; break; case '6': $msg = '密碼錯(cuò)誤,如果連續(xù)錯(cuò)誤3次半小時(shí)內(nèi)不能登錄!'; break; case '20': $msg = '今日密碼錯(cuò)誤3次及以上,請于半小時(shí)后再來登錄!'; break; case '21': $msg = '今日您所在IP的所有帳號密碼錯(cuò)誤9次以上,請于半小時(shí)后再來登錄!'; break; case '22': $msg = '登錄失敗,您所在IP今日登錄的帳號過多!'; break; case '23': $msg = '登錄失敗,驗(yàn)證碼失效!'; break; case '32': $msg = '該帳號已經(jīng)綁定其他PC蛋蛋帳號!'; break; case '33': $msg = '一臺電腦一天只能注冊一個(gè)帳號!'; break; } $this->error($msg, '', 5); }else{ $_SESSION['user_id'] = '123456'; //登錄設(shè)置session $this->success('登錄P網(wǎng)站成功', U('Index/index'), 5); } } } /** * 獲取驗(yàn)證碼 */ public function getVerifyCode() { $img = $this->_cookieRequest('http://xxx.com/VerifyCode_Login.aspx?id=' . rand(10000,999999), null, true, 1); echo $img; } /** * 刪除cookie */ public function clearCookie() { for($i = 0; $i <count($this->cookieName); $i++) { setcookie($this->cookieName[$i], '', time() - 3600); } // unlink($this->cookiePathFile); $this->success('清除cookie成功!'); } /** * 帶COOKIE的訪問curl * @param $url * @param null $data * @param bool $redirect * @return mixed */ public function _cookieRequest($url, $data = null, $redirect = false, $cookieNum = 0) { $ch = curl_init(); $params[CURLOPT_URL] = $url; //請求url地址 $params[CURLOPT_HEADER] = false; //是否返回響應(yīng)頭信息 $params[CURLOPT_RETURNTRANSFER] = true; //是否將結(jié)果返回 $params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向 $params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1'; if($data) { $params[CURLOPT_POST] = true; $params[CURLOPT_POSTFIELDS] = http_build_query($data); } //判斷是否有cookie,有的話直接使用 if (!empty($_COOKIE[$this->cookieName[$cookieNum]]) && is_file($this->cookiePathFile[$cookieNum])) { $params[CURLOPT_COOKIEFILE] = $this->cookiePathFile[$cookieNum]; //這里判斷cookie } else { // $cookie_jar = tempnam($cookie_path, 'cookie'); //產(chǎn)生一個(gè)cookie文件 $params[CURLOPT_COOKIEJAR] = $this->cookiePathFile[$cookieNum]; //寫入cookie信息 setcookie($this->cookieName[$cookieNum], $this->cookiePathFile[$cookieNum], time() + 120); //保存cookie路徑 } curl_setopt_array($ch, $params); //傳入curl參數(shù) $content = curl_exec($ch); $headers = curl_getinfo($ch); // echo $content; curl_close($ch); if ($content != $headers && $redirect == false){ return $headers["url"]; } return $content; } }
Das Obige stellt vor, wie PHP Curl verwendet, um die Anmeldung bei einer Website mit einem Best?tigungscode zu simulieren, einschlie?lich des relevanten Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die an PHP-Tutorials interessiert sind.

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Viele Benutzer werden sich bei der Auswahl von Smartwatches für die Marke Huawei entscheiden. Viele Benutzer sind neugierig auf den Unterschied zwischen Huawei GT3pro und GT4. Was sind die Unterschiede zwischen Huawei GT3pro und GT4? 1. Aussehen GT4: 46 mm und 41 mm, das Material ist Glasspiegel + Edelstahlgeh?use + hochaufl?sende Faserrückschale. GT3pro: 46,6 mm und 42,9 mm, das Material ist Saphirglas + Titangeh?use/Keramikgeh?use + Keramikrückschale 2. Gesundes GT4: Mit dem neuesten Huawei Truseen5.5+-Algorithmus werden die Ergebnisse genauer. GT3pro: EKG-Elektrokardiogramm sowie Blutgef?? und Sicherheit hinzugefügt

Cookies werden normalerweise im Cookie-Ordner des Browsers gespeichert. Wenn Sie die Cookie-Datei direkt ?ffnen, wird m?glicherweise ein verstümmelter oder unleserlicher Inhalt angezeigt. Verwenden Sie daher am besten die von Ihrem Browser bereitgestellte Cookie-Verwaltungsoberfl?che zum Anzeigen und Verwalten von Cookies.

Cookies auf Ihrem Computer werden je nach verwendetem Browser und Betriebssystem an bestimmten Orten in Ihrem Browser gespeichert: 1. Google Chrome, gespeichert unter C:\Benutzer\IhrBenutzername\AppData\Local\Google\Chrome\User Data\Default \Cookies usw.

Warum das Snipping-Tool unter Windows 11 nicht funktioniert Das Verst?ndnis der Grundursache des Problems kann dabei helfen, die richtige L?sung zu finden. Hier sind die h?ufigsten Gründe, warum das Snipping Tool m?glicherweise nicht ordnungsgem?? funktioniert: Focus Assistant ist aktiviert: Dies verhindert, dass das Snipping Tool ge?ffnet wird. Besch?digte Anwendung: Wenn das Snipping-Tool beim Start abstürzt, ist es m?glicherweise besch?digt. Veraltete Grafiktreiber: Inkompatible Treiber k?nnen das Snipping-Tool beeintr?chtigen. St?rungen durch andere Anwendungen: Andere laufende Anwendungen k?nnen mit dem Snipping Tool in Konflikt geraten. Das Zertifikat ist abgelaufen: Ein Fehler w?hrend des Upgrade-Vorgangs kann zu diesem Problem führen. Diese einfache L?sung ist für die meisten Benutzer geeignet und erfordert keine besonderen technischen Kenntnisse. 1. Aktualisieren Sie Windows- und Microsoft Store-Apps

Das Funktionsprinzip von Cookies besteht darin, dass der Server Cookies sendet, der Browser Cookies speichert und der Browser Cookies verarbeitet und speichert. Detaillierte Einführung: 1. Der Server sendet ein Cookie und der Server sendet einen HTTP-Antwortheader mit dem Cookie an den Browser. Dieses Cookie enth?lt einige Informationen, wie z. B. die Identit?tsauthentifizierung des Benutzers, Pr?ferenzen oder den Inhalt des Warenkorbs. Nachdem der Browser dieses Cookie erhalten hat, wird es auf dem Computer des Benutzers gespeichert. 2. Der Browser speichert Cookies usw.

Zu den Gefahren von Cookie-Lecks geh?ren der Diebstahl pers?nlicher Identit?tsinformationen, die Verfolgung des pers?nlichen Online-Verhaltens und der Diebstahl von Konten. Detaillierte Einführung: 1. Pers?nliche Identit?tsinformationen wie Name, E-Mail-Adresse, Telefonnummer usw. wurden gestohlen. Diese Informationen k?nnen von Kriminellen für illegale Aktivit?ten wie Identit?tsdiebstahl und Betrug verwendet werden. 2. Pers?nliches Online-Verhalten wird verfolgt und mithilfe von Cookies analysiert werden, k?nnen Kriminelle mehr über den Browserverlauf, die Einkaufspr?ferenzen, Hobbys usw. des Benutzers erfahren. 3. Das Konto wird gestohlen, indem die Anmeldebest?tigung umgangen wird und direkt auf das Konto des Benutzers zugegriffen wird.

L?sungen für den Fall, dass ?document.cookie“ nicht abgerufen wird: 2. ?Same-Origin“-Richtlinie 4. ?Cookie“ ist nicht vorhanden oder l?uft ab; . Viewer-Modus; 8. Serverprobleme; 10. Konsolenprotokoll überprüfen;

Cookies auf dem Mobiltelefon werden in der Browseranwendung des Mobilger?ts gespeichert: 1. Auf iOS-Ger?ten werden Cookies unter Einstellungen -> Safari -> Erweitert -> Website-Daten des Safari-Browsers gespeichert. 2. Auf Android-Ger?ten werden Cookies gespeichert in Einstellungen -> Site-Einstellungen -> Cookies des Chrome-Browsers usw.
