我正在尝试在php中创建一个非常简单的登录。我想做的就是,
如果登录成功,则注册名为user的会话,并将用户定向到内部页面。在那个内页我有一个包含文件,应该检查是否创建了用户会话
如果创建 - >授权用户 如果没有创建 - >重定向再次登录。
但我仍然无法正常运行。下面是我的代码
login.php
session_start();
global $user;
if (($_POST['Submit'])){
$login = $_POST['login'];
$password = $_POST['password'];
if ((do_login($login, encrypt_password($password))) > 0){
$_SESSION['user'] = $login;
header('Location: home/dashboard.php');
}
else{
// load login again
}
}
在我的dashboard.php页面中,我正在检查它(这部分我在另一个名为'authentication.inc'的文件中)
<?php
session_start(); // If
if (!isset($_SESSION['user'])) {
// User is not logged in, so send user away.
header("Location:/login");
die();
}
?>
已更新::
当我执行echo $ _SESSION ['user']时,我希望看到我完成的用户的登录名($ login):C
我在这里遗漏了什么......提前谢谢
欢呼声
sameera
答案 0 :(得分:1)
if (!isset ($_POST['Submit']) || $_POST['Submit'] != 'Login'){
如果正确提交表单,if
块内的代码将无法运行,因为该条件显示“如果未设置提交或不是'登录'”。尝试翻转那个条件的逻辑,即:
if (isset ($_POST['Submit']) && $_POST['Submit'] == 'Login'){
- &GT; “如果设置了提交并且是'登录'”
答案 1 :(得分:1)
位置标头采用表单的绝对网址,而不是相对网址:
header("Location: http://www.example.com/login.php");
PHP Manual header() page上有一个示例可以帮助创建绝对URL。
@Brian关于你的IF表达式逻辑的说法。