当我想使用会话在codeigniter它说错误。为什么? [英] when i want to use session in codeigniter it says error. why?

查看:231
本文介绍了当我想使用会话在codeigniter它说错误。为什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我想加载会话库我说错误像:
的解决方案,请帮助我。

when I want to load session library i says error like: what would be the solution please help me.

A PHP Error was encountered

Severity: Warning

Message: mkdir(): Invalid path

Filename: drivers/Session_files_driver.php

Line Number: 117

Backtrace:

File: C:\xampp\htdocs\ci-test\application\controllers\login.php
Line: 7
Function: __construct

File: C:\xampp\htdocs\ci-test\index.php
Line: 292
Function: require_once

完整代码
加载loginview.php的控制器登录
控制器
login.php

here is the full code the controller login that loads loginview.php controller login.php

  <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Login extends CI_Controller {

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

 function index()
 {
   $this->load->helper(array('form'));
   $this->load->view('login_view');
 }

}

?>

查看
登录视图是向控制器verifylogin发布用户名和密码的表单。 php

view the login view is the form that post username and password to the controller verifylogin.php

loginview.php

loginview.php

<?php echo form_open('verifylogin'); ?>
     <label for="username">Username:</label>
     <input type="text" size="20" id="username" name="username"/>
     <br/><br>
     <label for="password">Password:</label>
     <input type="password" size="20" id="passowrd" name="password"/>
     <br/><br>
     <input type="submit" value="Login"/>
     <input type="reset" value="Reset"/>
     <p class="text-success"><?php echo validation_errors(); ?></p>
   </form>

controller
verifylogin控制器使用保存的用户名和密码验证登录用户名和密码数据库表'users'通过模型user.php
verifylogon.php

controller the verifylogin controller verifies the login username and password with the username and password saved in database table 'users' through the model user.php verifylogon.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class VerifyLogin extends CI_Controller {

 function __construct()
 {
   parent::__construct();
   $this->load->model('user','',TRUE);
 }

 function index()
 {
   //This method will have the credentials validation
   $this->load->library('form_validation');

   $this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean');
   $this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|callback_check_database');

   if($this->form_validation->run() == FALSE)
   {
     //Field validation failed.  User redirected to login page
     $this->load->view('login_view');

   }
   else
   {
     //Go to private area
     redirect('home', 'refresh');
   }

 }

 function check_database($password)
 {
   //Field validation succeeded.  Validate against database
   $username = $this->input->post('username');

   //query the database
   $result = $this->user->login($username, $password);

   if($result)
   {
     $sess_array = array();
     foreach($result as $row)
     {
       $sess_array = array(
         'id' => $row->id,
         'username' => $row->username
       );
       $this->session->set_userdata('logged_in', $sess_array);
     }
     return TRUE;
   }
   else
   {
     $this->form_validation->set_message('check_database', 'Invalid username or password');
     return false;
   }
 }
}
?>

和模型
此模型从数据库表中获取id,用户名和密码
user.php

and model this model get id, username and password from database table user.php

<?php
Class User extends CI_Model
{
 function login($username, $password)
 {
   $this -> db -> select('id, username, password');
   $this -> db -> from('users');
   $this -> db -> where('username', $username);
   $this -> db -> where('password', MD5($password));
   $this -> db -> limit(1);

   $query = $this -> db -> get();

   if($query -> num_rows() == 1)
   {
     return $query->result();
   }
   else
   {
     return false;
   }
 }
}
?>


推荐答案

我知道这是一个老帖子,只是共享一个解决方案,帮助我。请尝试设置您的配置变量,如:

Have you solved your problem already? I know thats an old post, just sharing a solution that helped me. Try set your config variable like:

$config['sess_save_path'] = sys_get_temp_dir();

这篇关于当我想使用会话在codeigniter它说错误。为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆