$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); ?> |