ecshop用戶中心修改用戶信息增加會員密碼問題驗證
時間: 2024-02-25 10:43
閱讀: 次
作者:素材無憂網(wǎng)
ECSHOP用戶中心修改"用戶信息"增加會員密碼問題驗證目的增加會員安全 ,修改會員密碼需要,問題驗證
教程開始
1、themesdefaultuser_transaction.dwt 將
修改為
*
將
*
修改為
*
2.jsuser.js 找到function userEdit()中的
if (passwd_answer.length > 0 && sel_question == 0 || document.getElementById('passwd_quesetion') && passwd_answer.length == 0) { msg += no_select_question + 'n'; }
替換成
if(!checkAnswer(passwd_answer)){ msg += '- ' + '密碼問題答案不正確' + 'n';}
在function userEdit()后添加
function checkAnswer(passwd_answer){ result = Ajax.call( 'user.php?act=check_passwd_answer', 'passwd_answer=' + passwd_answer, null , 'GET', 'TEXT', false ); result = result.replace(/^s+|s+$/g,""); if ( result != "ok" ){ return false; }else{ return true; }} /* ** 修改用戶信息時驗證密碼問題*/function checkSelQuestion(sel_question){ if (sel_question == 0){ document.getElementById('sel_question_notice').innerHTML = '必須選擇您的密碼問題'; } else{ result = Ajax.call( 'user.php?act=check_sel_question', 'sel_question=' + sel_question, null , 'GET', 'TEXT', false ); result = result.replace(/^s+|s+$/g,""); if ( result == 'ok' ){ document.getElementById('sel_question_notice').innerHTML = '密碼問題正確'; } else{ document.getElementById('sel_question_notice').innerHTML = '請選擇正確的密碼問題'; } }} /* ** 修改用戶信息時驗證密碼問題答案*/function checkSelAnswer(passwd_answer){ if (passwd_answer == 0){ document.getElementById('passwd_answer_notice').innerHTML = '必須填寫您的密碼問題答案'; } else{ result = Ajax.call( 'user.php?act=check_passwd_answer', 'passwd_answer=' + passwd_answer, null , 'GET', 'TEXT', false ); result = result.replace(/^s+|s+$/g,""); if ( result == 'ok' ){ document.getElementById('passwd_answer_notice').innerHTML = '密碼問題答案正確'; } else{ document.getElementById('passwd_answer_notice').innerHTML = '答案不正確請重新輸入'; } }}
3.user.php中在
/* 用戶登錄界面 */elseif ($action == 'login')
/* 用戶登錄界面 */
elseif ($action == 'login')
/*驗證密碼問題是否正確*/elseif($action == 'check_sel_question'){ $sel_question = trim($_GET['sel_question']); $question = $user->check_sel_question($user_id); if (strcmp($sel_question, $question)!= 0){ echo 'false'; } else{ echo 'ok'; }}/*驗證密碼問題答案是否正確*/elseif($action == 'check_passwd_answer'){ $question = $user->check_sel_question($user_id); $answer = $user->check_passwd_answer($user_id,$question); $passwd_answer = trim($_GET['passwd_answer']); if (strcmp($answer, $passwd_answer)!= 0){ echo 'false'; } else{ echo 'ok'; }}
4.includesmodulesintegratesintegrate.php,在
/* 會員手機的字段名 */ var $field_phone = '';
之后,添加
/* 會員問題的字段名 */ var $field_question = ''; /* 會員問題的回答字段名 */ var $field_answer = '';
在
/** * 檢查cookie是正確,返回用戶名 * * @access public * @param * * @return void */ function check_cookie()
之上,添加
/** * 檢查指定密碼問題是否為注冊時設置的那個 * * @access public * @param string $user_id 用戶id * * @return boolean */ function check_sel_question($user_id){ if (!empty($user_id)){ $sql = "SELECT passwd_question" . $this->field_question . " FROM " . $this->table($this->user_table). " WHERE " . $this->field_id . "='" . $user_id . "'"; return $this->db->getOne($sql); } } /** * 檢查指定密碼問題答案是否正確 * * @access public * @param string $user_id 用戶id * @param string $question 密碼問題 * * @return boolean */ function check_passwd_answer($user_id,$question){ if (!empty($user_id)){ $sql = "SELECT passwd_answer" . $this->field_answer . " FROM " . $this->table($this->user_table). " WHERE " . $this->field_id . "='" . $user_id . "' AND passwd_question" . " = '" .$question. "'"; return $this->db->getOne($sql); } }
完成。