我一直在关注一些教程并设法使我的登录和注销脚本正常工作。我现在尝试做的是让它只允许在用户登录时访问页面。现在它只是将用户重定向到登录页面,这告诉我会话不是& #39;正在设置或者我的代码是错的(我已经尝试了我能想到的一切)
这是我的表单运行的login.php脚本,用于设置会话:
<?php
// establishing the MySQLi connection
require 'init.php';
if (mysqli_connect_errno())
{
echo "MySQLi Connection was not established: " . mysqli_connect_error();
}
// checking the user
if(isset($_POST['login'])) {
$username = mysqli_real_escape_string($conn,$_POST['username']);
$pass = mysqli_real_escape_string($conn,$_POST['password']);
$sel_user = "select * from login where username='$username' AND password='$pass'";
$run_user = mysqli_query($conn, $sel_user);
$check_user = mysqli_num_rows($run_user);
if($check_user>0) {
$_SESSION['username']=$username;
echo "<script>window.open('index.php','_self')</script>";
} else {
echo "<script>alert('Sorry. Your username or password is not correct, try again!')</script>";
}
}
?>
这就是我在每页顶部所包含的内容:
<?php
session_start();
if (!(isset($_SESSION['username']) && $_SESSION['username'] != '')) {
header ("Location: account-login.php");
}
require 'init.php';
?>
我将login.php文件从指向页面切换到弹出窗口,告诉我我已登录并获得弹出窗口,因此用户和密码注册正常,它只是不以某种方式存储会话。有任何想法吗?谢谢!
答案 0 :(得分:0)
好的,所以我终于开始工作了!
除了所有评论(帮助TON)之外,我还决定更改我在$ _SESSION中设置的名称。我想这可能是因为会话名称与名称或POST数据匹配,而且容易在某处造成冲突。
改变了这个:
$_SESSION['username']=$username;
我认为与此相矛盾:
$_SESSION['session_id']=$username;
工作!
谢谢!!!!!!!