Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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_Session - Fatal编程技术网

Php CodeIgniter中的会话-没有相应地工作

Php CodeIgniter中的会话-没有相应地工作,php,codeigniter,session,Php,Codeigniter,Session,我现在正在使用codeigniter进行会话,我不确定它出了什么问题。 我只读了第一页的课文。当我浏览到其他页面时,会话已结束。 以下是仪表板的var_转储 array(2) { ["__ci_last_regenerate"]=> int(1487063353) ["logged_in"]=> array(2) { ["userName"]=> string(5) "julie" ["userRole"]=> string(1) "1" }} 下面是第二页的var_d

我现在正在使用codeigniter进行会话,我不确定它出了什么问题。 我只读了第一页的课文。当我浏览到其他页面时,会话已结束。 以下是仪表板的var_转储

array(2) {
["__ci_last_regenerate"]=>
int(1487063353)
["logged_in"]=>
array(2) {
["userName"]=>
string(5) "julie"
["userRole"]=>
string(1) "1"
}}
下面是第二页的var_dump,当我返回到dashboard时

array(1) {
["__ci_last_regenerate"]=>
int(1487063602)
}
以下是我的代码。如果您能帮我指出问题和解决方案,我将不胜感激。提前谢谢

config/config.php

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 1800; // 30 minutes
$config['sess_save_path'] = BASEPATH .'/sessions/';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
库/SimpleLoginSecure.php

function login($user_name,$user_pass)
{
   $this->CI =& get_instance();

   // verification code goes here

   //set session data
   $user_data = $query->row_array();
   $dataSession['userName'] = $user_data['userName'];
   $dataSession['userRole'] = $user_data['userRole'];
   $this->CI->session->set_userdata('logged_in',$dataSession);
   return TRUE;
}
controller/Login.php

function __construct() {
    parent::__construct();
}

public function index() {
    $this->load->helper('form');
    $this->load->library('form_validation');

    $this->form_validation->set_error_delimiters('<p class="text-red">', '</p>');       
    $this->form_validation->set_rules('userName', 'Username', 'trim|required|xss_clean');
    $this->form_validation->set_rules('userPass', 'Password', 'trim|required|xss_clean|callback_check_database');

    if ($this->form_validation->run() == false) {
        $this->load->view('index');
    }       
}

function verify_user()
{
    $this->load->library('form_validation');
    $this->load->library('SimpleLoginSecure');

    $hasher = new PasswordHash(8, false);
    $userpass = $this->input->post('inputPassword');
    $username = $this->input->post('inputName');

    $results = $this->simpleloginsecure->login($username,$userpass);
    if($results != FALSE) {
      $SESS_data = $this->session->userdata('logged_in');
      $data['SESS_username'] = $SESS_data['userName'];
      $data['SESS_userrole'] = $SESS_data['userRole'];

      var_dump($this->session->all_userdata());
      $this->load->view('dashboard', $data);
  }
  else {
     $attempt = $this->simpleloginsecure->updatePassAttempt($userName);         
     if ($attempt != FALSE) {
        echo '<script>alert("Invalid Username or password"); window.history.back();</script>';
     }      
   }      
}

function logout() {
    $this->load->library('SimpleLoginSecure');

    // Logout
    $this->simpleloginsecure->logout();
    echo '<script>alert("Successfully Logout"); </script>';
    redirect(base_url());
}
函数uuu构造(){
父项::_构造();
}
公共职能指数(){
$this->load->helper('form');
$this->load->library('form_validation');
$this->form\u validation->set\u error\u分隔符(“

”,“

”); $this->form_validation->set_规则('userName'、'userName'、'trim | required | xss_clean'); $this->form_validation->set_rules('userPass','Password','trim | required | xss_clean | callback_check_database'); 如果($this->form\u validation->run()==false){ $this->load->view('index'); } } 函数验证用户() { $this->load->library('form_validation'); $this->load->library('SimpleLoginSecure'); $hasher=newpasswordhash(8,false); $userpass=$this->input->post('inputPassword'); $username=$this->input->post('inputName'); $results=$this->simpleloginsecure->login($username,$userpass); 如果($results!=FALSE){ $SESS_data=$this->session->userdata('logged_in'); $data['SESS_username']=$SESS_data['username']; $data['SESS_userrole']=$SESS_data['userrole']; var_dump($this->session->all_userdata()); $this->load->view('dashboard',$data); } 否则{ $trunt=$this->simpleloginsecure->updatePassAttempt($userName); 如果($trument!=FALSE){ echo“警报(“无效用户名或密码”);window.history.back(); } } } 函数注销(){ $this->load->library('SimpleLoginSecure'); //注销 $this->simpleloginsecure->logout(); 回显“警报”(“成功注销”); 重定向(base_url()); }
确保您实际加载的是会话库,如果95-100%的时间都会使用它,那么这是最安全的选择,请将其自动加载

application/config/autoload.php
在库数组中添加“session”,这将确保在初始化时始终加载它。在60号线附近:

$autoload['libraries'] = array('session');
这类事情最常见的问题是在需要时没有加载库


我还建议使用完整的控制器和模型来进行帐户管理,而不是使用库或助手,这会使您的生活更加轻松,因为它在标准CI范围内。

您能为控制器提供所有代码吗?您的会话值在第二页丢失?@MayankPandeyz是的。。价值消失了。。我不知道怎么了。。我只在注销时放了sess_destroy。。即使当我回到仪表板上。。未捕获会话数据。@NavjotSingh。。当然我会更新我的帖子。。成功登录的一个重要因素是,您正在会话中设置一些值,它可以在仪表板页面上找到,但请注意另一个页面。这是您面临的第个问题?我确实将会话设置为自动加载。。至于账户管理。。要验证用户。。我使用SimpleLoginSecure,因为我正在使用库进行密码哈希。。