Javascript 通过AJAX重定向到PHP中的另一个页面

Javascript 通过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

我的页面正在从javascript收集信息并将其发送到PHP,然后再发送到MySQL,问题是我希望它根据我在DB中的数据重定向到不同的页面,我尝试使用header,但它只是在警报中显示另一个页面的整个HTML代码,我不希望这样。我希望它重定向到一个或另一个页面,取决于条件

HTML(Login.HTML)

PHP


使用正确的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="&#xf207;"></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="&#xf191;"></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="&#xf207;"></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="&#xf191;"></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”,但现在我做了,它什么也不做,甚至警报都没有。它什么也没做,它甚至没给我显示警报。它什么也没做,它甚至没给我显示警报