【发布时间】:2019-12-19 15:50:03
【问题描述】:
如何在 Codeigniter 中使用 Restful API 更改密码功能。
我尝试了一个代码,但它不工作并且没有在邮递员中捕获。
这是我的控制器部分:-
public function change_post()
{
try
{
$id = $this->input->post('id');
if ($id != '')
{
$this->load->library('form_validation');
$this->form_validation->set_rules('oldPassword','Old Password','required|max_length[20]');
$this->form_validation->set_rules('newPassword','New Password','required|max_length[20]');
$this->form_validation->set_rules('cNewPassword','Confirm new Password','required|matches[newPassword]|max_length[20]');
if($this->form_validation->run() == BOOL_F)
{
echo validation_errors();
}
else
{
$oldPassword = $this->input->post('oldPassword');
$newPassword = $this->input->post('newPassword');
$resultPas = $this->user_model->matchOldPassword($id, $oldPassword);
if($resultPas)
{
$this->response("password no match.", REST_Controller::HTTP_BAD_REQUEST);
}
else
{
$changeData = array('password'=>md5($newPassword));
$result = $this->user_model->changePassword($id, $changeData);
if($result > 0) { $this->response([
'message' => 'password changed successful.',
'data' => $change
], REST_Controller::HTTP_OK); }
else {$this->response("enter password first.", REST_Controller::HTTP_BAD_REQUEST);}
}
}
}
else
{
throw new Exception("The Data Already Register or The Data is Empty");
}
}
catch (Exception $e)
{
$error = array($e->getmessage());
$errormsg = json_encode($error);
echo $errormsg;
}
}
这是我的模型部分:-
function matchOldPassword($id, $oldPassword)
{
$this->db->select('id, password');
$this->db->where('id', $id);
$query = $this->db->get('admins');
$admin = $query->result();
if(!empty($admin)){
if(md5($oldPassword, $admin[0]->password)){
return $admin;
} else {
return array();
}
} else {
return array();
}
}
function changePassword($id, $adminData)
{
$this->db->where('id', $id);
$this->db->update('admins', $adminData);
$this->db->last_query();
return TRUE;
}
但它根本不起作用。如何在 Codeigniter 中使用 Restful API 实现更改密码的正确方法
【问题讨论】:
-
请有人告诉正确的代码或我的错误
-
告诉你使用哪个 rest 库来生成输出 $this->response
-
解释一下REST_Controller
标签: php codeigniter restful-authentication change-password