CodeIgniterTempdata(临时数据)

/ / CodeIgniterTempdata(临时数据)

在某些情况下,如果要在特定时间段后删除会话中存储的数据,可以使用CodeIgniter中的 tempdata 函数来完成。

增加 Tempdate 数据

要将数据添加为 tempdata ,无涯教程须使用 mark_as_tempdata()函数。此函数接受两个参数或要存储为 tempdata 的项,这些项的到期时间如下所示。

//'item' 将在 300 秒(5 分钟)后被删除
$this->session->mark_as_temp('item',300);

您还可以传递一个数组来存储多个数据。下面存储的所有项目将在300秒后过期。

无涯教程网

$this->session->mark_as_temp(array('item','item2'),300);

您还可以为每个项目设置不同的到期时间,如下所示。

//'item' 将在 300 秒后被删除,而 'item2'将在 240 秒后完成

$this->session->mark_as_temp(array( 
   'item'=>300, 
   'item2'=>240 
));

获取 Tempdata 数据

可以使用 tempdata()函数检索临时数据。此函数可确保您仅获取tempdata,而不获取其他数据。tempdata()函数将采用要获取的项目的一个参数。

$this->session->tempdata('item');

如果省略该参数,则可以检索所有现有的临时数据。

删除 Tempdata 数据

临时数据将在其到期时间后自动删除,但是如果您要在此之前删除临时数据,则可以使用 unset_tempdata()函数执行以下操作,该函数接受要删除的项目的一个参数。

$this->session->unset_tempdata('item');

Tempdata 完整示例

创建一个名为 Tempdata_controller.php 的类,并将其保存在 application/controller/Tempdata_controller.php 中。

<?php 
   class Tempdata_controller extends CI_Controller {
	
      public function index() { 
         $this->load->library('session'); 
         $this->load->view('tempdata_view'); 
      } 
  
      public function add() { 
         $this->load->library('session'); 
         $this->load->helper('url'); 
   
         //tempdata will be removed after 5 seconds 
         $this->session->set_tempdata('item','item-value',5); 
   
         redirect('tempdata'); 
      } 
   } 
?>

创建一个名为 tempdata_view.php 的文件,并将其保存在 application/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'>Click Here</a> to add temp data. 
   </body>
	
</html>

在application/config/routes.php的 routes.php 文件中进行更改,并在文件末尾添加以下行。

$route['tempdata']="Tempdata_controller"; 
$route['tempdata/add']="Tempdata_controller/add";

通过访问以下链接执行以上Example。用您网站的URL替换yoursite.com。

http://yoursite.com/index.php/tempdata

访问上述URL后,您将看到如下所示的屏幕。

TempData

单击"Click Here" 链接,您将看到如下所示的屏幕。

在此屏幕上,您将看到temp数据变量的值。五秒钟后再次刷新同一页面,因为无涯教程已将数据设置为五秒钟,您将看到如上所示的屏幕,并且五秒钟后将自动删除数据变量。如果您在5秒钟之前刷新同一页面,则由于时间周期尚未结束,因此不会删除临时数据。

Add Temp Data

删除 Session 数据

在PHP中,使用 session_destroy()函数销毁会话,而在CodeIgniter中,可以销毁函数,如下所示。

链接:https://www.learnfk.comhttps://www.learnfk.com/codeigniter/codeigniter-tempdata.html

来源:LearnFk无涯教程网

$this->session->sess_destroy();

调用此函数后,包括 flashdata 和 tempdata 在内的所有会话数据将被永久删除,并且无法取回。

祝学习愉快! (发现内容有误?请选中要编辑的内容 -> 右键 -> 修改 -> 提交!帮助我们改进教程质量)

精选教程推荐

👇 以下精选教程可能对您有帮助,拓展您的技术视野

AI音视频创作入门课 -〔唐子轩〕

互联网人的数字化企业生存指南 -〔沈欣〕

手把手教你落地DDD -〔钟敬〕

中间件核心技术与实战 -〔丁威〕

郭东白的架构课 -〔郭东白〕

说透芯片 -〔邵巍〕

后端存储实战课 -〔李玥〕

JavaScript核心原理解析 -〔周爱民〕

朱赟的技术管理课 -〔朱赟〕

📝 好记忆不如烂笔头,留下您的学习笔记吧!

暂无学习笔记,成为第一个分享的人吧!

您的笔记将帮助成千上万的学习者