2017-08-02 76 views
0

当我登录,我应该被重定向到名为“control_panel.php”另一页,但事情是,当我刷新我再次得到重定向回'login.php'页面。登录访问其他网页访问控制面板(重定向到另一个页面)

的login.php页:

<?php 
session_start(); 

$username = "admin"; 
$pw = "pixels2020"; 

//CHECKS FOR THE RIGHT USERNAME AND PW. 
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    if ($_POST['username'] == $username && $_POST['pw'] == $pw) { 
     $_SESSION['login'] = "logged_in"; 
//  header("Location:http://localhost/Task11/control_panel.php"); 
} else 
    $msg = "Wrong Username or Password."; 
} 

//SET SESSION VARIABLE TO logged_in 
if (isset($_SESSION['login'])) { 
    $_SESSION['login'] = "logged_in"; 
    echo $_SESSION['login']; 
    header("Location:http://localhost/Task11/control_panel.php"); 
} 
?> 

control_panel.php:

<?php 
session_start(); 

if ($_SESSION['login'] !== 'logged_in') 
    header("Location:http://localhost/Task11/login.php"); 
?> 
//Some php code 
//Some html code 

提前感谢!

+0

也许一个cookie问题。 尝试删除Cookie后。 – 2017-08-02 07:09:44

+0

打印出来的'$ _SESSION [ '登录']'只是'在session_start()之后;'的'login.php'页面。如果它是空的你登录后 - 然后尝试使用[session_set_cookie_params()](http://php.net/manual/en/function.session-set-cookie-params.php)功能,以您的configurate会话参数。 – Sergej

回答

0

我不知道,如果它只是一个在这里SO错字,但你else语句后忘了{

为什么设置$_SESSION['login']两次?验证结果为肯定后,您可以设置$_SESSION['login'] = "logged_in"

的login.php

<?php 
session_start(); 

$username = "admin"; 
$pw = "pixels2020"; 

//CHECKS FOR THE RIGHT USERNAME AND PW. 
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    if ($_POST['username'] == $username && $_POST['pw'] == $pw) { 

     // Handle the $_SESSION and redirect just here, after verification 
     $_SESSION['login'] = "logged_in"; 
     header("Location:http://localhost/Task11/control_panel.php"); 

} else { 
    $msg = "Wrong Username or Password."; 
} 
?> 

control_panel.php:

<?php 
session_start(); 

if ($_SESSION['login'] !== 'logged_in') { 
    header("Location:http://localhost/Task11/login.php"); 
} 
?> 

这种方式应该有现在的错误。如果仍然出现错误,则可能在另一个脚本文件内部存在错误。

+0

当用户输入登录页面但他已经登录时使用第二个会话变量(不通过POST方法。) –

0

我发现它的家伙,这是一个小的失误。 我与它被设置为

onnclick=“<?phpp destroy_session() ?>” 

和一些如何excuted声明没有点击该按钮的onclick属性做出另一个按钮与其他行动(登录页面)。请解释为什么如果你可以。