$baseUrl = preg_match("/^http:\\/\\//", $url) ? $url : "http://" . $url . "/"; //账号登录地址 $loginPageUrl = $baseUrl . 'member.php?mod=logging&action=login'; //账号信息提交地址 $loginSubmitUrl = $baseUrl . 'member.php?mod=logging&action=login&loginsubmit=yes&loginhash=LNvu3'; //存放Cookies的文件 $cookie_file = tempnam('./', 'cookie'); //访问论坛登录页面,保存Cookies $res = curl_get($loginPageUrl, false, true); if (preg_match('!charset=gbk\\"!i', $res) || preg_match('!charset=\\"gbk\\"!i', $res)) { $gbk = 1; } else { $gbk = 0; } //获取DiscuzX论坛的formhash验证串 $formhash = get_formhash($res); //构建登录信息 $login_array = array('username' => $user, 'password' => $pwd, 'referer' => $baseUrl, 'questionid' => $quest, 'answer' => $answ, 'formhash' => $formhash); //携带cookie提交登录信息 $res = curl_get($loginSubmitUrl, true, true, $loginPageUrl, $login_array); if ($method == 'ljdaka') { //访问首页 $res = curl_get($baseUrl, true, true); if ($gbk) { $res = iconv('gbk', 'UTF-8//IGNORE', $res); } //获取formhash验证串 $formhash = get_formhash3($res); //签到信息提交地址 $signSubmitUrl = $baseUrl . 'plugin.php?id=ljdaka:daka&action=msg&formhash=' . $formhash; //提交签到信息
function check_formhash() { if (!isset($_POST['formhash'])) { return false; } $cookie = get_formhash(); return $_POST['formhash'] == $cookie; }