Heim > Backend-Entwicklung > PHP-Tutorial > PHP verwendet CURL, um eine simulierte Anmeldung bei einer Website mit Bestätigungscode zu implementieren

PHP verwendet CURL, um eine simulierte Anmeldung bei einer Website mit Bestätigungscode zu implementieren

WBOY
Freigeben: 2016-08-08 09:21:24
Original
971 Leute haben es durchsucht

Viele simulierte Anmeldeprogramme im Internet werden meist über das Dienstprogramm Apache ausgeführt. Nach Erhalt des Bestätigungscodes wird dieser auf der Webseite angezeigt, ausgefüllt und dann veröffentlicht. Dies sieht jedoch sehr benutzerfreundlich aus Simulierte Anmeldung. Was Sie nach der Anmeldung tun, ist nicht unbedingt in kurzer Zeit abgeschlossen. Dies unterliegt daher der maximalen Ausführungszeit von PHP und einige Vorgänge verfügen möglicherweise nicht über ausreichende Berechtigungen.

Dieser Artikel enthält ein Programmbeispiel, um den Bestätigungscode abzurufen und den Bestätigungscode als Bild zu speichern. Nach 20 Sekunden schläft der Benutzer das Bild und füllt es aus Im Bestätigungscode liest das Programm nach Abschluss des 20-sekündigen Ruhezustands den Bestätigungscode von code.txt und meldet sich dann mit dem Bestätigungscode an. Der spezifische Code lautet wie folgt:

/**
 * 模拟登录
 */
 
//初始化变量
$cookie_file = "tmp.cookie";
$login_url = "http://xxx.com/logon.php";
$verify_code_url = "http://xxx.com/verifyCode.php";
 
echo "正在获取COOKIE...\n";
$curlj = curl_init();
$timeout = 5;
curl_setopt($curl, CURLOPT_URL, $login_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie_file); //获取COOKIE并存储
$contents = curl_exec($curl);
curl_close($curl);
 
echo "COOKIE获取完成,正在取验证码...\n";
//取出验证码
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $verify_code_url);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$img = curl_exec($curl);
curl_close($curl);
 
$fp = fopen("verifyCode.jpg","w");
fwrite($fp,$img);
fclose($fp);
echo "验证码取出完成,正在休眠,20秒内请把验证码填入code.txt并保存\n";
//停止运行20秒
sleep(20);
 
echo "休眠完成,开始取验证码...\n";
$code = file_get_contents("code.txt");
echo "验证码成功取出:$code\n";
echo "正在准备模拟登录...\n";
 
$post = "username=maben&pwd=hahahaha&verifycode=$code";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
$result=curl_exec($curl);
curl_close($curl);
 
//这一块根据自己抓包获取到的网站上的数据来做判断
if(substr_count($result,"登录成功")){
 echo "登录成功\n";
}else{
 echo "登录失败\n";
 exit;
}
 
//OK,开始做你想做的事吧。。。。。
Nach dem Login kopieren

Das Obige stellt die Methode zur Verwendung von CURL in PHP vor, um die Anmeldung bei einer Website mit einem Bestätigungscode zu simulieren, einschließlich verschiedener Aspekte. Ich hoffe, dass es für Freunde hilfreich sein wird, die an PHP-Tutorials interessiert sind.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage