Anonymous
Anonymous asked in 電腦與網際網路程式設計 · 1 decade ago

PHP登入

這是我的登入系統,請問我要怎麼樣在這一個頁面寫才能在正確登入後導向到另一個頁面呢?

<?

// Filename : login.php

if (empty($HTTP_POST_VARS["username"])) :

// 顯示輸入密碼的畫面

?>

<form action="login.php" method="post">

名稱:<input type="Text" name="username"><br>

密碼:<input type="Password" name="password"><br>

<input type="Submit" name="submit" value="登入">

</form>

<?

else :

$username = $HTTP_POST_VARS["username"] ;

$password = $HTTP_POST_VARS["password"] ;

// 建立到資料庫的連線

$lnk = @mysql_pconnect("資料庫伺服器","資料庫帳號","資料庫密碼") or die("目前無法連線到資料庫!") ;

mysql_select_db("資料庫名稱",$lnk) ;

// 寫出 querystring

$querystring = "select id,username,gender from members where username='$username' and password='$password'" ;

// 執行 query

$result = mysql_query($querystring) ;

if (mysql_num_rows($result)!=1) die("您輸入的帳號或是密碼錯誤!請回上一頁重新登入。") ;

endif ;

?>

Update:

Cheng:

請問我要如何在別的網頁上顯示出他在此頁面登入的帳號呢?然後又要怎麼做登出呢?

P.S.如果可以的話,能不能也到http://tw.knowledge.yahoo.com/question/question?qi...

Update 2:

可不可以請你教我Session的方法?還有,Session是紀錄在我的資料庫內嗎?還是哪裡?

2 Answers

Rating
  • Lv 4
    1 decade ago
    Favorite Answer

    您好:

    請您參考看看我幫您修改的程式碼

    若有其他問題歡迎隨時發問

    <?php

    // Filename : login.php

    if (empty($HTTP_POST_VARS["username"])) :

    // 顯示輸入密碼的畫面

    ?>

    <form action="login.php" method="post">

    名稱:<input type="Text" name="username"><br>

    密碼:<input type="Password" name="password"><br>

    <input type="Submit" name="submit" value="登入">

    </form>

    <?php

    else :

    $username = $HTTP_POST_VARS["username"] ;

    $password = $HTTP_POST_VARS["password"] ;

    // 建立到資料庫的連線

    $lnk = @mysql_pconnect("資料庫伺服器","資料庫帳號","資料庫密碼") or die("目前無法連線到資料庫!") ;

    mysql_select_db("資料庫名稱",$lnk) ;

    // 寫出 querystring

    $querystring = "select id,username,gender from members where username='$username' and password='$password'" ;

    // 執行 query

    $result = mysql_query($querystring) ;

    if (!mysql_num_rows($result))

    {

    die("您輸入的帳號或是密碼錯誤!請回上一頁重新登入。") ;

    }

    else

    {

    /**

    * 登入成功!

    * 以下是採用SESSION的方法

    * 若您需要在其他業面讀取到此使用者名稱

    * 您只要在頁面的最上方(還沒有進行任何輸出前)

    * 加入 session_start();

    * 然後就可以用陣列變數 $_SESSION 來存取

    * 例如 您可以用 $_SESSION['username'] 來存取帳號名稱因為在下方

    * 我以定義說 $_SESSION['username'] = $username;

    *

    * *註: 若您看到了一個PHP錯誤 有類似這樣的字樣 "header already sent"

    * 那就表示說在執行 session_start 和 header 函數(如下)前面已有其他輸出

    * 您必須把session_start這函數擺這這網頁的最上方還有把header函數改成

    * 如Cheng大大所說的

    * echo"

    * <script Language='JavaScript'>

    * location.href='$url"';

    * </script>

    * ";

    */

    //啟動SESSION

    session_start();

    //寫入session (密碼通常是不需要, 若需要的話請把註解移開)

    $_SESSION['username'] = $username;

    //$_SESSION['password'] = $password;

    //轉址

    $url = '登入成功要轉到的網址';

    header('location: ' . $url);

    }

    endif ;

    ?>

    Source(s): 羽軒
  • 1 decade ago

    把以下

    if (mysql_num_rows($result)!=1) die("您輸入的帳號或是密碼錯誤!請回上一頁重新登入。") ;

    改成

    if (mysql_num_rows($result)!=1)

    {

    "您輸入的帳號或是密碼錯誤!請回上一頁重新登入。" ;

    }

    else

    {

    echo"

    <script Language='JavaScript'>

    location.href='要跳轉的網址"';

    </script>

    ";

    }

    這樣就好了

    2009-03-26 23:22:04 補充:

    有兩種方法

    一種是COOKIE是把登入資訊放在用戶端電腦內紀錄他登入

    另外一種是SEESION是記錄在主機內

    COOKIE比較簡單

    你可以上PHP聖經查COOKIE使用方法

    或是我晚點在補上

    2009-03-28 00:01:02 補充:

    是一個滿大的主題

    不容易在這邊說

    你可以上網查茶PHP的session用法

    有很多教學喔!!!

    Source(s): ME
Still have questions? Get your answers by asking now.