用户名和密码值将传递到我的登录php文件并作为jsonResponse字符串返回。但是,正在返回的jsonResponse字符串是空的吗?
<?php
# this file will return true or false depending if passed in username and password matcha user on the system.
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
$dbhost = "localhost";
$dbname = "example";
$dbuser = "example";
$dbpass = "example";
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
$data = array( $_POST["username"],$_POST["password"] );
$stmt = $conn->prepare("Select * FROM example where username=?, password=?");
if(mysql_num_rows($stmt)>0)
{
$row = mysql_fetch_array($stmt);
if($_POST["password"] == $row["password"])
{
echo "loggedIn";
}
else
{
echo "passwordNotValid"; alert
}
}
else
{
echo "usernameNotValid";
}
if(!$stmt)
{
print_r($dbh->errorInfo());
}
}
?>
答案 0 :(得分:1)
你有很多问题......
从该行中删除alert
echo "passwordNotValid"; alert
关闭如图所示的引号
echo "usernameNotValid";
}
大括号.. 除了这些问题之外......(mysql_*
)扩展程序自PHP 5.5.0起已弃用,将来也会被删除。相反,应使用MySQLi
或PDO_MySQL
扩展名。切换到PreparedStatements
甚至可以更好地抵御SQL注入攻击!
答案 1 :(得分:1)
您正在将mysql_ *与PDO混合使用。这是PDO的完整示例。你应该像这样使用PDO。
$dbhost = "localhost";
$dbname = "example";
$dbuser = "example";
$dbpass = "example";
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("Select * FROM example where username=?, password=?");
在绑定参数中使用您的用户名和密码变量
$stmt ->bindParam(':username', $username, PDO::PARAM_STR);
$stmt ->bindParam(':password', $password, PDO::PARAM_STR);
$stmt ->execute();
$result = $stmt ->fetch(PDO::FETCH_ASSOC);
并在页面中使用$ result
答案 2 :(得分:0)
行中的语法错误
echo "usernameNotValid;
您的代码很可能永远不会执行。