0
我已经在我的网站上创建了一个登录和注册系统。我在我的数据库中有一张表,其中存储了所有用户信息,称为“用户”。我查了很多,但无法获得太多。我需要创建一个函数来检查旧密码并更新当前密码
我班
public function change_password()
{
$this->load->view('templates/header');
$this->load->view('registration/changepassword');
$this->load->view('templates/footer');
}
public function change()
{
$this->form_validation->set_rules('newpassword', 'New Password', 'required|matches[rpassword]');
$this->form_validation->set_rules('rpassword', 'Retype Password', 'required');
if ($this->form_validation->run() == FALSE) {
redirect('registration/change_password');
}else{
$query = $this->Login_Database->checkOldPass(sha1($this->input->post('oldpassword')));
if($query){
$query = $this->Login_Database->saveNewPass(sha1($this->input->post('newpassword')));
if($query){
redirect('registration/change_password');
}else{
redirect('registration/change_password');
}
}
redirect('');
}
}
我的模型
// Insert registration data in database
public function checkOldPass($old_password)
{
$this->db->select('*');
$this->db->from('users');
$this->db->select('id');
$this->db->where('id', 'id');
$this->db->where('password', $this->input->post('oldpassword'));
$query = $this->db->get();
if ($query->num_rows > 0) {
return true;
} else {
$this->form_validation->set_message('checkOldPassword', 'wrong old password.');
return false;
}
}
public function saveNewPass($new_pass)
{
$data = array(
'password' => $new_pass
);
$this->db->where('id', 'id');
$this->db->update('users', $data);
return true;
}
}
我的形式
<h1><p class="text-center" style="font-family: 'Passion One',
cursive;">Change Password</p></h1>
<div>
<form class="form-horizontal" method="post"
action="<?php echo base_url() ?>Registration/change">
<fieldset>
<br>
<div class="form-group">
<label class="col-md-4 control-label" for="phone">Old
Password</label>
<div class="col-md-4">
<input id="oldpassword" name="oldpassword" type="password"
placeholder="Old Password"
class="form-control input-md"
required="">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="phone">New
Password</label>
<div class="col-md-4">
<input id="newpassword" name="newpassword" type="password"
placeholder="New Password"
class="form-control input-md"
required="">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="phone">Conform
Password</label>
<div class="col-md-4">
<input id="rpassword" name="rpassword" type="password"
placeholder="Retype Password"
class="form-control input-md"
required="">
</div>
</div>
<br>
<!-- Button (Double) -->
<div class="form-group">
<label class="col-md-4 control-label" for="save"></label>
<div class="col-md-8">
<button type="submit" class="btn btn-success">Save</button>
<a id="cancel" name="cancel" class="btn btn-danger" href="<?
php echo base_url(); ?>">
Cancel</a><br><br>
</div>
<br><br><br>
</fieldset>
</form>
</div>
我的课是在名为Registration.Any帮助将不胜感激。此外,我的模型的名称是'Login_Database.php',我的表单的名称是'changepassword.php'
SHA1是不够的密码哈希。使用['password_hash()'](http://us3.php.net/manual/en/function.password-hash.php)和['password_verify()'](http://us3.php.net/ manual/en/function.password-verify.php)。 –