0

ユーザーがログインフォームにユーザー名とパスワードを入力すると、phpを使用して、SQLデータベースの「users」テーブルにあるデータと比較することにより、入力されたデータのサーバー側の検証を行います。パスワードが間違っている場合は、リダイレクトせずにユーザーに通知したいと思います。たとえば、JavaScriptダイアログを使用します。それは可能ですか?ユーザーに通知する唯一の方法は次のとおりです。

if ($password_given != $password_from_db) {
    echo "Wrong password."; // Dull non-html notification issued by the server
};

また

if ($password_given != $password_from_db) {
    header('Location: index.php?page=wrongpassword'); //Need redirection
};

とにかくこれに別の方法はありますか?

入力されたデータを取得してサーバーに送信して処理するJavaScriptはアイデアですが、JavaScriptで使用する結果を返すにはどうすればよいですか?

4

3 に答える 3

1

AJAXを使用して実行できます-

<form onsubmit="return ajaxsubmit();">
...
</form>

Javascript-

function ajaxsubmit() {
    param = 'email=' + document.forms.login.email + '&' + 'pass=' + document.forms.login.pass;
    xhr = new XMLHttpRequest();
    xhr.open('POST', 'process.php', true);
    xhr.onload = function() {
        if(xhr.responseText.indexOf("Wrong")>=0) {
            //wrong password, ask user to try again
        } else {
            //correct password, redirect or do stuff.
        }
    };
    xhr.setRequestHeader('Content-type: application/x-www-form-urlencoded'); 
    xhr.send(param);
    return false;
}

サーバー側の検証コードをprocess.phpに保持し、フォームがあるページで上記のコードを使用できます。完了です。

于 2013-03-16T05:53:11.157 に答える
1

JQuery

$.post("test.php", $("#testform").serialize())
.done(function(data) {
  if( data=='validated')
window.location.href = "successpage.php";
else
 alert ('password dont match!');

});

php

if ($password_given != $password_from_db) 
    echo "notvalidated."; 
else
   echo     echo "validated.";
于 2013-03-16T05:54:40.267 に答える
0

サーバーにAjax呼び出しを行い、サーバーから返された結果に基づいて、ユーザーがログインまたはエラーメッセージを表示できるようにすることができます。

于 2013-03-16T05:46:10.577 に答える