首页/技术开发/内容

抛开Cookie运用SESSION-PHP中SESSION不能跨页传递问题的处理办法

技术开发2024-06-05 阅读()
!$pass) {
echo "用户名或密码为空,请<a href=\"login.html\">重新登录</a>";
die();
}
if (!($name=="laogong" && $pass=="123")) {
echo "用户名或密码不正确,请<a href=\"login.html\">重新登录</a>";
die();
}
//注册用户
ob_start();
session_start();
$_SESSION['user']= $name;
$psid=session_id();
$fp=fopen("e:\\tmp\\phpsid.txt","w+");
fwrite($fp,$psid);
fclose($fp);
//身份验证成功,进行相关操作
echo "已登录<br>";
echo "<a href=\"mylogin2.php\">下一页</a>";

?>

mylogin2.php

<?php
$fp=fopen("e:\\tmp\\phpsid.txt","r");
$sid=fread($fp,1024);
fclose($fp);
session_id($sid);
session_start();
if(isset($_SESSION['user']) && $_SESSION['user']="laogong" ) {

echo "已登录!";
}
else {
//成功登录进行相关操作
echo "未登录,无权访问";
echo "请<a href=\"login.html\">登录</a>后浏览";
die();
}

?>

同样请关闭cookie测试,用户名:laogong 密码:123 这是通过文件保存session id的,文件是:e:\tmp\phpsid.txt,请根据自己的系统决定文件名或路径。

至于用数据库的方法,我就不举例子了,与文件的方法类似。

总结一下,上面的方法有一个共同点,就是在前一页取得session id,然后想办法传到下一页,在下一页的session_start();代码之前加代码session_id(传过来的session id);


注:本人测试环境:Win2K Sever Aapache 1.3.31 PHP 4.3.4

另外,lidm在类unix系统上也测试通过



第1页  第2页  第3页 

……

相关阅读