我遇到了与 my previous question 相同的问题,现在我认为我的 session 有问题,因为除了在这个问题中进行 session 之外,对我的数据库的查询运行良好。 那么错误说:
Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SET `last_activity` = 1455780614, `user_data` = 'a:4:{s:9:\"user_data\";s:0:\"\"' at line 1
UPDATE SET `last_activity` = 1455780614, `user_data` = 'a:4:{s:9:\"user_data\";s:0:\"\";s:9:\"logged_in\";s:12:\"Sudah Loggin\";s:3:\"nip\";s:8:\"21212121\";s:5:\"akses\";s:4:\"user\";}' WHERE `session_id` = '2e72650df8541dcc3334394cfb7eef37'
Filename: libraries/Session.php
Line Number: 306
这种情况发生在我自动加载 session 并插入加密 key 之后。这是我的 Controller :
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Auth extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->model('user_m');
}
public function index() {
$this->load->view('login');
}
public function cek_login() {
$data = array('nip' => $this->input->post('nip', TRUE),
'password' => $this->input->post('password', TRUE)
);
$hasil = $this->user_m->cek_user($data);
if ($hasil->num_rows()==1) {
foreach ($hasil->result() as $sess) {
$sess_data['logged_in'] = 'Sudah Loggin';
$sess_data['nip'] = $sess->nip;
$sess_data['akses'] = $sess->akses;
$this->session->set_userdata($sess_data);
}
if ($this->session->userdata('akses')=='admin') {
redirect('admin');
}
elseif ($this->session->userdata('akses')=='member') {
redirect('user');
}
}
else {
echo "<script>alert('Gagal login: Cek nip, password!');history.go(-1);</script>";
}
}
}
?>
这是我的模型:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class User_m extends CI_Model {
public function cek_user($data) {
$query = $this->db->get_where('pegawai', $data);
return $query;
}
}
?>
我这样做是为了进行多用户登录,但无法建立 session 。 我在此项目中使用 XAMPP 7.0.2 和 Codeigniter 3.0.4。
最佳答案
$sess_data['logged_in'] = 'Sudah Loggin';
$sess_data['nip'] = $sess->nip;
$sess_data['akses'] = $sess->akses;
$this->session->set_userdata($sess_data);
change this to given way
$sess_data = array(
'logged_in' => 'Sudah Loggin',
'nip' => $sess->nip,
'akses' => $sess->akses
);
$this->session->set_userdata($sess_data);
关于php - Codeigniter,无法建立 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35475724/