Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 关闭选项卡后session仍然有效_Php_Mysql_Session - Fatal编程技术网

Php 关闭选项卡后session仍然有效

Php 关闭选项卡后session仍然有效,php,mysql,session,Php,Mysql,Session,我创建php文件,用于检查用户登录。如果用户和密码正确,用户可以访问目录页面。然而,会议存在一些问题。重新打开浏览器后,仍会显示隐藏的数据。我知道当我关闭浏览器时,会话将被关闭,但这种情况似乎很奇怪。这是登录表单: <html> <body> <?php $LabelLogin=array("login"=>"login", "password"=>"password",

我创建php文件,用于检查用户登录。如果用户和密码正确,用户可以访问目录页面。然而,会议存在一些问题。重新打开浏览器后,仍会显示隐藏的数据。我知道当我关闭浏览器时,会话将被关闭,但这种情况似乎很奇怪。这是登录表单:

<html>
    <body>
    <?php

    $LabelLogin=array("login"=>"login",
                        "password"=>"password",
                        );
    echo "<h1> Login and Register Page </h1>";
    echo "<form action='CheckLoginDetail.php' method=POST>";
                    foreach($LabelLogin as $keys =>$values)
                    {
                        if($keys=='password')
                        {
                            echo "$values <input type='password' name='$keys' /><br/>";
                        }
                        else
                        {
                            echo "$values <input type='text' name='$keys' /><br/>";
                        }
                    }
                    echo "<input type='submit'  value='submit' />";
    echo "<br/>click <a href='register.php'>here<a/> to register if you don't have an accout <br/>";                
    echo "</form>";
    ?>
    </body>


不确定,但在执行此操作时:

if(@$_SESSION['access'] != 'yes')
如果会话不存在(因为您关闭了浏览器),它可能会绕过此条件

尝试:


您确实需要停止使用所有这些
@
符号来消除错误。它会回来咬你Firefox不会在关闭时丢弃会话cookie,这是你正在签入的浏览器吗?您可以让它这样做,但将其配置为在关闭时不保存您的选项卡。Iam使用chrome与FF类似吗?请尝试创建一些小的代码示例来重现您的问题,而不是将其粘贴到应用程序的大块中。这不仅让其他人更容易理解和帮助你,制作这样一个例子的练习也可以帮助你更好地理解这个问题。对不起大家!我的问题是当我关闭浏览器会话上的一个选项卡时仍然有效,但当关闭整个浏览器会话时停止工作。该会话在选项卡关闭后仍然有效吗?如果(!isset($\u session['access']))$\u session['access']!='yes')
在您的答案中缺少一个
更改为
如果(!isset($\u session['access']))\124;$\ u session['access']!='yes
。@user28228请查看我上面的评论--^然后您需要使用
session_destroy()创建一个注销页面在它里面@用户3228228
<?php
session_start();
include("connect.inc");
$connect=mysqli_connect($host,$username,$password,$dbname) or die ("can't connect to server");
if(@$_SESSION['access'] != 'yes')
{
    include("FrontPage.php");
    exit();
}
$query="SELECT * FROM dragon ";
$result=mysqli_query($connect,$query) or die("can't execute query");

echo "<hr/>";

while($row=mysqli_fetch_assoc($result))
{
    extract($row);
    echo $type."<br/>";
    echo $CardName."<br/>";
    echo $atk." \ ".$def."<br/>";
    echo $Description;
    echo "<br/>".$picture."<br/>";
    echo "<br/>";
    echo "<a href='../dragon/{$picture}'><img src='../dragon/{$picture}'  height='300' width='300'></a>";
    echo "<hr/>";


}


?>
if(@$_SESSION['access'] != 'yes')
if (!isset($_SESSION['access']) | $_SESSION['access'] != 'yes')