redirection php après verification code captcha

redirection php après verification code captcha - PHP - Programmation

Marsh Posté le 30-01-2009 à 11:12:38    

Bonjour
j'ai un fichier php de verification qui redirige bien sous firefox mais Internet Explorer reste bloqué sur la page verification ?
 
Je precise que dans les deux cas les messages sont bien envoyés et les codes captcha bien controlés ...  
 
Merci de votre aide  
 
 

Code :
  1. <?php
  2. $cryptinstall="./cryptographp.fct.php";
  3. include $cryptinstall;
  4.   if (chk_crypt($_POST['code']))  {
  5. $TO = "contact@monsite.com";
  6. $subject = "Demande par le site Internet";
  7. $h = "From: " . $TO;
  8. $message = "";
  9. while (list($key, $val) = each($HTTP_POST_VARS))
  10. {$message .= "$key : $val\n";}
  11. mail($TO, $subject, $message, $h);
  12. function redirect($url) {
  13. die('<meta http-equiv="refresh" content="'.$tps.';URL='.$url.'">');
  14. };
  15. redirect("./result.html" );
  16.     }
  17.    
  18. else  echo "<a><font color='#FF0000'><center><h1>...: Désolé, le code est incorrect! :...</h1>Revenez sur la page précédente et reéssayez</center> </font></a>" ;
  19. ?>

Reply

Marsh Posté le 30-01-2009 à 11:12:38   

Reply

Marsh Posté le 30-01-2009 à 11:20:40    

Essaye d'être un peu plus constant dans ton truc :

  • Un coup $_POST, un coup $HTTP_POST_VAR. Faudrait savoir :)
  • Des trucs en majuscules, d'autres en minuscules ($TO, $subject)
  • Un redirection à base de meta refresh : complètement pas bon, les redirections ne se font pas avec une meta, mais avec des entêtes HTTP standards :) :
Code :
  1. header('Location: http://site.com/result.html', true, 303);


  • Utilise de l'HTML standard, et non pas de <font> qui date des années 1990
  • Sépare traitement PHP et affichage HTML. Là tout est mélangé dans un joyeux bordel organisé.


Message édité par FlorentG le 30-01-2009 à 11:21:04
Reply

Marsh Posté le 30-01-2009 à 11:34:56    

merci mais je suis vraiment un blaireau débutant qui apprend sur le tas ;)  
donc si je te comprends bien je remplace dans ma ligne
die :
  meta http-equiv="refresh" content="'.$tps.';URL='.$url.'"
par ton code  
 
encore merci
 
 

Reply

Marsh Posté le 30-01-2009 à 23:50:51    

Bonsoir  
bon je ne m'en sors pas  .. je suis vraiment largué   :pt1cable: ...  
 
a chaque fois que je touche a une ligne  j'ai des erreurs ...  :pfff:  
 
SVP quelqu'un pourrait m'aider sur ce truc ..  
merci


Message édité par booat le 30-01-2009 à 23:52:15
Reply

Marsh Posté le 31-01-2009 à 00:59:44    

Poste les erreurs que tu reçois. Vas-y étape par étape

Reply

Marsh Posté le 31-01-2009 à 17:18:35    

si je t'ecoute sur les minuscules  je remplace $TO par $to le fonctionnement general ne  change pas, mais les emails n'ont pas l'air d'être envoyé (en tout cas je ne reçois rien )

Reply

Marsh Posté le 01-02-2009 à 15:29:57    

Euh, autre chose :

Code :
  1. while (list($key, $val) = each($HTTP_POST_VARS))


Utilise directement foreach

Code :
  1. foreach($_POST as $key => $val) { }


Mais dans ton cas çà reste ridicule. A quoi cela sert-il ? Pourquoi ne pas récupérer manuellement les variables $_POST ? Surtout que là tu risques d'écraser des données de cette façon (tu simules le fonctionnement de extract() qui est très dangereux, voir la doc. à ce sujet).
 
Pour terminer : appelle la fonction exit() après header pour terminer l'exécution du script.

Code :
  1. header('location: http://...');
  2. exit();


Message édité par Profil supprimé le 01-02-2009 à 15:30:14
Reply

Marsh Posté le 01-02-2009 à 16:36:39    

Lucas merci!
 mais quand je dis que je suis un blaireau je suis vraiment un blaireau ! donc vraiment un débutant ... avec tout ce que ça demande comme explication a chaque mots  :heink:  
là vous m'indiquez des trucs mais que je ne sais pas ou mettre ! et oui vraiment le boulet !
 
header location va bien  a la place de la ligne 21 ?  
 
 
POur info ce fichier est la partie de verif du sympa Captcha.fr .. et au lieu d'afficher une page confirmant le bon code rentré je voudrais arriver sur ma page result.html...  
Ce que j'ai du mal a comprendre c'est que ça marche avec Fx et pas avec IE ... (je sais bien que c'est de la daube ce IE mais comme 80% de gens l'utilisent on est bien obligé de faire ... )


Message édité par booat le 01-02-2009 à 16:41:11
Reply

Marsh Posté le 02-02-2009 à 18:19:53    

Alors premièrement oui tu peux mettre header() à la ligne 21, mais attention, il faut le placer avant toute sortie de texte, c-à-d le moindre echo, code HTML, espace ou saut de ligne ;)
 
Ensuite, ton second problème (seulement si tu utilies meta refresh) :
dans ta fonction redirect, tu utilises la variables $url passée en paramètre mais aussi une variables $tps qui n'est définie nulle part. Donc, si tu appelles

Code :
  1. redirect('page.html');

, alors la sortie ressemblera à :

Code :
  1. <meta http-equiv="refresh" content="'';URL='page.html'">


Ce n'est pas cohérent, c'est probablement pour cela que le navigateur ne redirige pas.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed