PHP没有响应机构

时间:2014-02-23 10:22:33

标签: php sql

用户名和密码值将传递到我的登录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());
    }

}

?>

3 个答案:

答案 0 :(得分:1)

你有很多问题......

  1. 从该行中删除alert

    echo "passwordNotValid"; alert

  2. 关闭如图所示的引号

    echo "usernameNotValid";

  3. 从最后一行移除}大括号..
  4. 除了这些问题之外......(mysql_*)扩展程序自PHP 5.5.0起已弃用,将来也会被删除。相反,应使用MySQLiPDO_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; 

您的代码很可能永远不会执行。