gpt4 book ai didi

php - 数据的返回值使用ajax、jquery、json

转载 作者:行者123 更新时间:2023-11-29 06:59:02 25 4
gpt4 key购买 nike

请问,你能帮我解决这个问题吗?我是编程初学者,所以如果这是一个愚蠢的问题,请耐心等待。谢谢。

我有带有登录表单(用户名、密码)的 index.php 页面和带有这部分代码的 login.php:

<? if(!$_POST['username'] || !$_POST['password']){
$data['msg'] = 'All fields have to be filled!';
$data['success'] = false;}else{


mysql_query(" INSERT INTO log_access(user,ip,datetime)
VALUES(
'".$_POST['username']."',
'".$_SERVER['REMOTE_ADDR']."',
NOW()
)");

$row = mysql_fetch_assoc(mysql_query("SELECT id,login FROM users WHERE login='".$username."' AND pwd='".md5($password)."'"));

if($row['login'])
{
$_SESSION['login'] = $row['login'];
$_SESSION['id'] = $row['id'];

$data['success'] = true;
$data['redirect'] = "index.php";
}
else
{
$data['success'] = false;
$data['msg']='Wrong username or password!';
}}echo json_encode($data);?>

如果我在用户名或/和密码中发送空字段,login.php 返回 $data。但是,如果我发送填充字段,则没有数据返回到 index.php。我在 index.php 中有以下内容:

<script> 
$(document).ready(function()
{
$('#frmLogin').submit(function()
{
$.post('/scripts/login.php',{username: $('[name=username]').val(), password: $('[name=password]').val()}, function(data)
{
if(data.success)
{
$('#login-msg').html("Logged");
}
else
{
$('#login-msg').html(data.msg);
}
}
,'json');
return false;
});
});
</script>

如果我将任何东西放在第一个条件或之前(在 login.php 中),我也会遇到同样的问题。我不知道,我做错了什么:(

感谢您的帮助!瓦沙

编辑解决了!我从登录脚本到数据库的连接有问题。初学者错误。感谢所有回复。

最佳答案

您能否检查 Firebug 的控制台并查看 POST 是否正在发生以及响应代码是否为 200?您还可以检查正在检索的响应。

尝试使用以下内容调用 test.php:

<?
if(!$_POST['username'] || !$_POST['password']){
$data['msg'] = 'All fields have to be filled!';
$data['success'] = false;
}else{
$data['success'] = true;
$data['redirect'] = "index.php";
echo json_encode($_POST);
}
?>

同时检查用户名和密码是否正确传递

alert( $('[name=username]').val() + | + $('[name=password]).val()); 

就在 $.post 上面。

我通过硬编码用户名和密码检查了您的 js,它们工作正常。分而治之通常是个好主意。硬编码您的 login.php 页面的输入,并首先运行它,在它工作之后,然后将您的 $_POST 参数作为输入。这样你就可以避免很多问题。

 ****Important Please ESCAPE ALL POST OR GET VARIABLES FOR MYSQL INSERT.
Otherwise your scripts are vulnerable to SQL injections.
ex: mysql_real_escape_string($_POST['username']);
mysql_real_escape_string($_POST['password']);
Please ignore if you are already doing this!

关于php - 数据的返回值使用ajax、jquery、json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11147724/

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