2017-04-15 135 views
0

我使用php和mysqli创建登录页面,但是,当我输入错误的用户名和密码时,它不能显示错误消息。If-else语句总是运行login.php中的else语句

<?php 

session_start(); 
$error=""; 
//connect database 
include("../task2/db_setting.php"); 

if($_SERVER["REQUEST_METHOD"]=="POST"){ 

    //email and password from form 
    $email = mysqli_real_escape_string($conn,$_POST['email']); 
    $password= md5(mysqli_real_escape_string($conn,$_POST['password'])); 

    //Retrive data from database 
    $sql = "SELECT * FROM user WHERE email='$email' and password = '$password'"; 
    $result = $conn->query($sql); 

    if ($result->num_rows > 0) { 
     // output data of each row 
     while($row = $result->fetch_assoc()) { 
     $_SESSION["login_user"]=$row[email]; 
     $_SESSION["id"]=$row[id]; 
     } 
    } 
    else { 
     $error="Your Login name or password is invalid"; 
    } 

    if(isset($_SESSION["login_user"])) 
     header("location:account.php"); 
}?> 

如果我输入一个错误的用户名,其不仅无法登录,但并未出现在$错误,我试图改变它的回声,但转了,它总是会呼应了错误信息我登录之前或输入任何东西。我认为这意味着代码总是运行else语句。

任何人都知道我的代码中出了什么问题?

+0

混合OO和功能mysqli,okaaaay。 –

回答

0
<?php 
    if(isset($error)) 
    { 
    echo '<div style="color:#FF0000;text-align:center;font-size:12px;">'.$error.'</div>'; 
    } 

?> 
+0

添加此行您想要的位置显示错误信息 –

+0

Omg它正在工作,谢谢谢谢谢谢。 –

+0

我可以知道背后的理论是什么吗?为什么我的原始代码无法工作? –

-1

如果(isset($ _ POST [ '提交']))

{

$电子邮件= mysql_real_escape_string($ _ POST [ '电子邮件']);

$ upass = mysql_real_escape_string($ _ POST ['pass']);

$ res = mysql_query(“SELECT * FROM users WHERE email ='$ email'”);

$ row = mysql_fetch_array($ res);

如果($行[ '密码'] == MD5($ upass))

{

$_SESSION['user'] = $row['id']; 

header("Location: account.php"); 

}

其他

{

?>

<script>alert('You Entered Wrong Details');</script> 

    <?php 

}