php会话创建/阅读问题

时间:2010-10-12 19:19:56

标签: php session

我正在尝试在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

2 个答案:

答案 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表达式逻辑的说法。