Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2751 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  redirection php après verification code captcha

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

redirection php après verification code captcha

n°1845119
booat
Posté le 30-01-2009 à 11:12:38  profilanswer
 

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. ?>

mood
Publicité
Posté le 30-01-2009 à 11:12:38  profilanswer
 

n°1845123
FlorentG
Posté le 30-01-2009 à 11:20:40  profilanswer
 

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
n°1845140
booat
Posté le 30-01-2009 à 11:34:56  profilanswer
 

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
 
 

n°1845423
booat
Posté le 30-01-2009 à 23:50:51  profilanswer
 

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
n°1845429
FlorentG
Posté le 31-01-2009 à 00:59:44  profilanswer
 

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

n°1845584
booat
Posté le 31-01-2009 à 17:18:35  profilanswer
 

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 )

n°1845818
Profil sup​primé
Posté le 01-02-2009 à 15:29:57  answer
 

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
n°1845829
booat
Posté le 01-02-2009 à 16:36:39  profilanswer
 

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
n°1846184
Profil sup​primé
Posté le 02-02-2009 à 18:19:53  answer
 

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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  redirection php après verification code captcha

 

Sujets relatifs
Optimisation d'un code VBA pour excelCherche un code
securité sur code phpCode pour trier un tableau par insertions simples??
[PHP] code récalcitrantAidez-moi à décrypter ce bout de code
Codepress ou la coloration syntaxique d'un code sur une page webcode liste deroulante multicritere
Générateurs de code PHP ... vos avis ?verification de mon formulaire
Plus de sujets relatifs à : redirection php après verification code captcha


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR