1

ユーザーのログインの詳細を確認しながら、jQuery がどのように機能するかを理解しようとしています。これらのページを作成しました:

  1. db.php (DB接続)
  2. signin.html (ログインフォーム)
  3. check.php (ログインチェック - MySQL 選択)
  4. myscript.js (jQuery)

サインインフォーム:

<script src="js/jquery.min.js"></script>
<script src="js/myscript.js"></script>

<div id="loginForm">
 <label>Please Login</label><br/>
 <form id="myForm" action="check.php" method="post">
 <input name="emailid" id="email" type="text" placeholder="Enter your Email ID"/><br/>
 <input name="password" id="pass" type="password" placeholder="Enter your password"/><br/>
 <button id="submit"> Login</button>
 </form>
</div>
<div id="ack"></div>

myscript.js

 $(document).ready(function (){
   $("#submit").click(function (){
        alert("hi");
        if($("#email").val()==""||$("#pass").val()=="")
            $("div#ack").html("please enter email and pass");
        else
            $.post( $("#myForm").attr("action"), 
                    $("#myForm :input").serializeArray(),
                    function(data){
                        $("div#ack").html(data);
                    });
        $("#myForm").submit( function(){
            return false;
        });
     });
    });

check.php

$email = $_POST['emailid'];
$pass = $_POST['password'];
include "db.php";
$sql = "select count(*)from students where email = '$email' and password = '$pass';";
$result = mysqli_query($con,$sql);
$row=mysqli_fetch_array($result);
if($row[0]>0)
    echo "found result";
else
    echo "no result";

すべてが正常に機能しています。唯一の問題は、データが投稿されていないことです。値を入力しているにもかかわらず、$_POST[] が null 値を受け取っています。

助けてください。

4

4 に答える 4

0

フォーム アクションの変更

<form id="myForm" action="login.php" method="post">

<form id="myForm" action="check.php" method="post">
于 2013-09-24T12:00:50.443 に答える
0

これらの入力をエスケープする必要があります。ユーザー入力を信頼することはできません。

<?php
$name = mysqli_real_escape_string($_POST['emailid']);
$password = mysqli_real_escape_string($_POST['password']);
?>

ほとんどの場合、アクティブなデータベース接続を含める必要があることに注意してください。

正しいファイルに投稿する必要があります。フォームでアクションをlogin.phpからcheck.phpに変更する必要があります。

于 2013-09-24T12:10:32.033 に答える
0

action="javascript:void(0)" をフォームタグに入れると、すべてがうまく機能します

于 2014-01-28T15:20:49.200 に答える