新手到php,还在学习如何散列和验证密码。 但在我到达那里之前,我需要帮助解决我的代码出错的问题。 我可以注册,它将值保存到我的数据库。 但是在进入我的home.php或任何其他使用
的页面时<?php
session_start();
if (!isset($_SESSION['username'])) {
$_SESSION['msg'] = "You must log in first";
header('location: login.php');
}
if (isset($_GET['logout'])) {
session_destroy();
unset($_SESSION['username']);
header("location: login.php");
}
?>
使用包含代码
的login / register.php文件$password = md5($password_1);
$query = "SELECT * FROM loginsystem WHERE username='$username' AND password='$password'";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) {
$_SESSION['username'] = $username;
$_SESSION['success'] = "You are now logged in";
header('location: home.php');
}else {
array_push($errors, "Wrong username/password combination");
但是所有内容都重定向到login.php并重置值,就像我想要它来销毁会话一样。验证会话有什么问题吗?
答案 0 :(得分:0)
基本上我只是使用 OR 运算符合并了两个 if 条件。试试这个。
<?php
session_start();
if ((!isset($_SESSION['username'])) || isset($_GET['logout'] )) {
session_destroy();
unset($_SESSION['username']);
header("location: login.php");
}
?>
答案 1 :(得分:0)
尝试使用
开始新会话session_start()
会话开启后,我们可以设置会话变量。 让我知道结果如何。