我正在构建一个密码重置页面,在此操作的完成步骤中,用户输入他的密码并通过再次输入密码来确认,比较两个输入,如果这些输入相等,则更改密码,如果不是,则用户被定向到带有“没有成功消息”的页面。
这是我的逻辑:
在密码重置页面:
echo form_open("登录名/密码重置器");
我的控制器:
function password_reseter() {
$password1 = $this->input->post('password');
$password2 = $this->input->post('password2');
if ($password1 == $password2) {
$data["proof"]=1;
$reg_code = $this->input->post('rec_code');
$this->load->model("membership_model");
$this->membership_model->password_reseter($reg_code, $password2);
}
else{
$data["proof"]=0;
}
$data["main_content"] = "reset_password_result";
$this->load->view("includes/template", $data);
}
和观点:
<?php
if ($proof == 1) {
?>
<div id="loginform">
Your password has been changed, you may now login.
</div>
<?php
} else {
?>
<div id="loginform">
Your passwords don't match! <a href="javascript:history.back()">Go back.</a>
</div>
<?php
}
?>
我有一个很大的安全问题,如果这个页面是通过 URL 直接访问的,我数据库上的所有帐户都在重置密码,我想停止直接访问这个 password_reseter 页面。