/**

* 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>: 您的回答不正確。');

}

}