-2

このログインフォームに問題があります。次のページにログインできません。電子メールとパスワードが一致するかどうかが表示されますが、ログインできません。見て、何が問題なのかを教えてください。または、うまくいくものを提案してください。ありがとうございました

HTMLコード

<div id="loginForm">
    <form id="formLogin" method="post" action="login.php"  >
    <input type="text" id="eMailTxt" placeholder="Email Address" />
    <input type="password" id="passWordTxt" placeholder="password" />
    <p></p>
    <input type="submit" value="Login" id="submitBtn" class="Btn" />
    </form>
</div>

jQuery AJAX コード

    $(document).ready(function(){

        $("#formLogin").submit(function(){
        $a = $("#eMailTxt").val();
        $b = $("#passWordTxt").val();


        $.post("loginCheck.php",{
            email: $a,
            pass: $b
            },function(data){
                if (data=="false")
                {
                    $(".loginForm p").html("Password does not match").css({'color':'red'});
                    return false;
                }
                else
                {
                    $(".loginForm p").html("Password match").css({'color':'green'});
                    $("#formLogin").submit(); //I've tried return true and this submit function but none worked.
                }
            });
            return false; 
//If I turn this true, it logs in everytime even if password doesn't match. And if it's false, it will return false everytime even if password is correct
        });
    });

PHP コード

<?php
    $q=$_POST["email"];
    $s=$_POST["pass"];
    $con=mysqli_connect("localhost","root","","SocialNetwork");
    $check="SELECT PassWord FROM people WHERE EMAIL = '".$q."'";
    $data=mysqli_query($con,$check);
    $result=mysqli_fetch_array($data);
    if ($s != $result[0])
    {
        echo "false";
    }
    else
    {
        echo "true";
    }
?>
4

1 に答える 1

0

この別の AJAX 構造を試してみてください - うまくいくかもしれません。

また、送信した内容をエコー バックするように PHP コードを変更しました (テストとして、PHP プロセッサ ファイルが期待どおりに受信されていることを確認するため)。

ここから、一度に 1 つずつ追加して、すべてを機能させることができるはずです。

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

        <script type="text/javascript">

            $(document).ready(function() {

                $("#formLogin").submit(function(){
                    $a = $("#eMailTxt").val();
                    $b = $("#passWordTxt").val();

                    //alert($a +' '+ $b);

                    $.ajax({
                        type:"POST",
                        url: "loginCheck.php",
                        data: 'email=' +$a+ '&pass=' +$b,
                        success: function(data) {
                            alert(data);
                        }
                    });
                    return false; //This line prevents form submit -- REMOVE when done testing
                });

            }); //END $(document).ready()

        </script>
    </head>
<body>

    <div id="loginForm">
        <form id="formLogin" method="post" action="login.php"  >
        <input type="text" id="eMailTxt" placeholder="Email Address" />
        <input type="password" id="passWordTxt" placeholder="password" />
        <p></p>
        <input type="submit" value="Login" id="submitBtn" class="Btn" />
        </form>
    </div>

</body>
</html>

PHP コード: loginCheck.php

<?php
$q=$_POST["email"];
$s=$_POST["pass"];

die('Received: ['.$q.'] and ['.$s.']'); //Remove this line when done first test

$con=mysqli_connect("localhost","root","","SocialNetwork");
$check="SELECT PassWord FROM people WHERE EMAIL = '".$q."'";
$data=mysqli_query($con,$check);
$result=mysqli_fetch_array($data);
if ($s != $result[0])
{
    echo "false";
}
else
{
    echo "true";
}
于 2013-07-08T17:33:32.067 に答える