PHP - index.php和session

时间:2014-12-10 08:31:57

标签: php

我的问题是 index.php

(1)如果我有一个名为“index.php”的php文件名。当我访问网页时,肯定会进入index.php页面?

(2)login.php

<?php
session_start();

if(isset($_POST['submit']))
{
$usrname = $_POST['username'];
$usrpassword = $_POST['password'];

if(!empty($usrname) && (!empty($usrpassword)))
{
    //db configuration
    $q = "select username from user where username = '".$usrname."' && userpwd = PASSWORD('$usrpassword')";
    $r = mysqli_query($dbc, $q);

    if(mysqli_num_rows($r))
    {
            $row = mysqli_fetch_array($r, MYSQLI_ASSOC);  
            session_regenerate_id();          
            $_SESSION['username'] = $row['username'];
            session_write_close();

            header("Location: index.php");
            exit();
    }
}


<html>
<head></head>

<body>
    <form action="" method="post">
        Username: <input type="text" name="username" /><br />
        Password: <input type="password" name="password" /><br />
        <input type="submit" name="submit" value="Login" />
    </form>
</body>
</html>
?>

的index.php

<?php
session_start();
if(!isset($_SESSION['username']))
{
    header("Location: login.php");
    exit();
}
?>
<html>
<head></head>
<body>
<p>Main Page</p>
</body>
</html>

当我关闭index.php上的浏览器时,下次我必须再次访问login.php。但是从我的代码中,它不会转到login.php页面并保留在index.php页面上。我犯了什么错误?我该如何解决?

2 个答案:

答案 0 :(得分:2)

对于商店会话ID使用的cookie。当您关闭浏览器时,它应该清除所有cookie。但是你的浏览器不会这样做。

也许您只关闭此页面的窗口,但未关闭所有浏览器应用程序。在这种情况下,浏览器可以存储会话cookie。

答案 1 :(得分:0)

使用会话销毁创建注销。 创建一个注销链接

<a href="logout.php"> Logout</a>

logout.php

<?php 
session_start();
session_destroy();
header("location:login.html");
?>