2013-09-21 97 views
0

我一直在利用這個論壇來幫助創建我的第一個PHP網站。我有大部分的東西已經啓動並正在運行,但是我面臨着登錄問題。 如果新用戶註冊並登錄到網站,它可以很好地工作,但是如果我打開登錄數據庫甚至一次,或者如果我在管理面板中查看用戶列表,則以前的所有用戶登錄都失敗,並且沒有人可以即使它們仍然存在於數據庫中,也要再次使用這些憑據登錄。任何幫助? 下面是我的登錄表單代碼:登錄到我的網站後失敗

<?php 
session_start(); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<html> 
    <head> 
    </head> 
    <body> 
     <table border="1" width="100%"> 
     <form action="user.php" method="post"> 
     <tr> 
      <td><label for="u_name">Your Email-id:</label></td> 
      <td><input type="text"name="u_name" id="u_name" placeholder="Enter email-id" required="required"/></td> 
     </tr> 
     <tr> 
      <td><label for="u_password">Password:</label></td> 
      <td><input type="password" name="u_password" id="u_password" placeholder="Enter password" required="required"/></td> 
     </tr> 
     <tr> 
      <td colspan="2" align="center"><input type="submit" name="sub" value="login"/></td> 
     </tr> 
     </table> 
     </form> 
    </body> 
</html> 
<?php 
if(isset($_POST['sub'])) 
{ 
    $u_name=$_POST['u_name']; 
    $u_password=$_POST['u_password']; 
    include ("connection.php"); 
    $w="select * from signup"; 
    $b=mysql_query($w) or die(mysql_error()."in query $w"); 
    while($row=mysql_fetch_array($b)) 
    { 
    $a=$row['email_id']; 
    $u=$row['password']; 
    } 
if ($u_name==$a && $u_password==$u) 
{ 
    $_SESSION['loggedin']=true; 
    $_SESSION['user_email']=$_POST['u_name']; 
    $_SESSION['user_pass']=$_POST['u_password']; 
    echo '<meta http-equiv="refresh" content="0; url=homepage.php">'; 
} 
else 
{ 
    echo "Your username or password is incorrect.Please try again"; 
} 
} 
?> 
+1

這聽起來像是一個非常有趣的問題。你有可以分享的任何代碼嗎? – rfoo

+0

分享您的代碼 –

+0

已更新問題中的代碼。 –

回答

1
<?php 
if(isset($_POST['sub'])) 
{ 
    $u_name=$_POST['u_name']; 
    $u_password=$_POST['u_password']; 
    include ("connection.php"); 
    $w="select * from signup where email_id = '$u_name' AND password = '$u_password'"; 
    $b=mysql_query($w) or die(mysql_error()."in query $w"); 
    $num_rows = mysql_num_rows($b); 
    if($num_rows > 0) 
    { 
     $row=mysql_fetch_array($b); 
     $_SESSION['loggedin']=true; 
     $_SESSION['user_email']=$_POST['u_name']; 
     $_SESSION['user_pass']=$_POST['u_password']; 
     echo '<meta http-equiv="refresh" content="0; url=homepage.php">'; 
    } 
    else 
    { 
     echo "Your username or password is incorrect.Please try again"; 
    } 
} 
?> 
+0

老兄,你的代碼會登錄錯誤的用戶;) –

+0

if($ num_rows == 0)??? 除了真實用戶之外,不會登錄每個人嗎? –

+0

請立即使用。 –