php
  • mysql
  • 2013-03-11 53 views 0 likes 
    0

    我有一個登錄頁面指向另一個php頁面。這個PHP頁面接受用戶輸入的用戶名,將其存儲爲會話變量,然後重定向到home.php(在驗證信息後運行此代碼)。PHP - 使用會話更新登錄信息

    $username = $_POST['username']; 
        $update = mysql_query("UPDATE usertable SET loginStatus='Logged in' WHERE userName = '$username'"); 
        session_start(); 
        $_SESSION['loggedin'] = true; 
        $_SESSION['username'] = $_POST['username']; 
        header("Location: home.php"); 
    

    這將更新適當的列而不會出現問題。我把下面的代碼在home.php頁面顯示每個用戶的登錄狀態

    session_start(); 
        $username = $_SESSION['username']; 
        if(empty($_SESSION['username'])){ 
        header("Location: login.php"); 
        } 
    
        $result = mysql_query("SELECT * FROM usertable"); 
        echo "Logged in as ". $_SESSION['username']; 
        echo "<br />"; 
        while($row = mysql_fetch_array($result)) 
        { 
        echo $row['userName'] . " " . $row['emailAddress'] . " " .$row['loginStatus']; 
        echo "<br />"; 
        } 
    
        ?> 
    
        <p><a href=logout.php>Click here to logout</a></p> 
    

    當用戶單擊註銷鏈接,它引導他們到下面的PHP頁面:

    <?php 
        session_start(); 
        $username = $_SESSION['username']; 
        $update1 = mysql_query("UPDATE usertable SET loginStatus='' WHERE userName = '$username'"); 
        echo $username; 
        ?> 
        <?php 
        session_destroy(); 
        ?> 
        <h1>You are now logged out</h1> 
        <p><a href=login.php>login</a></p>  
    

    這是我有我的問題。 MySQL沒有更新相應用戶名的log​​inStatus。當我測試它們時,所有變量($ username,$ username1)都會輸出正確的信息。在註銷頁面的情況下,我知道$ _SESSION ['username']正在存儲正確的用戶名,但我無法弄清楚爲什麼它不會更新數據庫中的值。

    +0

    我看到你沒有檢查更新查詢的結果;也許它是'假'?你可以迴應查詢,這看起來很奇怪嗎? – 2013-03-11 15:46:15

    +2

    註銷頁面中的數據庫conexion在哪裏? – EmCo 2013-03-11 15:50:39

    +0

    從註銷頁面回顯$ update1不會返回任何內容,如果這是您的意思? – TaylorSmolik 2013-03-11 15:51:13

    回答

    0

    如果這全部放在您的頁面上,則可能沒有數據庫連接。檢查您的查詢返回值至少

    $update1 = mysql_query("UPDATE usertable SET loginStatus='' WHERE userName = '$username'") or die(mysql_error()); 
    

    你應該看到真正的原因。

    另外,您應該考慮切換到mysqliPDO,因爲mysql_*函數現在已被棄用。

    0

    問題出在哪裏??數據庫更新登錄或數據庫抓取home.php頁面或數據庫更新註銷頁面......您開始會話多少次三個頁面都有會話開始在他們的功能。

    +0

    更新註銷頁面是問題,我有一個印象,開始一個會話是必要的檢索變量。 – TaylorSmolik 2013-03-11 15:50:03

    相關問題