【发布时间】:2017-11-03 16:34:38
【问题描述】:
现在我的管理员中有一个更改密码功能,在更改密码之前,如果用户密码不正确,我现在通过要求用户再次输入用户名密码来验证我正在做的是设置闪存数据并注销用户。所以当他来到主登录面板时,他现在应该看到错误,这是我的代码
控制器方法
public function checkpassword(){
$this->check_unique_id_from_db_for_secuity();
$unique_id=base64_decode($this->uri->segment(3));
$data = $this->input->post();
$data['unique_id']=$unique_id;
$status=$this->User_model->validate_user_loged_in_for_change_password($data);
if($status){
echo "true";
exit();
}
else
{
$this->session->set_flashdata('change_password_credentials_error',"Your Username/Password was incorect account was logged out for secutiry reasons!");
echo "false";
exit();
}
}
ajax 请求
$.ajax({
type: 'post',
url: '<?php echo base_url()."User/checkpassword/".$this->uri->segment(3).""; ?>',
data:{ "login_username" : $("#login_username").val(), "login_password" : $("#login_password").val() },
success: function (data) {
if(data=="true"){
window.location.href="<?php echo base_url()."User/changepassword_view/".$this->uri->segment(3)."";?>";
}
else
{
window.location.href="<?php echo base_url()."User/logout";?>";
}
}
});
主登录页面上的 php 脚本
<?php
if($this->session->flashdata('change_password_credentials_error')){?>
<script>toastr["success"]("<?php echo $this->session->flashdata('change_password_credentials_error')?>");</script>
<?php } ?>
现在闪存数据工作得很好,我在许多其他页面中使用它,但是当我将它与 ajax 一起使用时,它没有被设置!有什么帮助吗?
【问题讨论】:
-
Flash 数据在您重定向之前无法使用。在 AJAX 中没有办法
-
那么我们如何实现一个特定的场景呢?
标签: php ajax codeigniter session