찾다
php教程php手册PHP的会话处理函数session,会话函数session

PHP的会话处理函数session,会话函数session

PHP Session 变量

当运行一个应用程序时,你会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。

通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果需要永久储存信息,可以把数据存储在数据库中。

Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。

1. 开始会话

在把信息储存到session之前,首先要开启会话。php提供了session_start()函数来开始或者继续一个会话。定义:

 1 bool session_start( void ) 

调用如下:

<span>1</span> <span><?</span><span>php session_start();</span><span>?></span>
<span>2</span> <span><</span><span>html</span><span>></span>
<span>3</span> <span><</span><span>body</span><span>></</span><span>body</span><span>></span>
<span>4</span> <span></</span><span>html</span><span>></span>

 

注意:

(1)session_start()函数必须位于标签之前,也就是该函数必须在任何输出前调用,常常在写程序时不注意就多输入了一个空格或者回车,这时就会报错。应特别注意这一点。(我可是被坑过)

(2)无论有没有成功创建会话,session_start()函数都会返回TRUE,因此使用任何异常处理都不起作用

(3)还可以启用配置指令session.auto_start,从而不必执行这个函数,但是这样的话,每个php页面执行时都会开始或者继续一个会话。

2.存储或者读取会话

存储和读取session变量的正确方法是使用php的$_SESSION变量。$_SESSION是php提供的全局参数,专门用来存储和读取session。(注意关联数组的键名和普通变量的命名规则一致)

存储会话时,可以对其直接赋值。

 1 $_SESSION[‘season’] = '秋天'; 

以上设置了一个键名为“season”的会话元素,其值为“秋天”。当读取时,就像调用普通数组元素一样。

下面的两段代码显示怎么存储并读取一个会话元素。

这是session1.php文件:

<span> 1</span> <?<span>php
</span><span> 2</span> <span>/*</span><span>*
</span><span> 3</span> <span> * Created by PhpStorm.
</span><span> 4</span> <span> * User: yuxiu
</span><span> 5</span> <span> * Date: 2016/5/26
</span><span> 6</span> <span> * Time: 14:11
</span><span> 7</span>  <span>*/</span>
<span> 8</span> <span>if</span>(<span>isset</span>(<span>$_POST</span>['submit'<span>])){
</span><span> 9</span>     <span>session_start</span>();                                <span>//</span><span>开始建立一个会话</span>
<span>10</span>     <span>$_SESSION</span>['season'] = <span>$_POST</span>['season'];       <span>//</span><span>存储会话数据</span>
<span>11</span>     <span>header</span>("Location: session2.php");            <span>//</span><span>应特别注意header()里的格式问题</span>
<span>12</span> 
<span>13</span> 
<span>14</span> <span>}
</span><span>15</span> ?>
<span>16</span> <b>存储会话</b>
<span>17</span> <hr/>
<span>18</span> <span>选择需要设置的数据:
</span><span>19</span> <form name="form1" method="post" action="" id="form1" >
<span>20</span>     <select name="season" id="season_select" >
<span>21</span>         <option value="春天">春天</option>
<span>22</span>         <option value="夏天">夏天</option>
<span>23</span>         <option value="秋天">秋天</option>
<span>24</span>         <option value="冬天">冬天</option>
<span>25</span>     </select>
<span>26</span>     <br/>
<span>27</span>     <br/>
<span>28</span>     <br/>
<span>29</span>    <input type="submit" name="submit" value="submit"/>
<span>30</span> </form>

 这是session2.php文件:

<span> 1</span> <?<span>php
</span><span> 2</span> <span>/*</span><span>*
</span><span> 3</span> <span> * Created by PhpStorm.
</span><span> 4</span> <span> * User: yuxiu
</span><span> 5</span> <span> * Date: 2016/5/26
</span><span> 6</span> <span> * Time: 14:13
</span><span> 7</span>  <span>*/</span>
<span> 8</span> <span>session_start</span>();    <span>//</span><span>建立或者继续一个会话</span>
<span> 9</span> <span>$season</span> = <span>$_SESSION</span>['season'];       <span>//</span><span>读取会话数据</span>
<span>10</span> 
<span>11</span> <span>echo</span> "<b>读取会话</b><br/><br/>"<span>;
</span><span>12</span> <span>switch</span> (<span>$season</span><span>) {
</span><span>13</span>     <span>case</span> '春天'<span>;
</span><span>14</span>         <span>echo</span> '现在是绿意盎然的春天!'<span>;
</span><span>15</span>         <span>break</span><span>;
</span><span>16</span>     <span>case</span> '夏天'<span>;
</span><span>17</span>         <span>echo</span> '现在是热情四溢的夏天!'<span>;
</span><span>18</span>         <span>break</span><span>;
</span><span>19</span>     <span>case</span> '秋天'<span>;
</span><span>20</span>         <span>echo</span> '现在是丰收果实的秋天!'<span>;
</span><span>21</span>         <span>break</span><span>;
</span><span>22</span>     <span>case</span> '冬天'<span>;
</span><span>23</span>         <span>echo</span> '现在是白雪皑皑的冬天!'<span>;
</span><span>24</span>         <span>break</span><span>;
</span><span>25</span>     <span>default</span><span> ;
</span><span>26</span>         <span>echo</span> '对不起,会话中没有数据  或者  不存在该对话 !'<span>;
</span><span>27</span> <span>}
</span><span>28</span> ?>

在session1.php中首先使用session_start()创建一个会话,然后对提交的季节数据使用数组赋值的方式存储,最后使用header()函数直接跳转到开始。在session2.php文件中,也同样需要session_start()函数继续一个会话并利用session数组调用会话信息。

3.销毁会话

当会话不再被使用的时候,就需要人为的销毁它,虽然php有自动销毁会话的功能,但这样会使程序的效率变低。可以使用unset()函数或者session_destroy()函数。

<?<span>php
 </span><span>unset</span>(<span>$_SESSION</span>['season'<span>]);
</span>?>

 

  或者:

<?<span>php
 </span><span>session_destroy</span><span>();     //注意,使用这个函数将重置session数组,即失去所有的已经储存的session数据
</span>?>

 

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경