PHP uses CURL to simulate logon to a website with a verification code.

Source: Internet
Author: User

PHP uses CURL to simulate logon to a website with a verification code.

Many simulated login programs on the Internet are mostly run through service programs such as apache. After obtaining the verification code, they are displayed on the webpage and then filled in and POST the code. Although it looks good, however, since simulated logon does not necessarily take a short time to complete the tasks after logon, this is subject to the maximum execution time of php, and some operations may have insufficient permissions.

This article provides a program example. The idea is to store the verification code as an image after obtaining the verification code, and then the program sleeps for 20 seconds. After 20 seconds, you can manually view the image, enter the verification code in the code.txt file, and the program will read the verification code of code.txt after 20 seconds of sleep. Then, the program will log on with the verification code. The Code is as follows:

/*** Simulate logon * // initialization variable $ cookie_file = "tmp. cookie "; $ login_url =" http://xxx.com/logon.php "; $ verify_code_url =" http://xxx.com/verifyCode.php "; echo" getting 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); // obtain COOKI E and store $ contents = curl_exec ($ curl); curl_close ($ curl); echo "the COOKIE is obtained, and the verification code is being obtained... \ n "; // obtain the verification code $ 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 "Verification code is completed, just waiting for a sleep, please enter the verification code into code.txt within 20 seconds and save \ n"; // stop running for 20 seconds sleep (20); echo "sleep complete, start to get the verification code... \ n "; $ code = file_get_contents (" code.txt "); echo" Verification code retrieved successfully: $ code \ n "; echo" Preparing to simulate logon... \ 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 ); // This part determines if (substr_count ($ result, "Logon successful") {echo "Logon successful \ n ";} else {echo "Logon Failed \ n"; exit;} // OK, start what you want to do .....

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.