登录访问其他网页访问控制面板(重定向到另一个页面)
问题描述:
当我登录,我应该被重定向到名为“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
提前感谢!
答
我不知道,如果它只是一个在这里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方法。) –
答
我发现它的家伙,这是一个小的失误。 我与它被设置为
onnclick=“<?phpp destroy_session() ?>”
和一些如何excuted声明没有点击该按钮的onclick属性做出另一个按钮与其他行动(登录页面)。请解释为什么如果你可以。
也许一个cookie问题。 尝试删除Cookie后。 – 2017-08-02 07:09:44
打印出来的'$ _SESSION [ '登录']'只是'在session_start()之后;'的'login.php'页面。如果它是空的你登录后 - 然后尝试使用[session_set_cookie_params()](http://php.net/manual/en/function.session-set-cookie-params.php)功能,以您的configurate会话参数。 – Sergej