/**
* WordPress 登入檔單新增驗證問題 (支援多個隨機問題)
* http://www.xhsay.com
*/
functionrand_reg_question(){
$register_number=rand(0,1);// 設定隨機數的返回範圍
$_SESSION['register_number']=$register_number;
}
add_action('login_head','rand_reg_question');
global$register_questions;
global$register_answers;
// 新增問題陣列
$register_questions=array('中國的首都在哪裡?','Google 是哪個國家的公司?');
// 新增答案陣列 (與上面的問題對應)
$register_answers=array('北京','美國');
add_action('register_form','add_security_question');
functionadd_security_question(){
global$register_questions;
$register_number=$_SESSION['register_number'];
?>
<p>
<label><?phpecho$register_questions[$register_number];?><br/>
<input type="text"name="user_proof"id="user_proof"class="input"size="25"tabindex="20"/>
</label>
</p>
<?php}
add_action('register_post','add_security_question_validate',10,3);
functionadd_security_question_validate($sanitized_user_login,$user_email,$errors){
global$register_answers;
$register_number=$_SESSION['register_number'];
if(!isset($_POST['user_proof'])||empty($_POST['user_proof'])){
return$errors->add('proofempty','<strong> 錯誤</strong>: 您還沒有回答問題。');
}elseif(strtolower($_POST['user_proof'])!=$register_answers[$register_number]){
return$errors->add('prooffail','<strong> 錯誤</strong>: 您的回答不正確。');
}
}