如何:Ajax检查php/数据库中的值


How to: Ajax check values in php/database

如何从提交和检查它们是否存在于mysql中POST值?我需要在。php文件中输入什么呢?

document.addEventListener("deviceready", onDeviceReady, false);  
function onDeviceReady() {
    $('#login').submit(function(){
        var username = document.getElementById("username").value;
        var password = document.getElementById("password").value;
    });
}
function getData(sendData) {
    $.ajax({ 
        type: 'POST', 
        url: 'http://www.url.php', 
        data: { 'username': username, 'password': password }, 
        success: afhandeling,
    });
}

这样调用ajax:

jQuery.ajax({
    type: "POST",
    url: "http://www.url.php",
    data: { username:username,password:password },
    success: function( data )
    {
    }
});

在ajax文件中:

if (isset($_POST['username']) && isset($_Post['password']))
{
    $query = "SELECT * FROM users WHERE username='".$_POST['username']."' AND password=".$_POST['password'];
    $result = mysql_query($query);
    $row = mysql_fetch_assoc($result);
    if($row)
    {
        echo 'login';
    }
    else
    {
        echo "error";
    }
}

我认为URL必须是本地的,即。"/项目/blindchat/login"。

在那一页你可以这样写:

if (isset($_POST['username']) && isset($_POST['password'])) {
   // MYSQL query:
   SELECT 1 FROM users WHERE username = ?  AND password = ?
}

请记住,您必须首先转义变量以防止SQL注入。

在login.php页面中,您需要这样做:

if(isset($_POST['username']) && isset($_Post['password'])) {
    $q = "SELECT * FROM users WHERE username=$_POST['username'] AND password=$_POST['password']"
$r = mysql_query($q);
if(mysql_num_rows($r)==1) //Do Login
else echo "ERROR";

}

提交表单,该表单启动ajax脚本,该脚本将数据发送到PHP文件,PHP文件处理输入并给出答案。

使用PDO或MySqLi。Mysql已被弃用,不再受支持。下面的例子使用了PDO方法。

你的PHP应该看起来像这样(这是未经测试的代码,所以可能有拼写错误):

<?php
$username = $_POST['username'];
$password = $_POST['password'];
if (!empty($username) && !empty($password)) {
  // We create a PDO connection to our database
  $con = new PDO("mysql:host=yourhost;dbname=yourdatabase", "username", "password");
  // We prepare our query, this effectively prevents sql injection
  $query = $con->prepare("SELECT * FROM table WHERE username=:username AND password=:password LIMIT 1");
  // We bind our $_POST values to the placeholders in our query
  $query->bindValue(":username", $username, PDO::PARAM_STR);
  $query->bindValue(":password", $password, PDO::PARAM_STR);
  // We execute our query
  $query->execute();
  $result = $query->fetch();  // Grab the matches our query produced
  // Here we check if we found a match in our DB
  if (!empty($result)) {
    echo "Matches were found";
  } else {
    echo "No matches found";
  }
} else {
  echo "Please fill out all fields";
}
?>

至于从AJAX脚本获得回复,您可以简单地提醒响应或根据您的需要显示它。

success: function(data) {
  alert(data);
}