0

セッションベースのログイン (PHP、HTML、および CSS で実装) に問題があります。ここまでは順調ですね。ここで、間違った入力をしたときに警告が表示されるようにしたいと考えています。最初に、追加の警告を含む 2 番目のページを作成しました。ただし、これを AJAX (おそらく jQuery を使用) で実装する方がよいでしょう。しかし今、私には問題があります。AJAX 部分を実装したので、ログインできません。警告が表示されるたびに。AJAX リクエストを削除すると、すべてが機能します。PHPの検証部分が呼び出されなくなったようです。しかし、理由はわかりません。コードは次のとおりです。

これは検証の一部です (loginscript.php)。ログイン フォームの名前は loginform で、submit.button の名前は login です。

else if (isset( $_POST['login'] )) 
{
    $username = $_POST['username'];
    $password = $_POST['password'];

    $clean_username = strip_tags(stripslashes(mysql_real_escape_string($username)));

    $clean_password = (strip_tags(stripslashes(mysql_real_escape_string($password))));

    $hash_password = saltedHash($clean_password, $clean_username);

    $sql = mysql_query("SELECT * FROM $loginTable WHERE $attUsername = '$clean_username' AND $attPassword = '$hash_password'");

    if (mysql_num_rows($sql) == 1) 
    {
        $_SESSION['logged'] = true;
        echo 'correct';
        header('refresh:2;url=ajax/cmapp.php');
        exit;
    }
}

私はそれを使用しているので、示されている部分は機能しません:

$(document).ready(function()
{
$("#tr1").hide();
/* sendung formular abfangen */
$("#loginform").submit(function() {
                                /* ajax objekt zum aufruf & versand an das skript
    'name' und 'email' sind in der data-zeile die variablen für das php-skript */
    $.ajax({
        type: "POST",
        url: "loginscript.php",
        data: "username=" + $("#username").val() + "&password=" + $("#password").val(),
        success: function(msg)
        {
            if (msg == 'correct')
                {
                    alert("hjlkjl")
                    window.location='ajax/cmapp.php';
                }
            else
                {
                    $("#tr1").hide().load("message.html").fadeIn(0);
                }

else 部分が実行されるたびに。

4

1 に答える 1

1

data値には変数を含める必要がありますlogin。そうしないと、PHP スクリプトは条件を入力しません。POST を使用するため、オブジェクトをdata値として使用できます。

data : {
  username : $("#username").val(),
  password : $("#password").val(),
  login : true,
}
于 2013-03-10T14:07:31.067 に答える