Home  >  Article  >  Backend Development  >  php session问题

php session问题

WBOY
WBOYOriginal
2016-06-23 14:12:42810browse

本帖最后由 u010001532 于 2013-06-08 18:00:51 编辑

PHP session

我想用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";?>

回复讨论(解决方案)

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

你访问page.php页面时 输出的session有值么?
还有最后在page.php的if中跳页面后面加上exit;
登录了打印的是ok
加了exit也是一样


你访问page.php页面时 输出的session有值么?
还有最后在page.php的if中跳页面后面加上exit;
登录了打印的是ok
加了exit也是一样
你已经登录了,当然可以直接访问page.php了



你访问page.php页面时 输出的session有值么?
还有最后在page.php的if中跳页面后面加上exit;
登录了打印的是ok
加了exit也是一样
你已经登录了,当然可以直接访问page.php了


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




你访问page.php页面时 输出的session有值么?
还有最后在page.php的if中跳页面后面加上exit;
登录了打印的是ok
加了exit也是一样
你已经登录了,当然可以直接访问page.php了


但是通过goBack返回到index,还是可以直接在浏览器输入page的地址直接访问
session 保存在服务器端,你已经登录过了之后,就存在这个状态,所以你可以直接访问page.php。除非你触发退出登录功能,或者干掉session。





你访问page.php页面时 输出的session有值么?
还有最后在page.php的if中跳页面后面加上exit;
登录了打印的是ok
加了exit也是一样
你已经登录了,当然可以直接访问page.php了


但是通过goBack返回到index,还是可以直接在浏览器输入page的地址直接访问
session 保存在服务器端,你已经登录过了之后,就存在这个状态,所以你可以直接访问page.php。除非你触发退出登录功能,或者干掉session。

对啊,我就是要干掉session,但还是不行额。。。
 session_start();
    unset($_SESSION['login']); 
    session_destroy();

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn