Libcurl also supports HTTPS authentication, HTTP POST, HTTP PUT, FTP upload (This can also be done via PHP's FTP extension), HTTP forms-based uploads, proxies, cookies, and Username + password Authentication.
PHP's curl really is quite easy to use, online a search related articles are about Curl simulation landing, few people provide analog discuz post source code.
Copy the Code code as follows:
$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 ';
User name and password must be filled in
$post _fields[' username '] = ' tianxin ';
$post _fields[' password '] = ' 111111 ';
Safety questions
$post _fields[' QuestionID '] = 0;
$post _fields[' answer '] = ';
@todo Verification Code
$post _fields[' seccodeverify '] = ';
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 the Cookie,cookie file in the temp directory on 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);
The key cookie file can be taken with the cookie file to simulate the post, FID for the Forum column ID
$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);
Here the hash code and the login window hash code of the regular is not the same, here hidden more than an 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 '] = ';
Posts tab
$post _data[' tags '] = ' test ';
The hash code of the post, this is very key! If this hash code is missing, Discuz will warn you that the wrong page is being routed.
$post _data[' Formhash ']= $formhash;
$ch = Curl_init ($send _url);
curl_setopt ($ch, Curlopt_referer, $send _url); Camouflage 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 up Cookie Files
Unlink ($cookie _file);
?>
The above describes the Discuz Forum template PHP through the Curl Simulation landing Discuz Forum implementation code, including the Discuz forum template content, I hope the PHP tutorial interested in a friend helpful.