我正在努力学习使用AJAX,所以我搜索了一个关于使用ajax创建一个糟糕的登录系统并开始学习的事情,我对它做了一些小的修改,(例如PDO而不是my_sql)和没有工作,看到一遍又一遍,似乎并没有表明为什么没有工作。
发生什么事情不起作用?
好吧,它立即将我从index.php页面移动到admin.php页面,它不是那样的,如果我是正确的,它必须将数据带回index.php吗? / p>
如果AJAX不存在,它可以工作,而不是从admin.php带来数据,它会让我移动到那个页面,就好像它是纯PHP而脚本中没有AJAX一样。
PHP没有调用AJAX,只是使用header(location
这就是问题所在。
以下是所有文件的代码:
的index.php
<?php
session_start();
if($_POST){
include("3325d7a55a4550ee85156f5f9a6762bede9d3021.php");
$nombre = $_POST['login'];
$pw = $_POST['pwd'];
$stmt = $con->prepare("SELECT * FROM tuser WHERE USER = :USER");
$rslt = $stmt->execute(array(':USER' => $nombre));
$stmt->bindParam(':USER', $nombre, PDO::PARAM_STR);
$usuario = $stmt->fetch();
if ($usuario) {
$_SESSION['usuario_logeado'] = $usuario;
header('Location: admin.php');
} else {
$error = 'Usuario y/o password incorrecto.';
}
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Temporis</title>
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(function(){
$('#login-form').submit(function(e) {
e.preventDefault();
$.post('ajax.php', $(this).serialize(), function(resp) {
if(!resp.error) {
var html= '<h3>Hola, ' + resp.['NOMBR1'] + ' ' + resp.['NOMBR3'] + '!</h3>' + '<p>' +
'<a href="logout.php">Logout</a>' +
'</p>';
$('.sidebar').html(html);
} else {
var error = '<p class="error">' + 'Usuario y/o password incorrecto.' + '</p>';
$('#login-form .error').remove();
$('.actions').before(error);
};
}, 'json');
});
});
</script>
</head>
<body>
<h5>INDEX!!!</h5>
<center>
<?php if(!isset($_SESSION['usuario_logeado'])): ?>
<form id="login-form" action="" method="post" class="form-stacked">
<input type="text" name="login" id="login">
<input type="password" name="pwd" id="pwd">
<?php if(isset($error)): ?>
<p>
<?php echo $error ?>
</p>
<?php endif;?>
<input type="submit" value="Login" id="btn">
</form>
<?php else :?>
<h3>Hola, <?php echo $_SESSION['usuario_logeado']['NOMBR1'] .' '. $_SESSION['usuario_logeado']['NOMBR3'] ?></h3>
<a href="logout.php">Logout</a>
<?php endif;?>
<br />
<br />
<div class="sidebar"></div>
<br />
<br />
<div class="actions"></div>
<br />
<br />
<a href="admin.php">Admin</a>
<br />
<br />
<div id="RBUG"> Si tienes cualquier duda, problema tecnico o quieres dar una sugerencia usa el
<a href=RBuGFm.php>Reporte de Bugs</a> </div>
</center>
</body>
</html>
admin.php的
<?php
session_start();
if(!$_SESSION['usuario_logeado']){
header('Location: index.php');
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Temporis</title>
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="stylesheet" type="text/css" href="css/responsive.css">
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="js/menu.js"></script>
</head>
<body>
<center>
<h4>TROLOLOLOLO!</h4>
<h3>Hola, <?php echo $_SESSION['usuario_logeado']['NOMBR1'] .' '. $_SESSION['usuario_logeado']['NOMBR3'] ?></h3>
<a href="logout.php">Logout</a>
<div id="RBUG"> Si tienes cualquier duda, problema tecnico o quieres dar una sugerencia usa el
<a href=RBuGFm.php>Reporte de Bugs</a> </div>
</center>
</body>
</html>
ajax.php
<?php
session_start();
include("3325d7a55a4550ee85156f5f9a6762bede9d3021.php");
$nombre = $_POST['login'];
$pw = $_POST['pwd'];
$stmt = $con->prepare("SELECT * FROM tuser WHERE USER = :USER");
$rslt = $stmt->execute(array(':USER' => $nombre));
$stmt->bindParam(':USER', $nombre, PDO::PARAM_STR);
$usuario = $stmt->fetch();
if ($usuario) {
$_SESSION['usuario_logeado'] = $usuario;
echo json_encode($usuario);
} else {
echo json_encode(array('error' => true));
}
?>
3325d7a55a4550ee85156f5f9a6762bede9d3021.php(conection.php)
<?php
$host = "localhost";
$user = "root";
$pss = "password";
$db = "somedb_name";
$authz = "authc";
// Los comandos auxiliares estan comentados para que no funcionen a menos que sean necesarios
// var_dump($_POST);
try{
$con = new PDO('mysql:host='.$host.';dbname='.$db,$user,$pss);
$con->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
// $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// echo "Success ";
}catch(PDOException $e){
echo $e->getMessage;
}
?>
logout.php
<?php
session_start();
session_destroy();
header('Location: index.php');
?>
我不知道会出现什么问题,而且我的想法已经不多了,所以我相信你的眼睛和经验来解决我的问题并学习如何正确地做这些事情。
任何评论,建议,问题改进或有关它的问题需要澄清,请随时说出来,我尽快用答案编辑帖子。
提前致谢