Votre question

petit souci pour redirection auto php

Tags :
  • http
  • Programmation
Dernière réponse : dans Programmation
9 Novembre 2006 19:50:33

Voila sur mon site lorsque les utilisateurs m'envoie un message ils passent pas envoi.php et je souhaite les rediriger automatiquement sur la page d'accueil.

J'ai trouvé qu'il fallait utilisé header :

  1. <?php
  2. $nom=$HTTP_POST_VARS['nom'];
  3. $mail=$HTTP_POST_VARS['mail'];
  4. $objet=$HTTP_POST_VARS['objet'];
  5. $message=$HTTP_POST_VARS['message'];
  6.  
  7. /////voici la version Mine
  8. $headers = "MIME-Version: 1.0\r\n";
  9.  
  10. //////ici on détermine le mail en format text
  11. $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
  12.  
  13. ////ici on détermine l'expediteur et l'adresse de réponse
  14. $headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP";
  15.  
  16. $subject="$objet";
  17. $destinataire="monmail";
  18. $body="$message";
  19. if (mail($destinataire,$subject,$body,$headers)) {
  20. echo "Votre mail a été envoyé";
  21. header("Location:<a href="http://monsite.free.fr" rel="nofollow" target="_blank">http://monsite.free.fr</a>");
  22. }
  23. else {
  24. echo "Une erreur s'est produite";
  25. }
  26. ?>


le message d'erreur est le suivant :

  1. Warning: Cannot modify header information - headers already sent by (output started at /mnt/136/sdb/0/1/monsite/envoi.php:20) in /mnt/136/sdb/0/1/monsite/envoi.php on line 21



Merci de me donner un petit coup de main

(j'ai bien sur remplacer monsite par la vrai url, mais ca marche pas qd mm). Est ce que la syntaxe est bonne ?

Autres pages sur : petit souci redirection auto php

a c 145 L Programmation
9 Novembre 2006 19:53:37

En fait, tu fais un echo avant de faire un header().
Ton echo ne sert à rien vu que tu fait une redirection immédiate.
Citation :
N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichges PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui génèreront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.
9 Novembre 2006 20:19:21

Merci crazycat de ta réponse

Mais je peux pas afficher le message : votre message a bien été envoyé

et ensuite faire la redirection, si la redirection se fait dessuite l'utilisateur aura l'impression que son message n'a pas été envoyé ?

En plus, j'ai pas tellement compris ton explication si ce n'est que header doit être seul dans le fichier php
Contenus similaires
a c 145 L Programmation
9 Novembre 2006 20:24:53

Non, le header ne doit pas être seul, mais il doit être le premier élément de la page à envoyer quelque chose au navigateur (donc, pas d'echo ni de print).
Et la redirection avec header("Location: ....") est immédiate.
Si tu veux afficher ton message puis faire une redirection après un certain temps, il faut utiliser:
die('<meta http-equiv="refresh" content="X; URL=http://tonsite.free.fr">');
X est le temps en secondes avant le redirect.
Seul soucis: il est possible que certaines personnes bloquent la redirection :) 
9 Novembre 2006 20:33:59

Super merci crazy ca marche mais comment certaines personnes peuvent bloquer la redirection ?
a c 145 L Programmation
9 Novembre 2006 21:15:48

tout simplement en refusant les refreshs automatiques de pages (certains anti-pubs le permette).
Il te faut donc penser, si tu utilise la méthode die(), à rajouter un message du type "vous allez être redirigé dans X secondes vers telle page. Si cela ne fonctionne pas, cliquez ici (lien vers ta page cible)"
9 Novembre 2006 21:39:59

tu peux aussi utiliser le javascript avec la methode setTimeout (fonction, interval); qui lancera par exemple le click sur le lien de redirection.
a c 145 L Programmation
9 Novembre 2006 21:43:22

heu coca... c'est possible, j'admet, mais encore plus risqué.
Si je vais voir son site avec lynx ou elinks, ou que comme certains je désactive le javascript, c'est perdu.

Et je peux t'assurer qu'il y a des utilisateurs qui désactivent le javascript.
9 Novembre 2006 21:49:55

je suis a 100% d'accord, mais tu conviendras avec moi que peu de personnes utilisent lynx ou elinks :)  et le javascript fait partie integrante des sites maintenant
ca donne un autre choix
9 Novembre 2006 22:34:39

crazycat ... t'est le seul a répondre sur ce forum ou quoi ???
et puis franchement ce pseudo ... ca fait nul le "cat" a la fin ..
tu voit moi ça finit par 'cat' et c'est mieux...

a part ça : le javascript n'est pas terrible ... pour faire chier 1 gars qu'avait mis un mot de pass en js (que je connait)je l'avait désactivé le javascipt et ..
et gros : bou le psg javascript vive l'om le php
a c 145 L Programmation
9 Novembre 2006 22:38:39

nan, chuis pas le seul, y'a toujours un mec avec un pseudo qui finit ridiculement par 'cat' qui vient rajouter son grain de sel :) 

Sinon, le javascript peut être intéressant pour certaines choses, comme par exemple bloquer l'accès aux vilains robots. Ou faire de l'AJAX :) 
10 Novembre 2006 16:39:27

Merci pour vos réponses et merci crazycat de tes solutions.

T'as tjs réponse à tout lol ^^
10 Novembre 2006 19:48:52

jpp13 a dit :
Merci pour vos réponses et merci crazycat de tes solutions.

T'as tjs réponse à tout lol ^^


Qu'est ce que l'univers ? :sarcastic: 
10 Novembre 2006 21:21:28

okinou a dit :
Qu'est ce que l'univers ? :sarcastic: 


c'est quoi le rapport avec le sujet ?
a c 145 L Programmation
10 Novembre 2006 21:47:32

Citation :
D'après une théorie, le jour où quelqu'un découvrira exactement à quoi sert l'Univers et pourquoi il est là, ledit Univers disparaîtra sur-le-champ pour se voir remplacé par quelque chose de considérablement plus inexplicable et bizarre.

Vous comprendrez que je ne puis donc pas répondre à la question posée :) 
10 Novembre 2006 22:11:34

okinou t'es un comique dis moi..
10 Novembre 2006 22:54:36

j'en ai marre que l'on me le répète :whistle: 
10 Novembre 2006 23:23:47

mais un bon comique :)  et sympathique.

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS