function verifyTiezi_send($uid, $tid, $pid, $water = 'StusGame Tieba Cloud Sign Plugin "verifyTiezi"', $device = 4) { if (empty($uid) || empty($tid) || empty($pid)) { return array('status' => '1', 'msg' => ''); } $ck = misc::GetCookie($pid); $xs = verifyTiezi_gettie($tid, $ck); $x = array('BDUSS' => $ck, '_client_id' => 'wappc_136' . rand_int(10) . '_' . rand_int(3), '_client_type' => $device, '_client_version' => '5.0.0', '_phone_imei' => md5(rand_int(16)), 'anonymous' => '0', 'content' => $water, 'fid' => $xs['fid'], 'kw' => $xs['word'], 'net_type' => '3', 'tbs' => $xs['tbs'], 'tid' => $tid, 'title' => ''); $y = ''; foreach ($x as $key => $value) { $y .= $key . '=' . $value; } $x['sign'] = strtoupper(md5($y . 'tiebaclient!!!')); $c = new wcurl('http://c.tieba.baidu.com/c/c/post/add', array('Content-Type: application/x-www-form-urlencoded')); /* //Note:普通的 $x = verifyTiezi_gettie($tid,$ck); $c = new wcurl('http://tieba.baidu.com'.$x['__formurl']); unset($x['__formurl']); $x['co'] = $water; */ $c->addcookie('BDUSS=' . $ck); $return = json_decode($c->post($x), true); $c->close(); if (!empty($return['error_code']) && $return['error_code'] != '1') { return array('status' => $return['error_code'], 'msg' => $return['error_msg']); } else { return array('status' => '1', 'msg' => ''); } }
function executeProcess($input) { global $conn; //inizializzo il parametro che viene utilizzato per passare ai processi il processId del processo precedente $previousIdProcessNum = ""; $idSetProcess = $input['idSetProcess']; $command = ""; $x_processId = isset($input['x_processId']) ? $input['x_processId'] : rand_int(12); $sSqlWrk = "INSERT INTO `process` ( `processId`, `idSetProcess`, `idProcessStatus`, `start`, `end`, `OSProcessId`, `command`) VALUES" . "('" . $x_processId . "', " . $idSetProcess . ", 1, NULL, NULL, NULL, '');"; $rswrk = $conn->Execute($sSqlWrk); $idProcessNum = $conn->Insert_ID(); $sSqlWrk = "SELECT * from setprocess WHERE idSetProcess = " . $idSetProcess . ""; $rswrk_setprocess = $conn->Execute($sSqlWrk); $priority = $rswrk_setprocess->fields('priority'); $separator = ""; $equal_symbol = ""; $log_suff = ""; if ($rswrk_setprocess->fields('idProcessType') == "1") { //caso di un eseguibile $command .= $rswrk_setprocess->fields('exe') . " "; $send_pid = $rswrk_setprocess->fields('sendPid') == "1" ? " --pid=" . $x_processId : ""; $separator = " "; $equal_symbol = ""; $log_suff = " >> " . EW_EXE_FILE_LOG; } elseif ($rswrk_setprocess->fields('idProcessType') == "2") { //caso di un web service http $command .= $rswrk_setprocess->fields('service') . "?"; $send_pid = $rswrk_setprocess->fields('sendPid') == "1" ? "&pid=" . $x_processId : ""; $separator = "&"; $equal_symbol = "="; $log_suff = ""; } //caricamento parametri processo $sSqlWrk = "SELECT * from processparams WHERE idSetProcess = " . $idSetProcess . " AND type = 0 ORDER BY `order`,idProcessParams"; $rswrk = $conn->Execute($sSqlWrk); $arwrk = $rswrk ? $rswrk->GetRows() : array(); $rowswrk = count($arwrk); for ($rowcntwrk = 0; $rowcntwrk < $rowswrk; $rowcntwrk++) { //controllo se il valore è passato con l'id del paramentro if ($arwrk[$rowcntwrk]['mode'] == "0" && @$input["params_" . $arwrk[$rowcntwrk]['idProcessParams']] == "1") { $command .= $arwrk[$rowcntwrk]['code'] . $separator; } //controllo se il valore è passato con il code del paramentro if ($arwrk[$rowcntwrk]['mode'] == "0" && @$input[$arwrk[$rowcntwrk]['code']] == "1") { $command .= $arwrk[$rowcntwrk]['code'] . $separator; } if ($arwrk[$rowcntwrk]['mode'] == "1" && @$input["params_" . $arwrk[$rowcntwrk]['idProcessParams']] != "") { $command .= $arwrk[$rowcntwrk]['code'] . $equal_symbol . @$input["params_" . $arwrk[$rowcntwrk]['idProcessParams']] . $separator; } if ($arwrk[$rowcntwrk]['mode'] == "1" && @$input[$arwrk[$rowcntwrk]['code']] != "") { $command .= $arwrk[$rowcntwrk]['code'] . $equal_symbol . @$input["params_" . $arwrk[$rowcntwrk]['idProcessParams']] . $separator; } $sSqlWrk = "INSERT INTO `processparamsvalue` ( `idProcessParams`, idProcessNum,value) VALUES" . "(" . $arwrk[$rowcntwrk]['idProcessParams'] . ", " . $idProcessNum . ", '" . $_GET["params_" . $arwrk[$rowcntwrk]['idProcessParams']] . $input[$arwrk[$rowcntwrk]['code']] . "');"; $conn->Execute($sSqlWrk); } $command .= $send_pid; $command .= $log_suff; if ($rswrk_setprocess->fields('isMultiProcess') == "0") { $sSqlWrk = "UPDATE `process` set `command` = '" . addslashes($command) . "', priority='" . $priority . "' WHERE idProcessNum= {$idProcessNum}"; $conn->Execute($sSqlWrk); } //caso di un multiprocesso if ($rswrk_setprocess->fields('isMultiProcess') == "1") { //imposto il valore di idProcessNumMaster uguale al numero stesso $sSqlWrk = "UPDATE `process` SET idProcessNumMaster = {$idProcessNum}, priority='" . $priority . "' WHERE idProcessNum = {$idProcessNum} "; $rswrk = $conn->Execute($sSqlWrk); $idProcessNumMaster = $idProcessNum; $sSqlWrk = "SELECT *,multiprocesssteps.priority as priority_queue from multiprocesssteps JOIN setprocess ON(setprocess.idSetProcess = multiprocesssteps.idSetProcessDetail) WHERE idSetProcessMaster = " . $idSetProcess . " AND `order` > 0 ORDER BY `order`"; $rswrk_subproc = $conn->Execute($sSqlWrk); $arwrk_subproc = $rswrk_subproc ? $rswrk_subproc->GetRows() : array(); $rowswrk_subproc = count($arwrk_subproc); for ($i = 0; $i < $rowswrk_subproc; $i++) { //inserimento step $sotto_processo = $arwrk_subproc[$i]; //if($arwrk_subproc[$i]['mode']=="0" && @$_GET["params_".$arwrk[$rowcntwrk]['idProcessParams']]=="1") $idSetProcess = $sotto_processo['idSetProcessDetail']; $command = ""; $x_processId = rand_int(12); $status = $i == 0 ? "1" : "8"; $priority = $sotto_processo['priority_queue']; $sSqlWrk = "INSERT INTO `process` ( `processId`, `idSetProcess`, `idProcessStatus`, `start`, `end`, `OSProcessId`, `command`,idProcessNumMaster,idMultiProcessSteps,priority) VALUES" . "('" . $x_processId . "', " . $idSetProcess . ", {$status}, NULL, NULL, NULL, ''," . $idProcessNumMaster . "," . $sotto_processo['idMultiProcessSteps'] . ",'{$priority}');"; $rswrk = $conn->Execute($sSqlWrk); $idProcessNum = $conn->Insert_ID(); $sSqlWrk = "SELECT * from setprocess WHERE idSetProcess = " . $idSetProcess . ""; $rswrk = $conn->Execute($sSqlWrk); $separator = ""; $equal_symbol = ""; $log_suff = ""; if ($rswrk->fields('idProcessType') == "1") { //caso di un eseguibile $command .= $rswrk->fields('exe') . " "; $send_pid = $rswrk->fields('sendPid') == "1" ? " --pid=" . $x_processId : ""; $separator = " "; $equal_symbol = ""; $log_suff = " >> " . EW_EXE_FILE_LOG; } elseif ($rswrk->fields('idProcessType') == "2") { //caso di un web service http $command .= $rswrk->fields('service') . "?"; $send_pid = $rswrk->fields('sendPid') == "1" ? "&pid=" . $x_processId : ""; //aggiungo se esiste il previous processId $send_pid .= $previousIdProcessNum != "" ? "&previousIdProcessNum=" . $previousIdProcessNum : ""; $separator = "&"; $equal_symbol = "="; $log_suff = ""; } //salvo il valore per utilizzarlo al processo successivo $previousIdProcessNum = $idProcessNum; $sSqlWrk = "SELECT * from processparams JOIN paramsconnection ON (processparams.idProcessParams = paramsconnection.idProcessParamsOutput) WHERE idMultiProcessSteps = " . $sotto_processo['idMultiProcessSteps']; $rswrk = $conn->Execute($sSqlWrk); $arwrk = $rswrk ? $rswrk->GetRows() : array(); $rowswrk = count($arwrk); for ($rowcntwrk = 0; $rowcntwrk < $rowswrk; $rowcntwrk++) { $input_value = ""; if ($arwrk[$rowcntwrk]['mode'] == "0" && $arwrk[$rowcntwrk]['fixedInput'] == "1") { $command .= $arwrk[$rowcntwrk]['code'] . $separator; $input_value = "1"; } else { //caso del valore da recuperare da un'altro ingresso $sSqlWrk = "SELECT value from `processparamsvalue` JOIN process ON(processparamsvalue.idProcessNum = process.idProcessNum) WHERE idProcessNumMaster = {$idProcessNumMaster} AND idProcessParams = " . $arwrk[$rowcntwrk]['idProcessParamsInput']; $rswrk_1 = $conn->Execute($sSqlWrk); if ($rswrk_1) { if (!$rswrk_1->EOF) { $command .= $arwrk[$rowcntwrk]['code'] . $equal_symbol . $rswrk_1->fields('value') . $arwrk[$rowcntwrk]['fixedInput'] . $separator; $input_value = $rswrk_1->fields('value'); } $rswrk_1->Close(); } elseif ($arwrk[$rowcntwrk]['mode'] == "1" && $arwrk[$rowcntwrk]['fixedInput'] != "") { // caso del solo valore fisso $command .= $arwrk[$rowcntwrk]['code'] . $equal_symbol . $arwrk[$rowcntwrk]['fixedInput'] . $separator; $input_value = $arwrk[$rowcntwrk]['fixedInput']; } } if ($input_value != "") { echo "<br> assegnato valore " . $arwrk[$rowcntwrk]['idProcessParams'] . ", " . $idProcessNum . ", '" . $input_value; $sSqlWrk = "INSERT INTO `processparamsvalue` ( `idProcessParams`, idProcessNum,value) VALUES" . "(" . $arwrk[$rowcntwrk]['idProcessParams'] . ", " . $idProcessNum . ", '" . $input_value . "');"; $rswrk = $conn->Execute($sSqlWrk); } else { echo "<br> non è stato assegnato il valore al parametro " . $arwrk[$rowcntwrk]['code']; } } $command .= $send_pid; //se è un processo di analisi videodrono con idSetProcess == if ($idSetProcess == "5") { echo "analisi parametri opzionali videodrome_set " . @$input['videodrome_set']; if (@$input['videodrome_set'] != "") { $query_ts = "SELECT id_training_concepts FROM videodromeparams WHERE name = '" . $_GET['videodrome_set'] . "' "; $training_sets = ew_ExecuteScalar($query_ts); //add_log("starting analysis:get training sets","query:".$query_ts." id trovati: ".$training_sets); echo "starting analysis:get training sets", "query:" . $query_ts . " id trovati: " . $training_sets; $query_op = "SELECT GROUP_CONCAT( '--bow-concept=', name\n\t\t\t\t\t\t\t\t\t\t\tSEPARATOR ' ' )\n\t\t\t\t\t\t\t\t\t\t\tFROM training_concepts AS tc\n\t\t\t\t\t\t\t\t\t\t\tWHERE id_training_concepts_status =5\n\t\t\t\t\t\t\t\t\t\t\tAND tc.id_training_sets\n\t\t\t\t\t\t\t\t\t\t\tIN ({$training_sets})"; $optional_params = ew_ExecuteScalar($query_op); //add_log("starting analysis:get optional params","query:".$query_op." stringa trovata: ".$optional_params); echo "starting analysis:get optional params", "query:" . $query_op . " stringa trovata: " . $optional_params; //aggiungo i parametri opzionali alla linea di comando if ($optional_params != "") { $command .= " " . $optional_params; } } } $command .= $log_suff; echo "<br> inserito command " . $command; $sSqlWrk = "UPDATE `process` set `command` = '" . $command . "' WHERE idProcessNum= {$idProcessNum}"; echo "<br> con query " . $sSqlWrk; echo "<br><br><br>"; $rswrk = $conn->Execute($sSqlWrk); } //inserimento step - fine } //caso di un multiprocesso - fine }
/** * 变量名称 * @param $verifyKey 发送邮件中的key,用于验证用户身份是否与$verifyCode匹配 * @param $query SQL查询语句 * @param $url 验证链接地址 * @param $verifyCode 验证码 * @param $pluginName 插件名 */ function sendMail($userMail, $uid) { global $m; global $today; $pluginName = 'white_vmail'; // 获取8位数的随机验证码并加密 $verifyCode = rand_int(8); $verifyKey = sha1(md5($verifyCode)); $url = SYSTEM_URL . '?plugin=' . $pluginName . '&key=' . $verifyKey; $title = '邮箱验证 -- ' . SYSTEM_NAME; $text = '亲爱的用户:<br><br>您好!<br><br>这是来自学园百度贴吧云签到平台的验证邮件,用来验证您的用户邮箱。<br><br>请登录学园百度贴吧云签到平台后点击该链接,以便验证你的邮箱。<br><br>提示:必须登录后点击!必须登录后点击!必须登录后点击! 否则无法验证!谢谢合作!<br><br>系统将会自动清除注册一定时间后没验证邮箱的用户!<hr/>验证链接:' . $url . '<br>(如果您无法点击此链接,请将它复制到浏览器地址栏后访问)<br><br><br>' . SYSTEM_NAME . '<br><br>(本邮件为系统自动发送,请勿回复)'; $mailResult = misc::mail($userMail, $title, $text); if ($mailResult != TRUE) { msg("向" . $userMail . "发送邮件失败。"); } $m->query("UPDATE " . DB_PREFIX . "users SET white_vmail_send = 1, white_vmail_code = " . $verifyCode . " WHERE id = " . $uid); Redirect(SYSTEM_URL . "index.php?mod=admin:setplug&plug=white_vmail"); }
public static function get() { $db = SimpleDBI::conn(); $q = $db->row('select * from question WHERE id = :id', ['id' => rand_int()]); return $q; }