2011-07-06 15 views
2

私は自分のウェブサイトでユーザーにログインするためにgigya認証プロパティーを使用しようとしています。彼らは私がこの資格情報を認証した後に呼び出さなければならない機能を持っています。illustrationPHP、どのようにJavaScript関数を呼び出すには?

私はフォームを持っています。私はフォームを送信するときにlogin.phpに送信します。私の質問はどうすればcall socialize.notifyLoginですか?

これはjavascriptのです:

<script type="text/javascript"> var conf = { APIKey:'2_9E9r_ojXEqzZJqKk7mRqvs81LtiSvUmBcm' }; </script> 
<script type="text/javascript"> 
var secret = 'eIqtclW2CxC6qvmT55MvOxZ5Rm7V5JhBV/gioJLKIxM='; 
var yourSiteUid= '<?php echo $talentnum;?>'; // siteUID should be retrieved from your user management system 

function your_b64_hmac_sha1(secret, datePlusSite) { 
var b64Sig = ''; // Place your implementation here ... 
return b64Sig; 
} 

function printResponse(response) { 
if (response.errorCode == 0) { 
    alert('After notifyLogin');  
} 
} 

var dateStr = getCurrentTime(); 
var datePlusSite = dateStr + "_" + yourSiteUid; 
var yourSig = your_b64_hmac_sha1(secret, datePlusSite); 

var params={ 
siteUID:yourSiteUid, 
timestamp:dateStr, 
signature:yourSig, 
callback:printResponse 
}; 

gigya.services.socialize.notifyLogin(conf,params); 
</script> 

は私が私のlogin.php内$talentnum;を設定し、より明確にします。だからthe form私はそれをthe login.phpredirect page ...それを送信するsocialize.notifyLoginへの呼び出しになるでしょうか?

おかげで、 任意のアイデアは、したがって、あなたがPHPからJavaScript関数を呼び出すことはできません、

答えて

2

次の2つのオプションがあります:あなたがHTMLフォームのターゲットとしてlogin.phpを呼び出した場合、あなたは成功したログイン時に新しいHTMLページにユーザーをリダイレクトする必要があり

を。この新しいHTMLページにはsocialize.notifyLoginコールが含まれている必要があります。

AJAXリクエストを使用してlogin.phpを呼び出す場合は、AJAXリクエストの「成功」コールバックでsocialize.notifyLoginを呼び出す必要があります。

ただし、PHPスクリプトからJavascript関数を直接実行することはできません。 PHPはサーバー上で実行される前にJavascriptがHTMLドキュメントの出力としてユーザーに送信されるため、Javascript関数を直接実行することはできません。

+0

最初のオプションでは、コードを 'window.onload = function(){}'の中か、ページのちょうどの中に置きます。 – Patrioticcow

+0

@Patrioticcow:それは呼び出しによって返されるものによって異なります。 'notifyLogin'呼び出しがあなたのページ上で何か変わるか、それとも外部サービスにpingするだけですか?最初のケースでは、ページがロードされたとき(onload)に実行したいと思うでしょう。第二に、それは重要ではない。 –

+0

実際に 'gigya.services.socialize.notifyLogin(conf、params);'はいくつかの値をgigyaサーバに送ります。私は応答関数が何かを言いたいのです: 'function printResponse(response){ if(response.errorCode == 0){ alert( 'After notifyLogin'); } } ' – Patrioticcow

0

PHPは、ページがロードされる前に実行されるのに役立ちます。

関連する問題