Tom's Guide > Forum > Programmation > petit souci pour redirection auto php

petit souci pour redirection auto php

Forum Programmation : petit souci pour redirection auto php

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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 :

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



le message d'erreur est le suivant :

Code :
  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 ?

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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.

------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

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

Répondre à jpp13

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 :)

------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

Super merci crazy ca marche mais comment certaines personnes peuvent bloquer la redirection ?

Répondre à jpp13

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)"

------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

tu peux aussi utiliser le javascript avec la methode setTimeout (fonction, interval); qui lancera par exemple le click sur le lien de redirection.

Répondre à coca25

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.

------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

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

Répondre à coca25

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


Message édité par dedemycat le 09-11-2006 à 22:35:35
------------------------------ J'ai une question ...
PHP est ce que c'est aussi php, Php, PHp,pHp, pHP et phP ???
Répondre à dedemycat

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 :)

------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

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

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

Message cité 1 fois
Message édité par jpp13 le 10-11-2006 à 16:40:17
Répondre à jpp13

jpp13 a écrit :

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:

Répondre à okinou

okinou a écrit :

Qu'est ce que l'univers ? :sarcastic:



c'est quoi le rapport avec le sujet ?

Répondre à jpp13

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 :)

------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

okinou t'es un comique dis moi..

Répondre à jpp13

j'en ai marre que l'on me le répète :whistle:


Message édité par okinou le 10-11-2006 à 22:54:50
Répondre à okinou

mais un bon comique :) et sympathique.

Répondre à jpp13
Tom's Guide > Forum > Programmation > petit souci pour redirection auto php
Aller à :

Il y a 2082 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens