|
|
|
Codeigniter ถ้าหากว่าเราจะกำหนดเวลา Session ให้หมดแตกต่างกันระหว่าง User กะ Admin สามารถกำหนดได้ไหมครับ |
|
|
|
|
|
|
|
ใช้ config class set ค่า sess_expiration เอาใหม่ก่อนกำหนด session ครับ
|
|
|
|
|
Date :
2011-10-22 12:38:49 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วตัวอยู่ในไฟล์ config.php ที่เป็น 7200 นี่ปล่อยไปเลยใ่ช่ไหมครับ
ให้เราไปกำหนดที่ Controller login ใหม่ เลยใช่ไหมครับ
ไม่ทราบว่าต้องทำการโหลด libraries ก่อนด้วยไหมครับ
|
|
|
|
|
Date :
2011-10-22 12:54:01 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โหลด session library ก่อนสิครับไม่งั้นทำงานไม่ได้
ใน config มันกำหนดไว้สำหรับใช้งานได้เลย ก็เอาเป็นค่าหลัก
ถ้าจะเปลี่ยนเวลาหมดอายุใหม่ก็ใช้ config class ตั้งค่าเอาใหม่ก่อนเขียน session
|
|
|
|
|
Date :
2011-10-22 14:49:03 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
//+ เช็ก Username และ Password ในฐานข้อมูล
$this->db->select('*');
$this->db->from('tbl_administrator');
$this->db->where('administrator_username' , $this->input->post('administrator_username'));
$this->db->where('administrator_password' , $this->input->post('administrator_password'));
$rs_administrator = $this->db->get();
if( $rs_administrator->num_rows() > 0 ){
$this->load->library('session');
//+ Fetch data
$row_rs_administrator = $rs_administrator->row();
if( $row_rs_administrator->administrator_username=='admin' and $row_rs_administrator->administrator_password=='admin' ){
$this->config->set_item('sess_expiration', 60);
}else{
$this->config->set_item('sess_expiration', 5);
}
//+ เก็บข้อมูลเกี่ยวกับผู้ใช้ระบบเข้าตัวแปร Session
$this->session->set_userdata( 'logined', true );
$this->session->set_userdata( 'administrator_id', $row_rs_administrator->administrator_id);
$this->session->set_userdata( 'administrator_name', $row_rs_administrator->administrator_name);
$this->session->set_userdata( 'administrator_username', $row_rs_administrator->administrator_username);
}
?>
ผมเขียนอย่างนี้ไม่ทราบว่าเขียนถูกหรือไม่ครับ เพราะเขียนแล้ว ตัว sess_expiration มันยังไม่เปลี่ยน มันยังคงเป็นค่าเดิมที่เราตั้งไว้ที่ไฟล์
config.php
|
|
|
|
|
Date :
2011-10-22 15:57:13 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเปลี่ยนลำดับเป็นตั้งค่า config ก่อน แล้วค่อยโหลด session น่าจะได้
เพราะตอนโหลด session library มันจะโหลด config ไปด้วย
|
|
|
|
|
Date :
2011-10-22 18:37:48 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณ คุณ วี ครับ ใช้ได้ล่ะ
ใช้คำสั่ง
Code (PHP)
if( $row_rs_administrator->administrator_username=='admin' and $row_rs_administrator->administrator_password=='admin' )
{
$this->session->sess_expiration = 30;
}else{
$this->session->sess_expiration = 5;
}
ของผมเวอร์ชั่น 1.7.2 ไม่รู้จะใช้ได้เหมือนกันทุกเวอร์ชั่นหรือเปล่าหน่ะครับ
|
|
|
|
|
Date :
2011-10-25 13:49:28 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
วิธีนี้น่าจะเป็นการเรียกตั้งค่าตรงๆไปที่ library session
ถ้าเวอร์ชั่นใหม่ยังมี property นี้ก็จะยังใช้ได้อยู่
คิดว่า 2.0+ น่าจะมีอยู่นะ เพราะ config มันยังเหมือนเดิม
|
|
|
|
|
Date :
2011-10-25 14:59:57 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ่อครับ ได้ความรู้ใหม่อีกล่ะ
|
|
|
|
|
Date :
2011-10-25 16:34:05 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|