分享DEDECMS 验证码的一个细节问题。附提问一个疑惑,有关SESSION的
<br /> if($dopost == 'add'){<br /> $svali = GetCkVdValue();<br /> if(strtolower($vdcode)!=$svali || $svali=='')<br /> {<br /> ResetVdValue();<br /> ShowMsg('验证码错误!', '-1');<br /> exit();<br /> }<br /> }<br />
<br /> if($dopost == 'add'){<br /> $svali = GetCkVdValue();<br /> ResetVdValue(); //位置移前<br /> if(strtolower($vdcode)!=$svali || $svali=='')<br /> {<br /> ShowMsg('验证码错误!', '-1');<br /> exit();<br /> }<br /> }<br />
<br /> /**<br /> * 获取验证码的session值<br /> *<br /> * @return string<br /> */<br /> function GetCkVdValue()<br /> {<br /> @session_id($_COOKIE['PHPSESSID']);<br /> @session_start();<br /> return isset($_SESSION['securimage_code_value']) ? $_SESSION['securimage_code_value'] : '';<br /> }<br /> <br /> /**<br /> * PHP某些版本有Bug,不能在同一作用域中同时读session并改注销它,因此调用后需执行本函数<br /> *<br /> * @return void<br /> */<br /> function ResetVdValue()<br /> {<br /> @session_start();<br /> $_SESSION['securimage_code_value'] = '';<br /> }<br />
<br /> $sessSavePath = DEDEDATA."/sessions/";<br /> <br /> // Session保存路径<br /> if(is_writeable($sessSavePath) && is_readable($sessSavePath)){ session_save_path($sessSavePath); }<br /> if(!empty($cfg_domain_cookie)) session_set_cookie_params(0,'/',$cfg_domain_cookie);<br /> <br /> session_start();<br />
<br> <br> /**<br> * 获取验证码的session值<br> *<br> * @return string<br> */<br> function GetCkVdValue()<br> {<br> $sessSavePath = DEDEDATA."/sessions/";<br> if(is_writeable($sessSavePath) && is_readable($sessSavePath)){ session_save_path($sessSavePath); }<br> if(!empty($GLOBALS['cfg_domain_cookie'])) session_set_cookie_params(0,'/',$GLOBALS['cfg_domain_cookie']);<br> <br> @session_id($_COOKIE['PHPSESSID']);<br> @session_start();<br> return isset($_SESSION['securimage_code_value']) ? $_SESSION['securimage_code_value'] : '';<br> }<br> <br> /**<br> * PHP某些版本有Bug,不能在同一作用域中同时读session并改注销它,因此调用后需执行本函数<br> *<br> * @return void<br> */<br> function ResetVdValue()<br> {<br> $sessSavePath = DEDEDATA."/sessions/";<br> if(is_writeable($sessSavePath) && is_readable($sessSavePath)){ session_save_path($sessSavePath); } <div class="clear"> </div>