Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用codeigniter在登录表单中设置会话_Php_Codeigniter - Fatal编程技术网

Php 如何使用codeigniter在登录表单中设置会话

Php 如何使用codeigniter在登录表单中设置会话,php,codeigniter,Php,Codeigniter,我是codeigniter的新手。我无法在登录表单中设置会话 我的模型页面是user.php: <?php class User extends CI_Model { function __construct() { parent::__construct(); $this->load->database(); $this->load->library('session'); $th

我是codeigniter的新手。我无法在登录表单中设置会话

我的模型页面是user.php:

<?php
class User extends CI_Model

{

    function __construct()
{

        parent::__construct();

        $this->load->database();

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

        $this->load->helper('url');
    }

    public function login_model($username,$password)
{

         $where = array('username'=>$username, 'password'=>$password);

            $query = $this->db->get_where('signtable', $where);

             if($query->num_rows() == 1)
{

                 $row = $query->row();

                        $data = array(
                                  'user_logged_in'  =>  TRUE,
                                  'password' => $row->password,
                                  'username' => $row->username);

                            $this->session->set_userdata($data);

                                }
                              else

                                     {


                echo "invalid username or password";

            }


             }

    }


?>

我的控制器页面是login1.php:

<?php
class Login1 extends CI_Controller
{

    function __construct()
{
        parent::__construct();
        $this->load->database();
        $this->load->model('User');
        $this->load->helper('form');
    }
    public function index()
{
       if($this->input->post())
{
       $this->load->library('form_validation');

$this->form_validation->set_rules('name','Username','required|callback_username_check|trim|xss_clean');
            $this->form_validation->set_rules('pass','Password','required|callback_password_check|trim');

            if ($this->form_validation->run() == FALSE)
{
                    $this->load->view('login');
    }
            else
            {

            $username =  $this->input->post('name');
                        $password =  $this->input->post('pass');
                      $this->User->login_model($username,$password);

                       } 
   }
       $this->load->view('login');
    }
    }
    ?> 

我的另一个控制器页面是login2.php

<?php
     class Login2 extends CI_Controller
{
    function __construct()
{
     parent::__construct();
        $this->load->database();
        $this->load->model('User');
        $this->load->helper('url');
        }
     public function index ()
{
           $this->load->model('Retrieve_model');
          $data['result'] = $this->Retrieve_model->retrieve();
          $this->load->view('logout',$data);
}
     }
?>

我的会话控制页面是session_ctrl.php:

<?php
class Session_ctrl extends CI_Controller
{
    public function __construct()
{
             parent::__construct();
             $this->load->library('session');
             $this->load->helper('url');
             $this->load->database();
             $this->load->model('User');
            }
       public function index()
{
        if($this->User->login_model($username,$password))
                         {
                                    redirect('login2','refresh');           
                         }  
                         else 
                         {
                          redirect('login1','refresh');
                              }
                         $this->load->view('login');
                  }
                  }
      ?> 

我的登录视图页面是login.php:

<?php  
echo validation_errors();
echo form_open('login1');
?>
<html>
    <body>
        <tr>
        <td>Username <input type="text" name="name" value = "<?php echo set_value('name'); ?>"></td><td><?php echo  form_error("name");?></td><br><br>
        <td>Password <input type="password" name="pass" ></td><td><?php echo form_error("pass");?></td><br><br>
        <input type="submit" name="submit" value ="LogIn">
        <?php form_close(); ?>
        </tr></body>
    </html>


控制器中的用户名

public function index()
{

    $this->load->library('form_validation');

    $this->form_validation->set_rules('name','Username','required|callback_username_check|trim|xss_clean');
    $this->form_validation->set_rules('pass','Password','required|callback_password_check|trim');

    if ($this->form_validation->run() == FALSE){
        echo "Invalid User Loging";
        # $this->load->view('login');
    }
    else{

        $username   =  $this->input->post('name');
        $password   =  $this->input->post('pass');
        $result     = $this->model_name->check_login($username,$password);

        if ($result != FALSE ) {
            # Inavlid User...
            $this->load->view('login');
        }
        else{
            # Valid user
            $this->load->view('home');
        }
    }   
}
在型号中

public function check_login($username,$password)
{

    $query = $this->db->query("SELECT * FROM signtable WHERE username = '$username' AND password = '$password' ")
    $result = $query->result_array();
    $count =count($result);


    if(empty($count) || $count >1){
        return FALSE;
    }
    else{

        $data = array(
            'user_logged_in'  =>  TRUE,
            'username' => '$username'
            );

        $this->session->set_userdata($data);
    }
}
表格应该是开放的

echo form_open('controller_name/index');

尝试在方法中加载会话

public function login_model($username,$password)
{
    $this->load->library('session'); # Load session

    $where = array('username'=>$username, 'password'=>$password);

    $query = $this->db->get_where('signtable', $where);

        if($query->num_rows() == 1){

            $row = $query->row();

            $data = array(
                    'user_logged_in'  =>  TRUE,
                    'password' => $row->password,
                    'username' => $row->username);

                    $this->session->set_userdata($data);

        }else{


            echo "invalid username or password";

        }


}
并通过这种方式调用会话-

$this->session->userdata('username');

你有什么问题??正在检索会话值??错误??可以指定吗?1)
'username'=>'$rusername'
2)
if(空($count)|$count>1){
2nd 1n我要知道亲爱的Saty我知道有很多错误。为了得到补救,我发布了这个。你能帮我吗
$this->session->userdata('username');