2010-10-12 95 views
1

我想在php中創建一個非常簡單的登錄。我想要做的是,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(); 
    } 
?> 

更新::

當我做回聲$ _SESSION [ '用戶'],我期待看到登錄我做得到的用戶名(登錄$):C

我失去了一些東西在這裏...在此先感謝

歡呼

sameera

+0

你能解釋一下哪些工作不正常嗎? – lonesomeday 2010-10-12 19:42:51

回答

1

if (!isset ($_POST['Submit']) || $_POST['Submit'] != 'Login'){

if塊內部的代碼,如果表單正確提交將不會運行,因爲該條件讀取「如果提交未設置或不是'登錄'」。嘗試翻轉該條件的邏輯,即:

if (isset ($_POST['Submit']) && $_POST['Submit'] == 'Login'){ - 的>「如果提交設置,它是‘登錄’」

1

位置頭需要一個絕對URL,而不是相對URL,形式:

header("Location: http://www.example.com/login.php"); 

上有PHP Manual header() page,可以幫助創建絕對URL的例子。

@布賴恩說你的IF表達式的邏輯。