读书人

php session有关问题

发布时间: 2013-06-25 23:45:42 作者: rapoo

php session问题
本帖最后由 u010001532 于 2013-06-08 18:00:51 编辑 我想用session实现登录用户访问特定页面,未登录用户不能访问。

但是现在直接在浏览器输入page的地址可以直接访问。求指导。

//index.php


session_start();
if(Login() == true)
{
$_SESSION['login'] = 'ok';
//跳转到page.php
}
else
{
echo "Login error";
}


//page.php

session_start();
echo $_SESSION['login'];

if(empty($_SESSION['login'])||$_SESSION['login']!='ok') //未登陆则跳回index
{
?><script>setTimeout('window.location="index.php"', 1000);</script><?
}
.....
.....
<script language="javascript">
function goBack()
{
AjaxTest();
window.location.href = "./index.php";
}

function AjaxTest()
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var url = "ajax.php";
url += "?login=out";
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
alert(xmlHttp.responseText );
}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");


}
}
return xmlHttp;
}

</script>



//ajax.php

<?
$login = $_GET["login"];

session_start();
unset($_SESSION['login']);
session_destroy();

echo "success";
?>
PHP session
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

你访问page.php页面时 输出的session有值么?
还有最后在page.php的if中跳页面后面加上exit;

登录了打印的是ok
加了exit也是一样

你已经登录了,当然可以直接访问page.php了


但是通过goBack返回到index,还是可以直接在浏览器输入page的地址直接访问

session 保存在服务器端,你已经登录过了之后,就存在这个状态,所以你可以直接访问page.php。除非你触发退出登录功能,或者干掉session。

读书人网 >PHP

热点推荐