Heim > Backend-Entwicklung > PHP-Tutorial > 很着急:对Session的疑惑

很着急:对Session的疑惑

WBOY
Freigeben: 2016-06-06 20:43:20
Original
972 Leute haben es durchsucht

<code class="lang-php"><?php /**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 14-8-29
 * Time: 下午2:02
 */ 

 session_start();
 $_SESSION['username']='hello';

 print_r($_SESSION);
</code></code>
Nach dem Login kopieren
Nach dem Login kopieren

打印出Array ( [username] => hello)
然后在index.php同一个文件夹下面建立了1.php

<code class="lang-php"><?php /**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 14-8-29
 * Time: 下午2:02
 */ 

 print_r($_SESSION['username']);
</code></code>
Nach dem Login kopieren
Nach dem Login kopieren

出现了Notice: Undefined variable: _SESSION in C:\xampp\htdocs\phpstrom\0823\1.php on line 12
加上
session_start();
然后就打印出hello
难道每一个页面都要使用session_start吗?
不能直接使用吗?

回复内容:

<code class="lang-php"><?php /**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 14-8-29
 * Time: 下午2:02
 */ 

 session_start();
 $_SESSION['username']='hello';

 print_r($_SESSION);
</code></code>
Nach dem Login kopieren
Nach dem Login kopieren

打印出Array ( [username] => hello)
然后在index.php同一个文件夹下面建立了1.php

<code class="lang-php"><?php /**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 14-8-29
 * Time: 下午2:02
 */ 

 print_r($_SESSION['username']);
</code></code>
Nach dem Login kopieren
Nach dem Login kopieren

出现了Notice: Undefined variable: _SESSION in C:\xampp\htdocs\phpstrom\0823\1.php on line 12
加上
session_start();
然后就打印出hello
难道每一个页面都要使用session_start吗?
不能直接使用吗?

是的。在你用到 session 的时候,都需要使用 session_start。

你可以在通用包含文件(如配置文件等)中使用 session_start(); 这样每个页面都自动开启session 。

  1. php 中 session的实现是给每个session 分配一个唯一id,称作session_id。这个id默认通过cookie存在客户端,cookie的name可能会叫做 PHPSESSID ,可以通过 session.name 配置。
  2. 调用 session_start()时, php就会解析 PHPSESSID的值,拿到ID。根据ID去取session的值。
    session值默认是文件存放在 session.save_path目录下。
  3. 对session 配置操作的函数比如 session_name()session_set_cookie_params()session_save_path() 都要在session_start() 前调用, 不然php 无法解析session的值。

所以要想使用session必须在每次访问前调用 session_start()
session系列函数:http://php.net/manual/zh/ref.session.php,还可以再看下 php.ini中 session部分的配置

php所有需要用到$_SESSION变量的页面都必须先session_start()
这个函数负责初始化这个变量,具体干的事情就是从cookie里读取sessionid,然后从存储里取出session反序列化赋值给$_SESSION

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage