我的问题是 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页面上。我犯了什么错误?我该如何解决?
答案 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");
?>