Search code examples
phpjavascriptgigya

php, how to call a javascript function?


i am trying to use gigya auth properties to login users on my website. They have a function that needs to be called after i authenticate the credentials as seen in this illustration

I have a form and when i submit the form i send it to login.php where i authenticate my users. My question is how do i call socialize.notifyLogin?.

this is the 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> 

to be more clear i set the $talentnum; inside my login.php. so i have the form i send it ti the login.php and a redirect page... Where the call to socialize.notifyLogin will be?

thanks, any idea helps


Solution

  • You have two options:

    If you call login.php as the target of an HTML form, you should redirect the user to a new HTML page upon successful login. This new HTML page should contain the socialize.notifyLogin call.

    If you call login.php via an AJAX request, you should call socialize.notifyLogin in the "success" callback of the AJAX request.

    In no case, however, will you be able to execute the Javascript function directly from your PHP script. PHP executes on the server before the Javascript is sent to the user as output with your HTML document, and therefore cannot execute Javascript functions directly.