Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>i use also codeigniter's native class. Maybe you not config it correctly. Here is code that i get from him. <a href="https://github.com/EllisLab/CodeIgniter/wiki" rel="nofollow">https://github.com/EllisLab/CodeIgniter/wiki</a></p> <pre><code>&lt;?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class CI_Session { var $session_id_ttl; // session id time to live (TTL) in seconds var $flash_key = 'flash'; // prefix for "flash" variables (eg. flash:new:message) function __construct() { log_message('debug', "Native_session Class Initialized"); $this-&gt;object =&amp; get_instance(); $this-&gt;_sess_run(); } /** * Regenerates session id */ function regenerate_id() { // copy old session data, including its id $old_session_id = session_id(); $old_session_data = $_SESSION; // regenerate session id and store it session_regenerate_id(); $new_session_id = session_id(); // switch to the old session and destroy its storage session_id($old_session_id); session_destroy(); // switch back to the new session id and send the cookie session_id($new_session_id); session_start(); // restore the old session data into the new session $_SESSION = $old_session_data; // update the session creation time $_SESSION['regenerated'] = time(); // session_write_close() patch based on this thread // http://www.codeigniter.com/forums/viewthread/1624/ // there is a question mark ?? as to side affects // end the current session and store session data. session_write_close(); } /** * Destroys the session and erases session storage */ function destroy() { unset($_SESSION); if ( isset( $_COOKIE[session_name()] ) ) { setcookie(session_name(), '', time()-42000, '/'); } session_destroy(); } /** * Reads given session attribute value */ function userdata($item) { if($item == 'session_id'){ //added for backward-compatibility return session_id(); }else{ return ( ! isset($_SESSION[$item])) ? false : $_SESSION[$item]; } } /** * Sets session attributes to the given values */ function set_userdata($newdata = array(), $newval = '') { if (is_string($newdata)) { $newdata = array($newdata =&gt; $newval); } if (count($newdata) &gt; 0) { foreach ($newdata as $key =&gt; $val) { $_SESSION[$key] = $val; } } } /** * Erases given session attributes */ function unset_userdata($newdata = array()) { if (is_string($newdata)) { $newdata = array($newdata =&gt; ''); } if (count($newdata) &gt; 0) { foreach ($newdata as $key =&gt; $val) { unset($_SESSION[$key]); } } } /** * Starts up the session system for current request */ function _sess_run() { session_start(); $session_id_ttl = $this-&gt;object-&gt;config-&gt;item('sess_expiration'); if (is_numeric($session_id_ttl)) { if ($session_id_ttl &gt; 0) { $this-&gt;session_id_ttl = $this-&gt;object-&gt;config-&gt;item('sess_expiration'); } else { $this-&gt;session_id_ttl = (60*60*24*365*2); } } // check if session id needs regeneration if ( $this-&gt;_session_id_expired() ) { // regenerate session id (session data stays the // same, but old session storage is destroyed) $this-&gt;regenerate_id(); } // delete old flashdata (from last request) $this-&gt;_flashdata_sweep(); // mark all new flashdata as old (data will be deleted before next request) $this-&gt;_flashdata_mark(); } /** * Checks if session has expired */ function _session_id_expired() { if ( !isset( $_SESSION['regenerated'] ) ) { $_SESSION['regenerated'] = time(); return false; } $expiry_time = time() - $this-&gt;session_id_ttl; if ( $_SESSION['regenerated'] &lt;= $expiry_time ) { return true; } return false; } /** * Sets "flash" data which will be available only in next request (then it will * be deleted from session). You can use it to implement "Save succeeded" messages * after redirect. */ function set_flashdata($key, $value) { $flash_key = $this-&gt;flash_key.':new:'.$key; $this-&gt;set_userdata($flash_key, $value); } /** * Keeps existing "flash" data available to next request. */ function keep_flashdata($key) { $old_flash_key = $this-&gt;flash_key.':old:'.$key; $value = $this-&gt;userdata($old_flash_key); $new_flash_key = $this-&gt;flash_key.':new:'.$key; $this-&gt;set_userdata($new_flash_key, $value); } /** * Returns "flash" data for the given key. */ function flashdata($key) { $flash_key = $this-&gt;flash_key.':old:'.$key; return $this-&gt;userdata($flash_key); } /** * PRIVATE: Internal method - marks "flash" session attributes as 'old' */ function _flashdata_mark() { foreach ($_SESSION as $name =&gt; $value) { $parts = explode(':new:', $name); if (is_array($parts) &amp;&amp; count($parts) == 2) { $new_name = $this-&gt;flash_key.':old:'.$parts[1]; $this-&gt;set_userdata($new_name, $value); $this-&gt;unset_userdata($name); } } } /** * PRIVATE: Internal method - removes "flash" session marked as 'old' */ function _flashdata_sweep() { foreach ($_SESSION as $name =&gt; $value) { $parts = explode(':old:', $name); if (is_array($parts) &amp;&amp; count($parts) == 2 &amp;&amp; $parts[0] == $this-&gt;flash_key) { $this-&gt;unset_userdata($name); } } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload