使用模式的Codeigniter表单登录验证 - php

我正在正确验证登录模式形式,但是我有一个小问题,即新用户在登录模式上返回错误语句,例如无效的用户或密码。而作为回应,我看到输入了错误的密码和所有html。但是没有消息在表格上打印。

这是我的看法:

<a href="#" data-toggle="modal" data-target="#loginmodel">Sign In / Order</a>&nbsp; | &nbsp;

<div class="modal fade" id="loginmodel" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
         <div class="modal-dialog" role="document">
            <div class="modal-content martop105">
               <div class="modal-header">
                  <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                  <h4 class="modal-title text_center"  id="exampleModalLabel">Login</h4>
               </div>
               <div class="modal-body">
                  <form >
                     <div class="row margin0 text_center">
                        <div class="  col-md-12 col-sm-12 col-xs-12" >  
                           <input type="email" id="email" placeholder="Email*" class="form-control">
                        </div>
                        <br>
                        <div class="col-md-12 col-sm-12 col-xs-12 martop20">
                           <input type="Password" id="password" placeholder="Password*" class="form-control">
                        </div>
                        <br>
                        <div class="checkbox col-md-12 col-sm-12 col-xs-12 pull-left martop20" >
                           <label class="pull-left"><input name="remember" type="checkbox" value="Remember Me"> Remember Me</label>
                        </div>
                        <div class=" col-md-12 col-sm-12 col-xs-12 pull-left text_blue martop20" >
                           <a href="#" class="text_blue pull-left">
                           Forgot password?
                           </a>    
                        </div>
                     </div>
                     <br>
                     <div class="row margin0  ">
                        <button type="button" onclick="save();" class="btn btn-info btn-lg marleft20 active">Login</button>
                     </div>
                  </form>
               </div>
               <div class="modal-footer">
               </div>
            </div>
         </div>
      </div>

<script>
function save(){
// alert('ddsfsf');
    var email=$('#email').val();
    var password=$('#password').val();
    // alert(email);
    //alert(gender);

     $.ajax({
        url: '<?php echo base_url();?>Choice/login',
        type: 'POST',
        data: {
            email: email,
            password:password

        },
        dataType: 'text',
        success: function(data) {
             // console.log(data);
            // alert(data);
            // alert("Succesfully Saved");
        //  location.reload(false);
        }
    }); 
}

</script>

控制者

class Choice extends CI_Controller {
 function __construct(){
        parent::__construct();
         $this->load->library('form_validation');
        $this->load->helper('form');

        $this->load->database();
         $this->load->model('login_model','login_model');

        $this->load->library('session');
        $this->load->library('eway');

        $this->load->model('Catering_model','catering_model');

        // $this->load->helper('utility');
        $this->load->helper('url');


    }

public function login()
    {
        $this->form_validation->set_rules('email','Email','required|valid_email|is_unique[choicelunchuser.email]');
        $this->form_validation->set_rules('password','Password','required|callback_basisdata_cek');

        if($this->form_validation->run()==false)
        {
            $this->load->view('ChoiceLaunch/index');
        }
        else{
            if($this->session->userdata('logged_in'))
            {

                $session_data = $this->session->userdata('logged_in');
                $data['id'] = $session_data['id'];

                $data['email'] = $session_data['email'];

                $this->load->view('ChoiceLaunch/index',$data);
            }
            else{
                $this->load->view('ChoiceLaunch/index');
            }
        }


    }

public function basisdata_cek()
    {

        $username= $this->input->post('email');
        $password=$this->input->post('password');

        // echo $username.' '.$password;

        $result=$this->login_model->loginemail($username,$password);
        // echo ('fsf'.$result[0]);
        // echo ('fsf'.$result[1]);
        if($result)
        {
            $sess_array = array();
            foreach ($result as $row)
            {
                $sess_array = $arrayName = array('id' => $row->id,'email'=> $row->email);
                $this->session->set_userdata('logged_in',$sess_array);

            //  $ci = & get_instance();
                //$ci->session->set_userdata("logged_in",$sess_array);
            }
            return true;
        }
        else{

            //echo $username.' '.$password;
            $this->form_validation->set_message('basisdata_cek','Invalid user or password');
            return false;
        }
    }   
}

插图请参见图片:
使用模式的Codeigniter表单登录验证 - php

参考方案

您应该在视图中添加<?php echo validation_errors(); ?>

故障排除“警告:session_start():无法发送会话高速缓存限制器-标头已发送” - php

我收到警告:session_start()[function.session-start]:无法发送会话缓存限制器-标头已发送(错误输出开始如果我将表单数据提交到其他文件进行处理,则可以正常工作。但是,如果我将表单数据提交到同一页面,则会出现此错误。请建议<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0…

使用PHP包含时的淡入淡出过渡 - php

我正在尝试使用jQuery或CSS(或其他方式!)在DIV中包含的php页面上创建淡入淡出或滑动过渡。我四处搜寻,发现了很多淡入淡出过渡的示例,这些实例彼此淡入淡出div或隐藏内容淡入淡出,但是这种情况略有不同。我有一个DIV,其内容由导航栏控制。选中后,每个页面都可以使用PHP成功地包含在div中,但我想使内容淡入和淡出。关于如何在页面更改之间进行漂亮过渡…

AJAX调用只能与$(document).on('click')一起使用 - php

我有一个显示数据库条目的表。用户能够为每一行打开一个弹出菜单。选项之一是删除数据库条目,并且该表应通过AJAX调用相应地刷新。只要有人单击#delete-toggle中的table-popup,我就会在HTML页面上进行AJAX调用(table-popup是div,当有人单击每行中存在的表中的table-edit-button时出现的表): <div …

将输入类型复选框关联到输入类型文本 - php

我有一个问题,我需要将输入类型复选框与输入类型文本关联。情况如下:从数据库中提取数据。 PK数据是复选框的值。当复选框选择输入类型的文本时,您可以在其中输入特定数字。现在的问题是,选中所有类型的复选框输入文本都会被激活。我希望通过选择复选框输入,仅启用与复选框相关联的输入。我的HTML代码(此代码创建一个输入复选框,并为数据库中的每个记录输入文本,而我要激活…

jQuery显示基于序列化哈希的隐藏选择菜单 - php

我试图通过使用Ajax和序列化的哈希值来使选择菜单显示隐藏。昨晚我有这个系统,但是我将#selector从表单更改为div,突然停止了运行。我不得不扩展表单以获取更多附加数据,并且不想为此立即序列化所有数据,因为这将给系统带来额外压力。该页面按预期工作。它显示了第一个选择,允许我选择一个选项,我可以看到AJAX发布,但是哈希值是空的,我相信这会破坏上面的PH…