gpt4 book ai didi

php - ajax调用login.php,响应失败

转载 作者:行者123 更新时间:2023-11-29 14:30:33 25 4
gpt4 key购买 nike

我正在使用ajax调用进行login.php..下面是我的ajax位代码和login.php代码..同时还提供了有效的用户名和密码..我收到了无效的用户名或密码消息..完全是无法理解这些代码行

$is_ajax = $_REQUEST['is_ajax'];
if(isset($is_ajax) && $is_ajax) // in login.php, Many thanks

$("#login").click(function() {
var action = $("#form1").attr('action');
var form_data = {
username: $("#username").val(),
password: $("#password").val(),
is_ajax: 1
};

$.ajax({
type: "POST",
url: login.php,
data: form_data,
success: function(response)
{
if(response == 'success')
$("#form1").slideUp('slow', function() {
$("#message").html("<p class='success'>You have logged in successfully!</p>");
});
else
$("#message").html("<p class='error'>Invalid username and/or password.</p>");
}
});

return false;
});

这是login.php代码。

<?PHP
if(isset($_REQUEST['is_ajax']) && $_REQUEST['is_ajax']) {
$is_ajax = $_REQUEST['is_ajax'];

$uname = $_POST['username'];
$pword = $_POST['password'];
$uname = htmlspecialchars($uname);
$pword = htmlspecialchars($pword);

$user_name = "root";
$pass_word = "root";
$database = "test";
$server = "127.0.0.1";

$username = $_REQUEST['username'];
$password = $_REQUEST['password'];

$db_handle = mysql_connect($server, $user_name, $pass_word);
$db_found = mysql_select_db($database, $db_handle);
$uname = quote_smart($uname, $db_handle);
$pword = quote_smart($pword, $db_handle);
$SQL = "SELECT * FROM login WHERE L1 = $uname AND L2 = md5($pword)";
$result = mysql_query($SQL);
$num_rows = mysql_num_rows($result);
if ($num_rows > 0) {
echo "success";
}

mysql_close($db_handle);
}
?>

最佳答案

一些事情:

  1. 在查询中使用用户输入之前,您需要先对其进行清理。 htmlspecialchars 不这样做。使用mysql_real_escape_string(也许quote_smart可以做到这一点?)。
  2. 您的 URL 未加引号,因此它被解释为代码。将 login.php 放在引号中。
  3. 确保您了解 $_POST$_REQUEST 是什么。看起来您实际上并没有在任何地方使用 $username$password ,因此看起来这现在不会对您造成伤害,但您应该知道$_POST 数组的全部内容也可在 $_REQUEST 数组中找到(以及 $_GET$_COOKIE 数组) >).
  4. 为了进行调试,在 PHP 脚本中,您应该回显某种失败消息以查看脚本在哪里失败,而在 jQuery 脚本中,您应该将响应添加到失败消息中以查看实际响应是什么。<

试试这个:

$("#login").click(function() {    
var action = $("#form1").attr('action');
var form_data = {
username: $("#username").val(),
password: $("#password").val(),
is_ajax: 1
};

$.ajax({
type: "POST",
url: "login.php",
data: form_data,
success: function(response)
{
if(response == 'success')
$("#form1").slideUp('slow', function() {
$("#message").html("<p class='success'>You have logged in successfully!</p>");
});
else
$("#message").html("<p class='error'>Invalid username and/or password. (debugging, response = '". response ."'</p>");
}
});

return false;
});

登录.php:

if(isset($_POST['is_ajax']) && $_POST['is_ajax'])
{
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);

$dbUsername = "root";
$dbPassword = "root";
$database = "test";
$server = "127.0.0.1";

$db_handle = mysql_connect($server, $dbUsername, $dbPassword);
$db_found = mysql_select_db($database, $db_handle);
$result = mysql_query("SELECT * FROM login WHERE L1 = '{$username}' AND L2 = MD5('{$password}')");
$num_rows = mysql_num_rows($result);
if ($num_rows > 0)
echo "success";
else
echo "username '{$username}' and password '{$password}' not found";

mysql_close($db_handle);
}
else
echo "is_ajax = {$_POST["is_ajax"]}";

关于php - ajax调用login.php,响应失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10106441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com