1

誰かが私を正しい方向に向けることができることを期待して、私ができる必要があることの基本的な例を挙げます。それを読んで。とにかく、ここに行きます。

サイト Y のページにフォームがあります (form.php と呼びましょう)。そのフォームは次のようになります (ユーザー名とパスワードのみを要求します)。

<form action="http://SiteX.com/validate.php" method="post">
Email Address: <input type="text" name="email">
Password: <input type="password" name="password">
<input type="submit">
</form>

ご覧のとおり、フォームはサイト Y でホストされており、サイト X のページに情報を送信しています。

サイト X の validate.php は、サイト Y から送信されたログインの詳細をチェックし、ログインの詳細が有効かどうかを次のように返します (明らかにこれよりも複雑なものです)。

$SubmittedEmail = $_POST['email'];
$SubmittedPassword = $_POST['password'];

$CrossReferenceEmail = 'someemail@dontcare.com';
$CrossReferencePassword = 'apassword';

if ( ($SubmittedEmail == $CrossReferenceEmail) && ($SubmittedPassword == $CrossReferencePassword) ) {
echo 'Valid';
} else {
echo 'Not Valid'; }

私がする必要があるのは、どうすればよいかわからないということですが、「form.php」に応答を待機させ(ログインの詳細が有効かどうかに関係なく)、その応答に基づいて何かを行うにはどうすればよいですか?

4

3 に答える 3

1
<form id="Form" action="http://SiteX.com/validate.php" method="post">
Email Address: <input type="text" name="email">
Password: <input type="password" name="password">
<input type="submit">
</form>


$("#Form").submit(function(event) {

  /* stop form from submitting normally */
  event.preventDefault();

  /* get some values from elements on the page: */
  var $form = $( this ),
      e = $form.find( 'input[name="email"]' ).val(),
      p = $form.find( 'input[name="password"]' ).val(),
      url = $form.attr( 'action' );

  /* Send the data using post */
  var posting = $.post( url, { email: e,password:p } );

  /* Put the results in a div */
  posting.done(function( data ) {
   if(data=='valid')
   alert('login successful');
   elseif(data=='Not Valid')
   alert('login not successful');
  });
});
于 2013-02-07T06:33:06.937 に答える
0

このように...フォームが送信されるとすぐにURLが「validate.php」に設定されるため、元のform.phpとそのコードは使用できなくなります。

あなたができることは、formtransmissionをajax-javascriptに変更することです。これは、form.phpを閉じずにvalidate.phpからの応答を待ちます...その後、必要なことは何でもできます。

(それはカールと何の関係がありますか?)

[編集]

この JavaScript を form.php html 出力に追加します。

function validate()
{
    var e = $('email').value;
    var p = $('password').value; //jQuery is easier to type
    // the same as
    // var p = document.getElementById('password').value;
    var req = new Request({
        url: '/validate.php?',
        method: 'post',
        data: {'email' : e, 'password' : p},
        onComplete: function(response)
        {
            if (response == "Valid" ) 
            {
                //do what you want on success
            }
            else
            {
                // do what you want on unsuccessful login
            }
        }
    }).send();
}

フォームを編集します(最初の行のみ)

<form onsubmit="validate();" method="post">

それはすべきです

于 2013-02-07T06:19:17.080 に答える