允许带有$ _Session的内容

时间:2015-01-02 15:01:26

标签: php session login

我一直在关注一些教程并设法使我的登录和注销脚本正常工作。我现在尝试做的是让它只允许在用户登录时访问页面。现在它只是将用户重定向到登录页面,这告诉我会话不是& #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文件从指向页面切换到弹出窗口,告诉我我已登录并获得弹出窗口,因此用户和密码注册正常,它只是不以某种方式存储会话。有任何想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

好的,所以我终于开始工作了!

除了所有评论(帮助TON)之外,我还决定更改我在$ _SESSION中设置的名称。我想这可能是因为会话名称与名称或POST数据匹配,而且容易在某处造成冲突。

改变了这个:

$_SESSION['username']=$username;

我认为与此相矛盾:

$_SESSION['session_id']=$username;

工作!

谢谢!!!!!!!