donglian7879 2015-10-21 17:49
浏览 12
已采纳

用ajax问题登录

I am trying to create on-page login.

without ajax it works very well. Here is my login.php;

if($_POST)
{
    $username =$_POST["username"];
    $password =$_POST["password"];
    $query  = $handler->query("SELECT * FROM members WHERE username='$username' && password='$password'",PDO::FETCH_ASSOC);
    if ( $say = $query -> rowCount() ){
        if( $say > 0 ){
            session_start();
            $_SESSION['session']=true;
            $_SESSION['username']=$username;
            $_SESSION['password']=$password;

            echo "ok";

        }else{
            echo "Couldn't login.";
        }
    }else{
        echo "Wrong username or password.";
    }
}

Anyway, here is my java script code;

            $(function(){
             $("#loginbutton").click(function(){
                var username = $("#username").val();
                var password = $("#password").val();
                if(username != "" && password != ""){
                    $.ajax("login.php",{
                        type : "POST",
                        data : "username="+username+"&password="+password,
                        success : function(data){
                            if(data == "ok"){
                                                    $("#message").html(data);
                            }else{
                                $("#fail").fadeIn();
                            }
                        }
                    });
                }
             });
            });

Even though I put correct login information (when I get "ok" response from login.php, it always outputs $("#fail").fadeIn(); . instead of $("#message").html(data); I couldn't figure out where I am mistaken.

and here is login form:

    <div id="login">    

       <form action="" onsubmit="return false;" method="post">

            <input type="text" class="form-control" id="username" name="username" placeholder="Username" autocomplete="off"><br>

            <input type="password" class="form-control" id="password" name="password" placeholder="Password" autocomplete="off"><br> 

            <input class="btn btn-success" type="submit" id="loginbutton" value="Login">

       </form>

            <div id="message">  </div>
            <div id="fail" style="display: none;">failed.</div> 

    </div>
  • 写回答

3条回答 默认 最新

  • dqspy04266 2015-10-21 17:52
    关注

    You are using type as post, but sending parameters as get.Change your ajax like this,

    $.ajax("login.php",{
        type : "POST",
        data : {username:username,password:password},// only this line is changed.
        success : function(data){
            if(data == "ok"){
                $("#message").html(data);
           }else{
               $("#fail").fadeIn();
        }
    }
    });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器