登录以访问另一个页面以访问控制面板(重定向到另一个页面)

时间:2017-08-02 07:04:57

标签: php session redirect session-variables login-system

当我登录时,我应该被重定向到另一个名为“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

提前致谢!

2 个答案:

答案 0 :(得分:0)

我不知道这是否只是一个错字,但你在{声明之后忘记了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");
}
?>

这样现在应该有错误。如果仍然出现错误,则另一个脚本文件中的某处可能存在错误。

答案 1 :(得分:0)

我发现它们,这是一个小错误。 我使用另一个操作(到登录页面)创建了另一个按钮,其中onclick属性设置为

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

以及如何在不点击按钮的情况下执行该声明。如果可以,请解释原因。