petit souci pour redirection auto php
Dernière réponse : dans Programmation
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 :
le message d'erreur est le suivant :
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 ?
J'ai trouvé qu'il fallait utilisé header :
<?php
$nom=$HTTP_POST_VARS['nom'];
$mail=$HTTP_POST_VARS['mail'];
$objet=$HTTP_POST_VARS['objet'];
$message=$HTTP_POST_VARS['message'];
/////voici la version Mine
$headers = "MIME-Version: 1.0\r\n";
//////ici on détermine le mail en format text
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
////ici on détermine l'expediteur et l'adresse de réponse
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP";
$subject="$objet";
$destinataire="monmail";
$body="$message";
if (mail($destinataire,$subject,$body,$headers)) {
echo "Votre mail a été envoyé";
header("Location:<a href="http://monsite.free.fr" target="_blank">http://monsite.free.fr</a>");
}
else {
echo "Une erreur s'est produite";
}
?>
le message d'erreur est le suivant :
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
Lassé par la pub ? Créez un compte
En fait, tu fais un echo avant de faire un header().
Ton echo ne sert à rien vu que tu fait une redirection immédiate.
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.
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
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
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
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
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)"
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)"
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
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
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
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumRedirection php avec message
- ForumRedirection php
- ForumRedirection php ne fonctionne pas
- ForumAuto increment php my admin
- ForumAuthentification redirection php
- ForumRedirection php ne marche pas
- ForumPhp my admin auto increment
- ForumRedirection php sans header
- ForumExport csv petit à petit php
- ForumPetit programme php
- Voir plus