cari
Rumahpembangunan bahagian belakangtutorial php解析php框架codeigniter中如何使用框架的session_PHP教程

解析php框架codeigniter中如何使用框架的session_PHP教程

Jul 21, 2016 pm 03:03 PM
codeigniterphpsessiongunabagaimanamempunyaibingkaidaripadamenghuraikan

里面有两种session的使用方法:
1是php的原始的session使用方法,这个很简单,$_SESSION['name']="name",然后在需要的地方显示:echo $_SESSION['name'];
2是codeigniter这个框架的一个方法:
下面就详细讲解如何使用这个有点点复杂的方法:
首先,在\ci\application\config下面的config.php文件中找到:$config['encryption_key'] = '';这个里面随便填什么值都可以,但是不能为空。一般是英文啊,不要钻牛角尖。
接着在\ci\application\config下面的auto.php文件中找到:$autoload['libraries'] = array('');里面要填写:$autoload['libraries'] = array('session');或者在适当的地方如control文件夹里面的相应文件中(一般是在构造方法中)写:$this->load->library('session');这样也行。
现在环境配置好了,现在就是写代码了:
在需要放入session的地方写:
$this->session->set_userdata('name','yang');
这样session里面就有了值了。
显示值:
echo $this->session->userdata('name');
如果是array,则:
$newdata = array(
                   'username'  => 'johndoe',
                   'email'     => 'johndoe@some-site.com',
                   'logged_in' => TRUE
               );
$this->session->set_userdata($newdata);
以下是转载的别人的详细的有点废话的相关知识:
Sessions会在每个页面载入后开始运行,所以session类必须首先被初始化。

1、您可以在控制器中初始化,也可以在系统中自动加载(译者注:在autoload.php设定)$autoload['libraries'] = array('session');

2、要在您的控制器构造函数中初始化session类,您可以使用 $this->load->library 函数:$this->load->library('session');一旦被载入, session就可以这样使用: $this->session。
session类的绝大部分都会在后台运行,所以初始化session时,它session数据会被自动读取、创建和更新。

Sessions 是怎样工作的?
需要知道的非常重要的一点就是,session类一旦被初始化,它就会自动运行。对于后面的事情,您可以完全不作理会。正如您将会在下面看到的一样,您可以正常使用session来工作,甚至还可以添加自己的session数据,而在这一切的过程中,读、写和更新的操作都是自动完成的。

当页面载入后,session类就会检查用户的cookie中是否存在有效的session数据。如果session数据不存在(或者已经过期),那么就会创建一个新的session并把他保存在cookie中。如果session数据存在,那么他的信息就会被更新,同时cookie也会被同时更新。每次更新都会重新生成session_id的值。

默认情况下, Session Cookie 每隔 5 分钟才会更新一次,这样会减少对处理器的负荷。如果你重复的装载页面, 你会发现"上次活动"的时间在五分钟,或多余五分钟的时候才会变化,也就是 cookie上次被写入的时间。 这个时间可以通过设置 application/config/config.php 文件里的 $config['sess_time_to_update'] 行来改变。

一个 session 是由一个包括下列信息的数组组成的:
唯一的用户Session ID (这是一个平均信息量统计出来的非常坚固的随机字符串,使用MD5加密,默认是每五分钟就重新生成一次。
用户的 IP 地址
用户浏览器信息(取前50个字符)
最新的一个活跃时间戳.
以上数据将会用以下数组格式序列化并存到cookie里:

复制代码 代码如下:

[array]
(
     'session_id'    => random hash,
     'ip_address'    => 'string - user IP address',
     'user_agent'    => 'string - user agent data',
     'last_activity' => timestamp
)

1、取得 Session 数据:
可以通过如下的函数来得到 session 数组的任何信息:
$this->session->userdata('item');
item 是数组里的相对应数据的索引。例如,想要获得 session ID, 你要使用如下的代码:
$session_id = $this->session->userdata('session_id');
注意: 如果你的目标数据不存在的话,这个函数会返回 FALSE (布尔值boolean)。

2、添加自定义的 Session 数据:
假设,有个特定用户登陆到你的网站, 当他通过检测后 你可以添加他的用户名和电子邮件到 session cookie 中,这些信息可以在不去访问数据库的情况下,当成全局量来使用。
通过以下函数,你可以传递一个新的用户数组到 session 数组中:
$this->session->set_userdata($array);
$array 是一个结合数组,用来存储你的新数据。例如 :

复制代码 代码如下:

$newdata = array(
                   'username'  => 'johndoe',
                   'email'     => 'johndoe@some-site.com',
                   'logged_in' => TRUE
               );
$this->session->set_userdata($newdata);

如果使用下面 set_userdata()函数的写法,可以每次只添加一个用户数据。
$this->session->set_userdata('some_name', 'some_value');
注意: Cookies 只能存储 4KB 的数据, 使用时要小心超出它的容量。特别指出的是,加密会产生比原数据更长的数据字符串,所以一定要当心你要存放数据的大小。

3、删除 Session 数据:正如使用 set_userdata() 是用来添加信息到 session 中,而通过向unset_userdata() 函数中传递 session key 可以用来删除这些信息。例如, 你想要从 session 信息里去掉 'some_name':
$this->session->unset_userdata('some_name');
也可以给这个函数传一个要删除项的关联数组。
$array_items = array('username' => '', 'email' => '');
$this->session->unset_userdata($array_items);

4、将 Session 数据存入数据库:
当session 数据在数据库中可用时,每当从用户cookie中发现一个有效的session,一个数据库查询就会被执行以匹配它。如果 session ID 不相配,session 就会被销毁。Session ID永远不会更新,它们只会在一个新的会话创建时生成。
为了存储session,你必须先创建一个数据表。这是 session 类所需的基本结构(用于MySQL的):

复制代码 代码如下:

CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(50) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text DEFAULT '' NOT NULL,
PRIMARY KEY (session_id) );

一旦启用了,Session类就会在数据库中存储session数据。
同时确保你已经在配置文件中指定了数据表名:$config['sess_table_name'] = 'ci_sessions';
注意: 默认情况下这个表叫做 ci_sessions, 但是你可以给它指定任意名字,只要你更新了 application/config/config.php 文件以确保它包含了你所起的名字。一旦你创建了数据表,你就可以像下面这样在config.php文件中启用数据库选项:
$config['sess_use_database'] = TRUE;
注意: Session类已经内置了清除过期session的垃圾回收机制,因此你不需要编写你自己的事务来做这个。

5、销毁 Session
要清除当前 session:$this->session->sess_destroy();
Session 的参数

6、你可以在application/config/config.php 文件中找到以下的 Session 相关的参数:
参数     默认     选项     描述
sess_cookie_name     ci_session     无     你想要保存 Session Cookie 的名字。
sess_expiration     7200     无     session 持续的秒数。默认是2个小时(7200秒)。如果将这个数值设为: 0,就可以得到 永久 session。
sess_expire_on_close     FALSE     TRUE/FALSE (boolean)     这个选项决定当浏览器窗口关闭时是否自动使session过期。
sess_encrypt_cookie     FALSE     TRUE/FALSE (布尔值boolean)     是否对 session 数据加密.
sess_use_database     FALSE     TRUE/FALSE (布尔值boolean)     是否将 session 数据存放入数据库中。在开启这个选项前,你要先创建一个数据库表。
sess_table_name     ci_sessions     任何有效的 SQL 表名     session 数据库表的名字。
sess_time_to_update     300     时间以秒计算     这个选项控制 session 类多久会产生一个新的session 和 session id。
sess_match_ip     FALSE     TRUE/FALSE (布尔值boolean)     是否通过用户的IP地址来读取 session 的数据。 注意 ,有些网络运行商 ISPs 会动态的改变IP, 所以将这个选项设为 FALSE, 才有可能得到永久的 session。
sess_match_useragent     TRUE     TRUE/FALSE (布尔值boolean)     是否要按照对应的 User Agent 来读取 session 数据。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/327825.htmlTechArticle里面有两种session的使用方法: 1是php的原始的session使用方法,这个很简单,$_SESSION['name']="name",然后在需要的地方显示:echo $_SESSION['name']...
Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Penggunaan PHP yang berterusan: Sebab -sebab ketahanannyaPenggunaan PHP yang berterusan: Sebab -sebab ketahanannyaApr 19, 2025 am 12:23 AM

Apa yang masih popular adalah kemudahan penggunaan, fleksibiliti dan ekosistem yang kuat. 1) Kemudahan penggunaan dan sintaks mudah menjadikannya pilihan pertama untuk pemula. 2) Bersepadu dengan pembangunan web, interaksi yang sangat baik dengan permintaan HTTP dan pangkalan data. 3) Ekosistem yang besar menyediakan banyak alat dan perpustakaan. 4) Komuniti aktif dan Sumber Sumber Terbuka menyesuaikan mereka dengan keperluan baru dan trend teknologi.

PHP dan Python: Meneroka Persamaan dan Perbezaan merekaPHP dan Python: Meneroka Persamaan dan Perbezaan merekaApr 19, 2025 am 12:21 AM

PHP dan Python adalah kedua-dua bahasa pengaturcaraan peringkat tinggi yang digunakan secara meluas dalam pembangunan web, pemprosesan data dan tugas automasi. 1.Php sering digunakan untuk membina laman web dinamik dan sistem pengurusan kandungan, sementara Python sering digunakan untuk membina kerangka web dan sains data. 2.Php Menggunakan Echo ke Kandungan Output, Python Menggunakan Cetakan. 3. Kedua-dua sokongan pengaturcaraan berorientasikan objek, tetapi sintaks dan kata kunci adalah berbeza. 4. PHP menyokong penukaran jenis lemah, manakala Python lebih ketat. 5. Pengoptimuman Prestasi PHP termasuk menggunakan OPCACHE dan pengaturcaraan asynchronous, manakala Python menggunakan pengaturcaraan CProfile dan tak segerak.

PHP dan Python: Paradigma yang berbeza dijelaskanPHP dan Python: Paradigma yang berbeza dijelaskanApr 18, 2025 am 12:26 AM

PHP terutamanya pengaturcaraan prosedur, tetapi juga menyokong pengaturcaraan berorientasikan objek (OOP); Python menyokong pelbagai paradigma, termasuk pengaturcaraan OOP, fungsional dan prosedur. PHP sesuai untuk pembangunan web, dan Python sesuai untuk pelbagai aplikasi seperti analisis data dan pembelajaran mesin.

PHP dan Python: menyelam mendalam ke dalam sejarah merekaPHP dan Python: menyelam mendalam ke dalam sejarah merekaApr 18, 2025 am 12:25 AM

PHP berasal pada tahun 1994 dan dibangunkan oleh Rasmuslerdorf. Ia pada asalnya digunakan untuk mengesan pelawat laman web dan secara beransur-ansur berkembang menjadi bahasa skrip sisi pelayan dan digunakan secara meluas dalam pembangunan web. Python telah dibangunkan oleh Guidovan Rossum pada akhir 1980 -an dan pertama kali dikeluarkan pada tahun 1991. Ia menekankan kebolehbacaan dan kesederhanaan kod, dan sesuai untuk pengkomputeran saintifik, analisis data dan bidang lain.

Memilih antara php dan python: panduanMemilih antara php dan python: panduanApr 18, 2025 am 12:24 AM

PHP sesuai untuk pembangunan web dan prototaip pesat, dan Python sesuai untuk sains data dan pembelajaran mesin. 1.Php digunakan untuk pembangunan web dinamik, dengan sintaks mudah dan sesuai untuk pembangunan pesat. 2. Python mempunyai sintaks ringkas, sesuai untuk pelbagai bidang, dan mempunyai ekosistem perpustakaan yang kuat.

PHP dan Rangka Kerja: Memodenkan bahasaPHP dan Rangka Kerja: Memodenkan bahasaApr 18, 2025 am 12:14 AM

PHP tetap penting dalam proses pemodenan kerana ia menyokong sejumlah besar laman web dan aplikasi dan menyesuaikan diri dengan keperluan pembangunan melalui rangka kerja. 1.Php7 meningkatkan prestasi dan memperkenalkan ciri -ciri baru. 2. Rangka kerja moden seperti Laravel, Symfony dan CodeIgniter memudahkan pembangunan dan meningkatkan kualiti kod. 3. Pengoptimuman prestasi dan amalan terbaik terus meningkatkan kecekapan aplikasi.

Impak PHP: Pembangunan Web dan seterusnyaImpak PHP: Pembangunan Web dan seterusnyaApr 18, 2025 am 12:10 AM

Phphassignificantelympactedwebdevelopmentandextendsbeyondit.1) itpowersmajorplatformslikeworderpressandexcelsindatabaseIntions.2) php'SadaptabilityAldoStoScaleforlargeapplicationFrameworksLikelara.3)

Bagaimanakah jenis membayangkan jenis PHP, termasuk jenis skalar, jenis pulangan, jenis kesatuan, dan jenis yang boleh dibatalkan?Bagaimanakah jenis membayangkan jenis PHP, termasuk jenis skalar, jenis pulangan, jenis kesatuan, dan jenis yang boleh dibatalkan?Apr 17, 2025 am 12:25 AM

Jenis PHP meminta untuk meningkatkan kualiti kod dan kebolehbacaan. 1) Petua Jenis Skalar: Oleh kerana Php7.0, jenis data asas dibenarkan untuk ditentukan dalam parameter fungsi, seperti INT, Float, dan lain -lain. 2) Return Type Prompt: Pastikan konsistensi jenis nilai pulangan fungsi. 3) Jenis Kesatuan Prompt: Oleh kerana Php8.0, pelbagai jenis dibenarkan untuk ditentukan dalam parameter fungsi atau nilai pulangan. 4) Prompt jenis yang boleh dibatalkan: membolehkan untuk memasukkan nilai null dan mengendalikan fungsi yang boleh mengembalikan nilai null.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa