PHP设置了Session之后在其他页面读取不到的原因

PHP的Session也就是PHP会话经常用于用户登录之类应用。前些日子我参加了电商圈的比赛,但是又比较懒,不想架设博客或网站,于是就用PHP做了个简单的文本编辑器。

当时我没有对这个文本编辑器做权限限制,也就是任何知道编辑器网址的人都可以在线编辑网页,非常危险。

于是我就考虑用PHP会话(Session)来实现登录才可以使用编辑器,然而在本地测试的时候发现虽然登录成功后设置了Session值,但是其他页面却读不到这个值。理论上Session是存在于服务器的信息,只要同一个网站的不同页面都可以使用的。

后来查了一下资料才发现,原来所有需要使用Session的页面头部都需要用session_start()来开启本页面的Session功能,因为PHP是不会主动使用Session的,需要手工开启,或者对服务器进行设置。

于是我在头部增加了下面代码:

<?php
if (!isset($_SESSION))//session
{
session_start();//Session
}
?>

经过测试,确实是这样的……呃,看来还需要多学习了

写了一小段代码如下:

<?php
$pass=$_POST["pass"];
$login=$_GET["login"];
if($login=="ok")
{
if($pass=="liboseo.com")
{
session_start();
$_SESSION["admin"]="2011";
header("location: robots.php");
}
else
echo "";
}
?>

<form name="form1" action="?login=ok" method="post">
<input name="pass" type="password" value="" /> <input name="submit" value="" type="submit" />
<br>
liboseo.com
</form>

测试地址:http://liboseo.com/demo/login.php

“PHP设置了Session之后在其他页面读取不到的原因”的一个回复

评论已关闭。