- CodeIgniter - Security
- CodeIgniter - Internationalization
- CodeIgniter - Adding JS and CSS
- CodeIgniter - Benchmarking
- CodeIgniter - Application Profiling
- CodeIgniter - Page Redirection
- CodeIgniter - Page Caching
- CodeIgniter - Common Functions
- CodeIgniter - Cookie Management
- CodeIgniter - Tempdata
- CodeIgniter - Flashdata
- CodeIgniter - Session Management
- CodeIgniter - Form Validation
- CodeIgniter - Sending Email
- CodeIgniter - File Uploading
- CodeIgniter - Error Handling
- CodeIgniter - Libraries
- CodeIgniter - Working with Database
- CodeIgniter - Configuration
- CodeIgniter - Basic Concepts
- CodeIgniter - MVC Framework
- CodeIgniter - Application Architecture
- CodeIgniter - Installing CodeIgniter
- CodeIgniter - Overview
- CodeIgniter - Home
CodeIgniter Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
CodeIgniter - Tempdata
In some situations, where you want to remove data stored in session after some specific time-period, this can be done using tempdata functionapty in CodeIgniter.
Add Tempdata
To add data as tempdata, we have to use mark_as_tempdata() function. This function takes two argument items or items to be stored as tempdata and the expiration time for those items are as shown below.
// item will be erased after 300 seconds(5 minutes) $this->session->mark_as_temp( item ,300);
You can also pass an array to store multiple data. All the items stored below will be expired after 300 seconds.
$this->session->mark_as_temp(array( item , item2 ),300);
You can also set different expiration time for each item as shown below.
// item will be erased after 300 seconds, while item2 // will do so after only 240 seconds $this->session->mark_as_temp(array( item =>300, item2 =>240 ));
Retrieve Tempdata
We can retrieve the tempdata using tempdata() function. This function assures that you are getting only tempdata and not any other data. Look at the example given below to see how to retrieve tempdata. tempdata() function will take one argument of the item to be fetched.
$this->session->tempdata( item );
If you omit the argument, then you can retrieve all the existing tempdata.
Remove Tempdata
Tempdata is removed automatically after its expiration time but if you want to remove tempdata before that, then you can do as shown below using the unset_tempdata() function, which takes one argument of the item to be removed.
$this->session->unset_tempdata( item );
Example
Create a class called Tempdata_controller.php and save it in apppcation/controller/Tempdata_controller.php.
<?php class Tempdata_controller extends CI_Controller { pubpc function index() { $this->load->pbrary( session ); $this->load->view( tempdata_view ); } pubpc function add() { $this->load->pbrary( session ); $this->load->helper( url ); //tempdata will be removed after 5 seconds $this->session->set_tempdata( item , item-value ,5); redirect( tempdata ); } } ?>
Create a file called tempdata_view.php and save it in apppcation/views/tempdata_view.php
<!DOCTYPE html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>CodeIgniter Tempdata Example</title> </head> <body> Temp Data Example <h2><?php echo $this->session->tempdata( item ); ?></h2> <a href = tempdata/add >Cpck Here</a> to add temp data. </body> </html>
Make the changes in the routes.php file in apppcation/config/routes.php and add the following pne at the end of the file.
$route[ tempdata ] = "Tempdata_controller"; $route[ tempdata/add ] = "Tempdata_controller/add";
Execute the above example by visiting the following pnk. Replace the yoursite.com with the URL of your site.
http://yoursite.com/index.php/tempdata
After visiting the above URL, you will see a screen as shown below.
![TempData](/codeigniter/images/temp_data.jpg)
Cpck on “Cpck Here” pnk and you will see a screen as shown below.
Here, in this screen you will see a value of temp data variable. Refresh the same page after five seconds again as we have set the temp data for five seconds and you will see a screen pke above and temp data variable will be removed automatically after five seconds. If you refresh the same page before 5 seconds, then the temp data will not be removed, as the time period is not over.
![Add Temp Data](/codeigniter/images/add_temp_data.jpg)
Destroying a Session
In PHP, we are using the session_destroy() function to destroy the session and in CodeIgniter we can destroy the function as shown below.
$this->session->sess_destroy();
After calpng this function, all the session data including the flashdata and tempdata will be deleted permanently and cannot be retrieved back.
Advertisements