Javascript 通过AJAX重定向到PHP中的另一个页面
我的页面正在从javascript收集信息并将其发送到PHP,然后再发送到MySQL,问题是我希望它根据我在DB中的数据重定向到不同的页面,我尝试使用header,但它只是在警报中显示另一个页面的整个HTML代码,我不希望这样。我希望它重定向到一个或另一个页面,取决于条件 HTML(Login.HTML) PHPJavascript 通过AJAX重定向到PHP中的另一个页面,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我的页面正在从javascript收集信息并将其发送到PHP,然后再发送到MySQL,问题是我希望它根据我在DB中的数据重定向到不同的页面,我尝试使用header,但它只是在警报中显示另一个页面的整个HTML代码,我不希望这样。我希望它重定向到一个或另一个页面,取决于条件 HTML(Login.HTML) PHP 使用正确的JSON格式来处理客户端的响应这里是修改后的代码 <?php $servername = "localhost"; $username = "root"; $passw
使用正确的JSON格式来处理客户端的响应这里是修改后的代码
<?php
$servername = "localhost";
$username = "root";
$password = "tbjdjkdl";
$dbname = "dbbbbbb";
$conn = new mysqli($servername, $username, $password, $dbname);
$user = $_POST['user'];
$pass = $_POST['password'];
$sql = "SELECT * FROM users WHERE email='$user' AND clave='$pass'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
$sql = "SELECT * FROM users WHERE email='$user' AND clave='$pass' AND permisos='Administrador'";
if (mysqli_num_rows($result) > 0) {
echo json_encode(['status' => 'success', 'url' => '../Main/index.html']);
exit;
} else {
echo json_encode(['status' => 'success', 'url' => '../Main/startemp.html']);
exit;
}
} else {
$msg = "username/password invalid";
echo json_encode(['status' => 'error', 'msg' => $msg]);
}
mysqli_close($conn);
?>
使用正确的JSON格式来处理客户端的响应这里是修改后的代码
<?php
$servername = "localhost";
$username = "root";
$password = "tbjdjkdl";
$dbname = "dbbbbbb";
$conn = new mysqli($servername, $username, $password, $dbname);
$user = $_POST['user'];
$pass = $_POST['password'];
$sql = "SELECT * FROM users WHERE email='$user' AND clave='$pass'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
$sql = "SELECT * FROM users WHERE email='$user' AND clave='$pass' AND permisos='Administrador'";
if (mysqli_num_rows($result) > 0) {
echo json_encode(['status' => 'success', 'url' => '../Main/index.html']);
exit;
} else {
echo json_encode(['status' => 'success', 'url' => '../Main/startemp.html']);
exit;
}
} else {
$msg = "username/password invalid";
echo json_encode(['status' => 'error', 'msg' => $msg]);
}
mysqli_close($conn);
?>
您可以对Ajax请求使用JSON类型的响应,以便Ajax回调将处理重定向
剧本
$('#logBtn').click(function(event){
user = document.getElementById("user").value;
password = document.getElementById("pass").value;
$.ajax({
type:"POST",
url:"login.php",
async: false,
data: {user:user,password:password},
success: function(data){
alert(data);
//window.location = '../Main/index.html';
}
});
});
$('#logBtn').click(function(event){
user = document.getElementById("user").value;
password = document.getElementById("pass").value;
$.ajax({
type:"POST",
url:"login.php",
dataType: "JSON",
async: false,
data: {
user:user,
password:password
},
success: function(data){
alert(data.message);
alert(data.redirect);
window.location.href = data.redirect;
}
});
});
PHP
您可以对Ajax请求使用JSON类型的响应,以便Ajax回调将处理重定向
剧本
$('#logBtn').click(function(event){
user = document.getElementById("user").value;
password = document.getElementById("pass").value;
$.ajax({
type:"POST",
url:"login.php",
async: false,
data: {user:user,password:password},
success: function(data){
alert(data);
//window.location = '../Main/index.html';
}
});
});
$('#logBtn').click(function(event){
user = document.getElementById("user").value;
password = document.getElementById("pass").value;
$.ajax({
type:"POST",
url:"login.php",
dataType: "JSON",
async: false,
data: {
user:user,
password:password
},
success: function(data){
alert(data.message);
alert(data.redirect);
window.location.href = data.redirect;
}
});
});
PHP
//请删除login.php上的行标题()
//请删除login.php上的行标题() 使用适当的AJAX格式在客户端处理响应这里是修改后的代码
<?php
$servername = "localhost";
$username = "root";
$password = "tbjdjkdl";
$dbname = "dbbbbbb";
$conn = new mysqli($servername, $username, $password, $dbname);
$user = $_POST['user'];
$pass = $_POST['password'];
$sql = "SELECT * FROM users WHERE email='$user' AND clave='$pass'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
$sql = "SELECT * FROM users WHERE email='$user' AND clave='$pass' AND permisos='Administrador'";
if (mysqli_num_rows($result) > 0) {
echo json_encode(['status' => 'success', 'url' => '../Main/index.html']);
exit;
} else {
echo json_encode(['status' => 'success', 'url' => '../Main/startemp.html']);
exit;
}
} else {
$msg = "username/password invalid";
echo json_encode(['status' => 'error', 'msg' => $msg]);
}
mysqli_close($conn);
?>
login.html
<div class="wrap-input100 validate-input" data-validate = "Enter username">
<input class="input100" type="text" id="user" name="username" placeholder="Email">
<span class="focus-input100" data-placeholder=""></span>
</div>
<div class="wrap-input100 validate-input" data-validate="Enter password">
<input class="input100" type="password" id="pass" name="pass" placeholder="Password">
<span class="focus-input100" data-placeholder=""></span>
</div>
<div class="container-login100-form-btn">
<a class="login100-form-btn" id = "logBtn">
Login
</a>
</div>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script>
$('#logBtn').click(function(event){
user = document.getElementById("user").value;
password = document.getElementById("pass").value;
$.ajax({
type:"POST",
url:"login.php",
async: false,
data: {user:user,password:password},
success: function(data){
alert(data);
if(data=="admin"){
window.location="https://..Main/index.html";
}
if(data=="user"){
window.location="https://....startemp.html";
}
}
});
});
</script>
登录
$('#logBtn')。单击(函数(事件){
user=document.getElementById(“用户”).value;
密码=document.getElementById(“pass”).value;
$.ajax({
类型:“POST”,
url:“login.php”,
async:false,
数据:{user:user,password:password},
成功:功能(数据){
警报(数据);
如果(数据=“管理”){
window.location=”https://..Main/index.html";
}
如果(数据==“用户”){
window.location=”https://....startemp.html";
}
}
});
});
login.php
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "test";
$conn = new mysqli($servername, $username, $password, $dbname);
$user = $_POST['user'];
$pass = $_POST['password'];
$sql = "SELECT * FROM users WHERE email='$user' AND clave='$pass'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
$sql_1 = "SELECT * FROM users WHERE email='$user' AND clave='$pass' AND permisos='Administrador'";
$result_1 = mysqli_query($conn, $sql_1);
if (mysqli_num_rows($result_1) > 0){
echo "admin";
exit(0);
}
else{
echo "user";
exit(0);
}
} else {
$msg = "username/password invalid";
echo $msg;
}
mysqli_close($conn);
?>
使用适当的AJAX格式在客户端处理响应这里是修改后的代码
<?php
$servername = "localhost";
$username = "root";
$password = "tbjdjkdl";
$dbname = "dbbbbbb";
$conn = new mysqli($servername, $username, $password, $dbname);
$user = $_POST['user'];
$pass = $_POST['password'];
$sql = "SELECT * FROM users WHERE email='$user' AND clave='$pass'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
$sql = "SELECT * FROM users WHERE email='$user' AND clave='$pass' AND permisos='Administrador'";
if (mysqli_num_rows($result) > 0) {
echo json_encode(['status' => 'success', 'url' => '../Main/index.html']);
exit;
} else {
echo json_encode(['status' => 'success', 'url' => '../Main/startemp.html']);
exit;
}
} else {
$msg = "username/password invalid";
echo json_encode(['status' => 'error', 'msg' => $msg]);
}
mysqli_close($conn);
?>
login.html
<div class="wrap-input100 validate-input" data-validate = "Enter username">
<input class="input100" type="text" id="user" name="username" placeholder="Email">
<span class="focus-input100" data-placeholder=""></span>
</div>
<div class="wrap-input100 validate-input" data-validate="Enter password">
<input class="input100" type="password" id="pass" name="pass" placeholder="Password">
<span class="focus-input100" data-placeholder=""></span>
</div>
<div class="container-login100-form-btn">
<a class="login100-form-btn" id = "logBtn">
Login
</a>
</div>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script>
$('#logBtn').click(function(event){
user = document.getElementById("user").value;
password = document.getElementById("pass").value;
$.ajax({
type:"POST",
url:"login.php",
async: false,
data: {user:user,password:password},
success: function(data){
alert(data);
if(data=="admin"){
window.location="https://..Main/index.html";
}
if(data=="user"){
window.location="https://....startemp.html";
}
}
});
});
</script>
登录
$('#logBtn')。单击(函数(事件){
user=document.getElementById(“用户”).value;
密码=document.getElementById(“pass”).value;
$.ajax({
类型:“POST”,
url:“login.php”,
async:false,
数据:{user:user,password:password},
成功:功能(数据){
警报(数据);
如果(数据=“管理”){
window.location=”https://..Main/index.html";
}
如果(数据==“用户”){
window.location=”https://....startemp.html";
}
}
});
});
login.php
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "test";
$conn = new mysqli($servername, $username, $password, $dbname);
$user = $_POST['user'];
$pass = $_POST['password'];
$sql = "SELECT * FROM users WHERE email='$user' AND clave='$pass'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
$sql_1 = "SELECT * FROM users WHERE email='$user' AND clave='$pass' AND permisos='Administrador'";
$result_1 = mysqli_query($conn, $sql_1);
if (mysqli_num_rows($result_1) > 0){
echo "admin";
exit(0);
}
else{
echo "user";
exit(0);
}
} else {
$msg = "username/password invalid";
echo $msg;
}
mysqli_close($conn);
?>
永远不要将$\u POST变量直接用于SQL查询!这使得SQL注入非常容易@PeterKraume我应该使用什么?永远不要相信输入数据!您需要验证和清理参数。请参阅作为起点。永远不要将$\u POST变量直接用于SQL查询!这使得SQL注入非常容易@PeterKraume我应该使用什么?永远不要相信输入数据!您需要验证和清理参数。作为一个起点,它在AJAX中总是进入失败状态,它永远不会成为“成功”,我尝试在AJAX中对data.status和它的始终未定义进行警报。在AJAX中总是进入失败状态,它永远不会成为“成功”,我试着在AJAX中对data.status做一个警报,但它总是未定义的。所有警报都是“未定义”编辑的:我忘了输入数据类型:“JSON”,但现在我做了,它什么也不做,甚至警报也不做。所有警报都是“未定义”编辑的:我忘了输入数据类型:“JSON”,但现在我做了,它什么也不做,甚至警报都没有。它什么也没做,它甚至没给我显示警报。它什么也没做,它甚至没给我显示警报