作者 主題: 編寫登入系統  (閱讀 3422 次)

0 會員 與 1 訪客 正在閱讀本文。

leoleung

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
編寫登入系統
« 於: 2012-11-28 21:47 »
我只差一步就能完成這個登入系統
就是搜尋這一步

<?php session_start(); ?>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
//連接資料庫
//只要此頁面上有用到連接MySQL就要include它
include("mysql_connect.inc.php");
$id = $_POST['id'];
$pw = $_POST['pw'];

//搜尋資料庫資料
$sql = "SELECT * FROM member_table where username = '$id'";
$result = mysql_query($sql);
$row = @mysql_fetch_row($result);

//判斷帳號與密碼是否為空白
//以及MySQL資料庫裡是否有這個會員
if($id != null && $pw != null && $row[1] == $id && $row[2] == $pw)
{
        //將帳號寫入session,方便驗證使用者身份
        $_SESSION['username'] = $id;
        echo '登入成功!';
        echo '<meta http-equiv=REFRESH CONTENT=1;url=member.php>';
}
else
{
        echo '登入失敗!';
        echo '<meta http-equiv=REFRESH CONTENT=1;url=index.php>';
}
?>


請問哪裡出錯呢

TyroneYeh

  • 俺是博士!
  • *****
  • 文章數: 2396
  • 性別: 男
    • 檢視個人資料
Re: 編寫登入系統
« 回覆 #1 於: 2012-11-28 22:01 »
看 apache 的 error log
--
TyroneYeh

jared.t

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
Re: 編寫登入系統
« 回覆 #2 於: 2013-01-05 18:41 »
嘗試看看利用chop把從DB撈出來的的東西給去除掉多餘的空白 ,, 再去進行比對。


if($id != null && $pw != null && $row[1] == $id && $row[2] == $pw)
{
        //將帳號寫入session,方便驗證使用者身份
        $_SESSION['username'] = $id;
        echo '登入成功!';
        echo '<meta http-equiv=REFRESH CONTENT=1;url=member.php>';
}

改為

if($id != null && $pw != null && chop($row[1]) == $id && chop($row[2]) == $pw)
{
        //將帳號寫入session,方便驗證使用者身份
        $_SESSION['username'] = $id;
        echo '登入成功!';
        echo '<meta http-equiv=REFRESH CONTENT=1;url=member.php>';
}
相遇不是因為事故 ,, 那就開始這段故事。
By:Jared.T

godfrey3835

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
Re: 編寫登入系統
« 回覆 #3 於: 2013-02-18 21:55 »
sql語句那樣寫的話會造成sql injection,
建議用mysqli_prepare

http://php.net/manual/en/mysqli.prepare.php