Probléme de script allopass

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probléme de script allopass

par fred99 » 08 nov. 2008, 17:30

Ca me met

Code : Tout sélectionner

Erreur d'encodage de contenu La page que vous essayez de voir ne peut être affichée car elle utilise un type de compression invalide ou non supporté. La page que vous essayez de voir ne peut être affichée car elle utilise un type de compression invalide ou non supporté. * Veuillez contacter le webmestre du site pour l'informer de ce problème.
Pourtant j'ai bien utiliser la fonction urlencode() donc je ne sais pas pourquoi ca me met cette erreur

Edit : je tiens a préciser que jai aussi utiliser file_get_contents() et la méme erreur

par Aureusms » 08 nov. 2008, 17:00

Je crois que le @ est là pour ne pas faire apparaître les erreurs PHP. Si en l'ôtant tu as une erreur qui apparait cela veut dire que tu as probablement un pb côté serveur. Qu'indique cette erreur ?

par fred99 » 08 nov. 2008, 14:19

Merci d'avoir pris le temps de répondre
Le probléme ne viens pas de la , je viens de test et quand j'echo $RECALL j'ai bien la bonne valeur .
J'aurais peut-etre penché sur la fonction @file car en enlevant le @ ca me met une erreur d'encodage sur firefox

par Aureusms » 08 nov. 2008, 14:13

Peut être cela veint-il de

Code : Tout sélectionner

$RECALL = $HTTP_GET_VARS["RECALL"];


qui est une vieille écriture. Si tu essayes avec

Code : Tout sélectionner

$RECALL = $_GET["RECALL"];

Probléme de script allopass

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
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?RECAL ... 2,45897845
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 ;)