Home > Backend Development > PHP Tutorial > php uses curl to simulate logging into discuz and simulating posting_PHP tutorial

php uses curl to simulate logging into discuz and simulating posting_PHP tutorial

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-07-20 11:14:44
Original
1021 people have browsed it

$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';
// Security question
$post_fields['questionid'] = 0;
$post_fields['answer'] = '';
//@todo verification code
$post_fields['seccoverify'] = ' ';

//Get the 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, obtain COOKIE, and put the cookie file in the temp directory of the website
$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, 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 here is different from the hash code in the login window. 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 tag
$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 page you came from 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_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$contents = curl_exec($ch);
curl_close($ch);

//Clean cookie file
unlink($cookie_file);

?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/440268.htmlTechArticle?php $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...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
php data acquisition?
From 1970-01-01 08:00:00
0
0
0
PHP extension intl
From 1970-01-01 08:00:00
0
0
0
How to learn php well
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template