我对php编程还比较陌生,我正在尝试测试json和mysql旁边的登录页面。我设法使它的大部分功能,但我似乎找不到一种方法,使我验证用户名和密码的工作查询。
请帮忙。
代码如下:
登录.js:
$(document).ready(function(){
$('#errorLogin').hide();
$('#formLogin').submit(function(e){
var username=$('#inputUser').val();
var password=$('#inputPassword').val();
$.ajax({
type:'get',
dataType: 'json',
url: 'dist/php/connection-login.php',
data: {
user: username,
pass: password
},
success: function(e){
console.log(e);
}
});
});
});
connection-login.php:
<?php
$con = new mysqli("localhost", "root", "root", "solucionar_manutencoes_db");
$lg_user=$_GET['user'];
$lg_password=$_GET['pass'];
if (mysqli_connect_errno()) trigger_error(mysqli_connect_error());
$qry = mysqli_query($con, "SELECT * FROM tb_login WHERE lg_user = '$lg_user' AND lg_password = '$lg_password';");
$result = mysqli_fetch_assoc($qry);
$row = mysqli_fetch_assoc($result);
if ($row != 0) {
$response["success"] = 1;
echo json_encode($response);
}
else {
$response["failed"] = 0;
echo json_encode($response);
}
?>
2条答案
按热度按时间toe950271#
您的php应该更像:
connect.php-确保这是一个单独的安全页面
我会将您的javascript ajax更改为post请求,除非您有理由这样做。
connection-login.php连接
现在,如果javascript ajax结果不包含
e.user
那么他们就不会登录。当然,您可能希望将原始密码存储为sha1或更高版本,并对个人信息使用aes\u或更好的加密,以及ssl。vhipe2zx2#
我看到你的代码中有几个错误。第一个是执行mysqli\u fetch\u assoc两次:一次是对结果执行,另一次是对返回的第一个调用的数组执行。其次是从未声明$response变量。下面是固定的php脚本:
在javascript中,确保在#formlogin的提交处理程序中使用e.preventdefault(),以防止在提交表单时重新加载页面。