/**

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

}

}