-
-
//link: http://bbs.it-home.org - $discuz_url = 'http://127.0.0.1/discuz/';//Forum Address
- $login_url = $discuz_url .'logging.php?action=login';//Login page address
$post_fields = array();
- //The following two items do not need to be modified
- $post_fields['loginfield'] = 'username';
- $post_fields['loginsubmit'] = 'true';
- //Username and password, must be filled in
- $post_fields['username'] = 'tianxin';
- $post_fields ['password'] = '111111';
- //Secure Question
- //link: http://bbs.it-home.org
- $post_fields['questionid'] = 0;
- $post_fields['answer'] = '';
- //@todo verification code
- $post_fields['seccoverify'] = '';
//Get form FORMHASH
- $ch = curl_init($login_url);
- curl_setopt ($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- $contents = curl_exec($ch);
- curl_close($ch);
- preg_match('//i', $contents, $matches);
- if(!empty($matches)) {
- $formhash = $matches[1];
- } else {
- die('Not found the forumhash.');
- }
//POST data, get COOKIE, and put the cookie file in the temp directory of the website Next
- $cookie_file = tempnam('./temp','cookie');
$ch = curl_init($login_url);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
- curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
- curl_exec($ch) ;
- curl_close($ch);
//After getting the key cookie file, you can use the cookie file to simulate posting. The fid is the column ID of the forum
- $send_url = $discuz_url." post.php?action=newthread&fid=2";
$ch = curl_init($send_url);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
- curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
- $contents = curl_exec($ch);
- curl_close($ch);
//The hash code and login window here The regular hash code is different. The hidden here has an additional id attribute
- preg_match('//i', $contents, $matches);
- if(!empty($matches)) {
- $formhash = $matches[1];
- } else {
- die( 'Not found the forumhash.');
- }
$post_data = array();
- //Post title
- $post_data['subject'] = 'test2';
- //Post Content
- $post_data['message'] = 'test2';
- $post_data['topicsubmit'] = "yes";
- $post_data['extra'] = '';
- //Post tags
- $post_data['tags '] = 'test';
- //The hash code of the post, this is very critical! If this hash code is missing, discuz will warn you that the source page is incorrect
- $post_data['formhash']=$formhash;
$ch = curl_init($send_url);
- curl_setopt( $ch, CURLOPT_REFERER, $send_url); //Disguise REFERER
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
- curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
- curl_se topt( $ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
- $contents = curl_exec($ch);
- curl_close($ch);
//Clean up cookie file
- unlink($cookie_file);
- ?>
-
Copy code
>>> For more articles about php simulated login, please refer to the topic link: php simulated login php curl simulation Complete login tutorial
|