2014-02-19 96 views
-2

嗨,大家好我即將在第44行登錄scipt(我會標記它)的問題。如果有人能幫助我,這將是非常感激。其與else語句做就行44.經過登錄腳本問題

<?php 
session_start(); 

$email = $_POST['email']; 

$password = $_POST['password']; 

if ($username&&$password){ 

$connect = mysql_connect("*****", "******", "*******") or die("Couldnt Connect to the Database"); 
mysql_select_db("1619882_members") or die("Couldnt Select/find the Database"); 

$query = mysql_query("SELECT * FROM social WHERE email='$email'"); 

$numrows = mysql_num_rows($query); 

if($numrows!==0){ 
    while($row = mysql_fetch_assoc($query)){ 

     $dbusername = $row['email']; 
     $dbpassword = $row['password']; 
    } 

    if($username==$dbusername&&sha1($password)==$dbpassword){ 

     echo "you are in"; 
     $_SESSION['email'] = $email; 
    } 
    else{ 
     echo "Your password is incorrect!"; 
     } 

    (line 44) else{ 
     die("That user does not exist!"); 
      } 


else 
    die("Please enter a username and Password!!"); 


?> 
+0

你得到了什麼錯誤? – j08691

+0

解析錯誤:語法錯誤,意外的T_ELSE在/srv/disk1/1619882/www/connect-freely.com/login.php上線44這是錯誤 – user3329680

+1

夥計,一切都是你的腳本是可怕的。一切。你爲什麼試圖自己建造這個? mysql_query已經過時了5年以上,你的SQL即使是最簡單的注入攻擊也是開放的,系統本身沒有意義,你在那裏沒有任何與PHP和它的語法無關的無用詞...... SHA1不適用於密碼散列。一般來說,你爲什麼要使用甚至不檢查你的語法的文本編輯器? – Sliq

回答

0

的問題是你有2 else後對方。

據我所知,當用戶名錯誤且密碼錯誤時,您希望提供單獨的錯誤消息,因此您應該使用不同的IF。

我還假設您使用電子郵件地址登錄。

if($username==$dbusername&&sha1($password)==$dbpassword){ 

    echo "you are in"; 
    $_SESSION['email'] = $email; 
} 
if($username!=$dbusername&&sha1($password)!=$dbpassword){ 
    echo "Password and username are wrong"; 
} 
else{ 
    if($password!=$dbpassword){ 
     echo "Your password is incorrect!"; 
    } 

    if($username!=$dbusername){ 
     die("That user does not exist!"); 
    } 
} 
+0

你的意思是'$ password!= $ dbpassword'和'$ username!= $ dbusername',對吧? –

+0

@PeteR Srry當然。總是把它們混合起來 – Loko