2016-04-14 133 views
2

我试过这段代码,它似乎没有工作,所以我会很感激,如果有人可以帮我解决任何错误。用户名和密码验证PHP MySql

简要概述,我的数据库根目录是'localhost',数据库名'ee2800'密码'secret',我需要它来验证用户名和密码。

以下是我似乎没有工作。

<?php 
 
    $conn = new mysqli("localhost", "ee2800", "secret", "ee2800"); 
 

 
    if (mysqli_connect_errno()) { 
 
     echo "Connection Failed. Try again." . mysqli_connect_error(); 
 
     exit(); 
 
    } /* else { 
 
     echo "Connection Successful <br/> "; 
 
     } */ 
 

 
    // Connect to database server 
 
    mysql_connect("localhost", "ee2800", "secret") or die(mysql_error()); 
 

 
    $UserName = mysql_real_escape_string($_POST['UserName']); 
 
    $Password = mysql_real_escape_string($_POST['Password']); 
 

 
    $sql = "SELECT * FROM users WHERE UserName = '$UserName' AND Password = '$Password' "; 
 
    $result = mysql_query($sql) or die(mysql_error()); 
 
    $numrows = mysql_num_rows($result); 
 
    if ($numrows > 1) { 
 
    else if ($numrows = 0) { 
 
     echo "wrong username or password" 
 
    } else { 
 
     echo "welcome" 
 
    } 
 

 
    // Close the database connection 
 
    mysql_close(); 
 
    ?>

谢谢

+2

**注:**你混合'mysqli_ *'和'mysql_ *'功能。 –

+0

也许你在'if($ numrows> 1)'块中忘记了分号? –

+0

顺便说一下,'$ conn = new mysqli(“localhost”,“ee2800”,“secret”,“ee2800”); .... echo“Connection Successful
”; } * /'在这段代码中完全没用。 –

回答

1

出于安全的爱,请不要在密码纯文本格式存储。对用户输入和最初存储的值使用相同的加密方法,以进一步防止用户密码泄漏。这个代码应该对你有所帮助。

<?php 

$dbLink = mysqli_connect("localhost", "ee2800", "secret", "ee2800"); 
if (!$dbLink) { 
    echo "Connection Failed. Try again." . mysqli_connect_error(); 
    exit(); 
} else { 
    echo "Connection Successful <br />"; 
} 

$UserName = mysqli_real_escape_string($_POST['UserName']); 
$Password = mysqli_real_escape_string($_POST['Password']); //NOTE FOR THE FUTURE - PLEASE ADD ENCRYPTION TO THIS 

$sql = "SELECT * FROM users WHERE UserName = '$UserName' AND Password = '$Password' "; 
$result = mysqli_query($dbLink, $sql) or die(mysqli_error()); 
$numrows = mysqli_num_rows($result, MYSQLI_ASSOC); 

if ($numrows == 0) { 
    echo "wrong username or password"; 
} else { 
    echo "welcome"; 
} 

// Close the database connection 
mysqli_close(); 

>

+0

嗨,非常感谢您的回复......出于某种原因,它仍然无法正常工作,有什么方法可以通过电子邮件发送给我的项目来看看吗?我真的很感激它,我真的不知道为什么它不起作用 – NTal

+0

我还必须包括一个JSON登录失败在回应中回显和一个JSON登录成功必须回应.. – NTal

+0

对不起,我真的不能通过整个其他人的项目。您可能想尝试通过向顶部添加以下行来启用详细调试: ini_set(“display_errors”,1); error_reporting(E_ALL); – RefreshCarts