2013-05-11 38 views
1

當在窗體中寫入任何東西,並單擊輸入按鈕,沒有錯誤,但是當我寫的用戶名和密碼正確的錯誤顯示 我試圖回聲「$ _POST ['username']」; //如果用戶名不匹配,打印用戶名?當密碼和用戶名在數據庫中匹配時,顯示錯誤?

錯誤:

注意:未定義指數:用戶名在..

注意:未定義指數:密碼..

這是我的形式

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


<table align="center"> 
    <tr> 
    <td>Username</td> 
    <td><input type="text" name="username" /></td> 
    </tr> 
    <tr> 
    <td>Password</td> 
    <td><input type="password" name="password" /></td> 
    </tr> 
    <tr> 
    <td colspan="2" align="center"><input type="submit" value="Enter" /> 
    </td> 
    </tr> 
</table> 
</form> 

,這我第二頁

<?php 
$username = mysql_real_escape_string($_POST['username']); 
$password = mysql_real_escape_string($_POST['password']); 

    $connection = mysql_connect('localhost', 'root', ''); 
    if (!$connection){ 
     die('Could not connect'); 
     exit; 
    } 
    mysql_select_db('dbName') or die("Unable to select database"); 

    $query = "SELECT * FROM admin WHERE username = '$username'"; 

    $result = mysql_query($query) or die(mysql_error()); 

    $num = mysql_num_rows($result); // number of rows 

    if ($num > 0){ 
    $i = 0; 
    while ($i < $num){ 


     $row = mysql_fetch_array($result); 

     if (($password) == $row['password'] && ($username) == $row['username']){ 

      header('location:2.php'); 

      $_SESSION['sessionname'] = $username; 
      $_SESSION['sessionpass'] = $password; 
     } 

     elseif (($password) != $row['password'] && ($username) == $row['username']) { 
      echo "Wrong Password <a href='1.php' >Click Here</a>"; 

     } 

     $i++; 
     } 
    }else { 
     echo "Username <strong><u>$_POST[username]</u></strong> invalid ! <a href='1.php' >Click Here</a> "; 


     } 
    ?> 
+1

考慮存儲密碼哈希而不是明文。 – 2013-05-11 17:30:51

+1

爲什麼添加[tag:cakephp]標籤? – 2013-05-11 17:33:38

+0

「mysql_」函數現在已被棄用。我建議在繼續之前切換到mysqli_或PDO。 – vijrox 2013-05-11 17:34:30

回答

1

沒有理由按照您的方式分配用戶名和密碼變量。像通常會話一樣,簡單地將發佈數據分配給變量。

+0

無關,請告訴我怎麼做? – 2013-05-11 19:42:49

相關問題