为了账号安全,请及时绑定邮箱和手机立即绑定

重定向不适用于登录表单中的 ajax 和 PHP。它保留在索引页中

重定向不适用于登录表单中的 ajax 和 PHP。它保留在索引页中

PHP
Smart猫小萌 2023-08-19 14:11:21
当用户使用电子邮件和密码填写两个表单字段并点击登录按钮时,我的脚本工作正常,但单击登录按钮后,我想将用户重定向到主页,但用户仍保留在索引页面中,当我输入浏览器网址时像 localhost/my_site-name/home.php 这样的栏,系统带我进去,我看到我在该页面中回显的所有会话变量以进行检查,所以我希望当用户单击登录按钮时,用户自动重定向到主页,这里是我的代码 <form class="form-inline" method="post" action="" id="loginForm">    <ul class="navbar-nav mr-5">        <li class="nav-item">           <input class="form-control mr-sm-2 input-signUp-form js-signInEmail" type="email" name="signInEmail" placeholder="Email"/>            <input class="form-control mr-sm-2 input-signUp-form js-signInPassword" type="password" name="signInPassword" placeholder="password"/>           <button  class="btn btn-danger my-2 my-sm-0 js-signInButton" type="submit" name="signInButton">Sign In <i class="fas fa-heart"></i></button>        </li>        <p class="ml-2">            <input type="checkbox" class="form-check-input" id="exampleCheck1"> Remember Me!            <span><a href="#" class="ml-4 mt-2">Forget Password</a></span>        </p>    </ul></form>这是我的脚本代码,我在 jquery 链接 addd 之后将其包含在页面底部$(document).ready(function(){    $(".js-signInButton").click(function(){       var signInemail = $(".js-signInEmail").val();       var signInPassword = $(".js-signInPassword").val();       $.ajax({           url:"signIn.php",           type:"POST",           data:{             "signInEmail":signInemail,             "signInPassword":signInPassword           },           success: function (html) {               if(html == 'true'){                    // alert("Successfull Login");                   window.location.href = "home.php";               }               else {                   alert("Error Login");               }           }       });    });});
查看完整描述

4 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

尝试三重等于,因为您得到的响应是字符串而不是布尔值。


 success: function (html) {

                   if(html === 'true'){

                        // alert("Successfull Login");

                       window.location.href = "home.php";

                   }

                   else {

                       alert("Error Login");

                   }

           }


查看完整回答
反对 回复 2023-08-19
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

在脚本中使用 e.preventDefault() 。此行不会通过 php 提交您的表单,并且您的脚本将正常运行。尝试这个!


$(document).ready(function(){

    $(".js-signInButton").click(function(e){

       e.preventDefault();

       var signInemail = $(".js-signInEmail").val();

       var signInPassword = $(".js-signInPassword").val();

       $.ajax({

           url:"signIn.php",

           type:"POST",

           data:{

             "signInEmail":signInemail,

             "signInPassword":signInPassword

           },

           success: function (html) {

               if(html == 'true'){

                    // alert("Successfull Login");

                   window.location.href = "home.php";

               }

               else {

                   alert("Error Login");

               }

           }

       });

    });

});


查看完整回答
反对 回复 2023-08-19
?
HUH函数

TA贡献1836条经验 获得超4个赞

在 Ajax 的成功脚本中,尝试这样,看看会发生什么。

success: function (html) {
   window.location.href = "home.php";
}

如果这是重定向到主页,则该语句肯定 if(html == 'true'){返回 false。如果它没有重定向到主页,请检查您是否给出了正确的路径。


查看完整回答
反对 回复 2023-08-19
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

尝试使用 echo exit;


if ($userSignInRows > 0) {


   // in here i update the user online status form 0 to 1

   $sqlUpdate = "UPDATE users SET user_online_status = '1' WHERE user_email='$signInEmail'";

   $updateResult = mysqli_query($conn, $sqlUpdate);


   // in here i perform this query to select user online status after updating it

   $select = "SELECT * FROM users WHERE user_email ='$signInEmail'";

   $selectResult = mysqli_query($conn, $select);

   $updateArray = mysqli_fetch_array($selectResult);


   $_SESSION['onlineStatus'] = $updateArray['user_online_status'];


   $_SESSION['signInId'] = $userSignInArray['user_id'];

   $_SESSION['signInEmail'] = $userSignInArray['user_email'];

   $_SESSION['signInName'] = $userSignInArray['user_full_name'];


   echo "true";

   echo exit;

}


或者你可以回显1;回显退出;


在脚本中只需检查


if(html){

                  

  window.location.href = "home.php";



  }


查看完整回答
反对 回复 2023-08-19
  • 4 回答
  • 0 关注
  • 118 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信