par
fred99 » 08 nov. 2008, 06:15
Bonjour à tous, je viens à vous car j'ai un petit problème avec un script allopass .
En effet j'ai mon formulaire html allopass qui fonctionne très bien , quand je rentre mes codes tout se fait niquel ( en autre la redirection vers la page de retour ) et c'est sur cette page qu'est le problème .
En faite j'aimerais verifier que mes codes sont correct avec d'inscrire des données dans ma base .
Le hic c'est que lors de la verification cela fait comme si mes codes étaient toujours invalide .
Voici le code php fourni par allopass
<?php
$RECALL = $HTTP_GET_VARS["RECALL"];
if( trim($RECALL) == "" )
{
// La variable RECALL est vide, renvoi de l'internaute
// vers une page d'erreur
header( "Location: erreur.html" );
exit(1);
}
// $RECALL contient le code d'accès
$RECALL = urlencode( $RECALL );
// $AUTH doit contenir l'identifiant de VOTRE document
$AUTH = urlencode( "54/75/456" );
/**
* envoi de la requête vers le serveur AlloPAss
* dans la variable $r[0] on aura la réponse du serveur
* dans la variable $r[1] on aura le code du pays d'appel de l'internaute
* (FR,BE,UK,DE,CH,CA,LU,IT,ES,AT,...)
* Dans le cas du multicode, on aura également $r[2],$r[3] etc...
* contenant à chaque fois le résultat et le code pays.
*/
$r = @file( "http://payment.allopass.com/api/checkcode.apu?code=$RECALL&auth=$AUTH" );
// on teste la réponse du serveur
if( substr( $r[0],0,2 ) != "OK" )
{
// Le serveur a répondu ERR ou NOK : l'accès est donc refusé
header( "Location: erreur.html" );
exit(1);
}
/**
* Le code est valide !
* on place un cookie appelé CODE_OK et qui vaut la valeur 1
* Ce cookie est valide jusqu'à ce que l'internaute ferme son navigateur
* Dans les pages suivantes, il n'y aura plus qu'à tester l'existence du cookie
* S'il existe, c'est que l'internaute est autorisé,
* sinon on le renverra sur une page d'erreur
*/
setCookie( "CODE_OK", "1", 0, "/", ".mondomaine.com", false );
/**
* Remplacez dans la ligne ci-dessus ".mondomaine.com" par le nom de domaine
* de votre site!
* Par exemple, si votre site est accessible à l'adresse :
* http://perso.herbergeur.com/mapage
* alors il faudra que vous mettiez ".herbergeur.com"
* (n'oubliez pas le "." devant le nom de domaine !!)
*/
?>
Le problème dans l'histoire c'est que $r[0] ne retourne rien et donc ma condition
if( substr( $r[0],0,2 ) != "OK" )
{
// Le serveur a répondu ERR ou NOK : l'accès est donc refusé
header( "Location: erreur.html" );
exit(1);
}
est toujours valide .
Pour info
et dans mon cas on est sur du multicode vu que je souhaite avoir 2 codes
Merci d'avance de m'avoir lu et de prendre de la peine a répondre a ce message

Bonjour à tous, je viens à vous car j'ai un petit problème avec un script allopass .
En effet j'ai mon formulaire html allopass qui fonctionne très bien , quand je rentre mes codes tout se fait niquel ( en autre la redirection vers la page de retour ) et c'est sur cette page qu'est le problème .
En faite j'aimerais verifier que mes codes sont correct avec d'inscrire des données dans ma base .
Le hic c'est que lors de la verification cela fait comme si mes codes étaient toujours invalide .
Voici le code php fourni par allopass
[php]<?php
$RECALL = $HTTP_GET_VARS["RECALL"];
if( trim($RECALL) == "" )
{
// La variable RECALL est vide, renvoi de l'internaute
// vers une page d'erreur
header( "Location: erreur.html" );
exit(1);
}
// $RECALL contient le code d'accès
$RECALL = urlencode( $RECALL );
// $AUTH doit contenir l'identifiant de VOTRE document
$AUTH = urlencode( "54/75/456" );
/**
* envoi de la requête vers le serveur AlloPAss
* dans la variable $r[0] on aura la réponse du serveur
* dans la variable $r[1] on aura le code du pays d'appel de l'internaute
* (FR,BE,UK,DE,CH,CA,LU,IT,ES,AT,...)
* Dans le cas du multicode, on aura également $r[2],$r[3] etc...
* contenant à chaque fois le résultat et le code pays.
*/
$r = @file( "http://payment.allopass.com/api/checkcode.apu?code=$RECALL&auth=$AUTH" );
// on teste la réponse du serveur
if( substr( $r[0],0,2 ) != "OK" )
{
// Le serveur a répondu ERR ou NOK : l'accès est donc refusé
header( "Location: erreur.html" );
exit(1);
}
/**
* Le code est valide !
* on place un cookie appelé CODE_OK et qui vaut la valeur 1
* Ce cookie est valide jusqu'à ce que l'internaute ferme son navigateur
* Dans les pages suivantes, il n'y aura plus qu'à tester l'existence du cookie
* S'il existe, c'est que l'internaute est autorisé,
* sinon on le renverra sur une page d'erreur
*/
setCookie( "CODE_OK", "1", 0, "/", ".mondomaine.com", false );
/**
* Remplacez dans la ligne ci-dessus ".mondomaine.com" par le nom de domaine
* de votre site!
* Par exemple, si votre site est accessible à l'adresse :
* http://perso.herbergeur.com/mapage
* alors il faudra que vous mettiez ".herbergeur.com"
* (n'oubliez pas le "." devant le nom de domaine !!)
*/
?>
[/php]
Le problème dans l'histoire c'est que $r[0] ne retourne rien et donc ma condition
[php]if( substr( $r[0],0,2 ) != "OK" )
{
// Le serveur a répondu ERR ou NOK : l'accès est donc refusé
header( "Location: erreur.html" );
exit(1);
}
[/php]
est toujours valide .
Pour info
[quote]Ce champ caché, si présent dans le formulaire et de valeur "1", vous permettra de connaitre le code qu'a tapé l'internaute en cas de code valide. Un parametre appellé RECALL vous sera retourné dans l'URL de retour contenant le ou les codes saisis.
Par exemple : http://www.monsite.com/retour.php?RECALL=12345678
Dans le cas du MultiCode (exemple 3 codes) : http://www.monsite.com/retour.php?RECALL=12345678,78945612,45897845
[/quote]
et dans mon cas on est sur du multicode vu que je souhaite avoir 2 codes
Merci d'avance de m'avoir lu et de prendre de la peine a répondre a ce message ;)