Discuz! X1.5函数分析:submitcheck()

函数submitcheck()

位置:/source/function/function_core.php

作用:

检查提交后的数据,主要是检查验证码、安全提问和来路是不是正常。
string $var 存放在全局变量中的下标
int $allowget 是不是允许get提交
int $seccodecheck 检查验证码
int $secqaacheck 检查安全问答
return返回 boolean

源码:ps.绿色为注释

function submitcheck($var, $allowget = 0, $seccodecheck = 0, $secqaacheck = 0) {
if(!getgpc($var)) {
return FALSE;
} else {
global $_G;
if($allowget || ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_G['gp_formhash']) && $_G['gp_formhash'] == formhash() && empty($_SERVER['HTTP_X_FLASH_VERSION']) && (empty($_SERVER['HTTP_REFERER']) ||
preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SERVER['HTTP_REFERER']) == preg_replace("/([^\:]+).*/", "\\1", $_SERVER['HTTP_HOST'])))) {
if(checkperm('seccode')) {//return (empty($_G['group'][$perm])?'':$_G['group'][$perm]);会员组权限
//验证问答
if($secqaacheck && !check_secqaa($_G['gp_secanswer'], $_G['gp_sechash'])) {
showmessage('submit_secqaa_invalid');
}
//验证验证码
if($seccodecheck && !check_seccode($_G['gp_seccodeverify'], $_G['gp_sechash'])) {
showmessage('submit_seccode_invalid');//验证码填写错误,请返回修改。
}
}
return TRUE;
} else {
showmessage('submit_invalid');
}
}
}