Bonjour à tous...J'ai un formulaire en php qui à la fin retourne un
message.
J'aimerais qu'à la place de retourner un message, il retourne sur une
page de remerciement en php.
Est-ce possible ?
Voilà le bout de code que j'aimerais changer:
if (mail($destinataire,$subject,$codehtml,$headers)) {
echo "Votre mail a bien été envoyé, nous allons vous répondre des que
possible. Merci.";
} else {
echo "Désolé... Le serveur n'a pas pu lire votre message...";
}
?>
Comment faire pour envoyer autre chose que la phrase "Votre mail a
bien..."
Je ne suis qu'un débutant de 67 ans... Essayez donc d'être le plus
explicite possible.
D'avance, merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
Bonjour,
Le 14/09/2010 12:14, GanaWeb a écrit :
Bonjour à tous...J'ai un formulaire en php qui à la fin retourne un message. J'aimerais qu'à la place de retourner un message, il retourne sur une page de remerciement en php. Est-ce possible ?
Oui, de plusieurs façons possibles, à condition que tu n'aies pas commencé à renvoyer de code HTML.
L'une des façons est tout simplement : include("autrepage.php"); exit();
Voilà le bout de code que j'aimerais changer: if (mail($destinataire,$subject,$codehtml,$headers)) { echo "Votre mail a bien été envoyé, nous allons vous répondre des que possible. Merci."; } else { echo "Désolé... Le serveur n'a pas pu lire votre message..."; } ?>
Vu la première branche du if(), il semble que tu aies déjà renvoyé le début de la page HTML. Pour ne pas tout changer, il faudrait bufferiser le début de la page, mais c'est un peu plus complexe à expliquer et il vaudrait mieux que tu joignes le code complet.
Et ce serait un truc du genre : <?php ob_start(); /* commence la bufferisation */ ?> ... ici le début de ton code actuel ... if (mail($destinataire,$subject,$codehtml,$headers)) { ob_end_flush(); /* affiche et termine la bufferisation */ echo "Votre mail a bien été envoyé"; } else { /* annule la bufferisation et appelle la nouvelle page */ ob_end_clean(); include("autrepage.php"); exit(); } ... ici la fin de ton code ...
Cordialement, -- Olivier Miakinen
Bonjour,
Le 14/09/2010 12:14, GanaWeb a écrit :
Bonjour à tous...J'ai un formulaire en php qui à la fin retourne un
message.
J'aimerais qu'à la place de retourner un message, il retourne sur une
page de remerciement en php.
Est-ce possible ?
Oui, de plusieurs façons possibles, à condition que tu n'aies pas
commencé à renvoyer de code HTML.
L'une des façons est tout simplement :
include("autrepage.php");
exit();
L'autre est une redirection (penser à mettre l'URL en entier) :
header("Location:http://www.example.com/path/autrepage.php");
Voilà le bout de code que j'aimerais changer:
if (mail($destinataire,$subject,$codehtml,$headers)) {
echo "Votre mail a bien été envoyé, nous allons vous répondre des que
possible. Merci.";
} else {
echo "Désolé... Le serveur n'a pas pu lire votre message...";
}
?>
Vu la première branche du if(), il semble que tu aies déjà renvoyé le
début de la page HTML. Pour ne pas tout changer, il faudrait bufferiser
le début de la page, mais c'est un peu plus complexe à expliquer et il
vaudrait mieux que tu joignes le code complet.
Juste pour mémoire, la doc est ici :
<http://fr2.php.net/manual/fr/ref.outcontrol.php>
Et ce serait un truc du genre :
<?php ob_start(); /* commence la bufferisation */ ?>
... ici le début de ton code actuel ...
if (mail($destinataire,$subject,$codehtml,$headers)) {
ob_end_flush(); /* affiche et termine la bufferisation */
echo "Votre mail a bien été envoyé";
} else {
/* annule la bufferisation et appelle la nouvelle page */
ob_end_clean();
include("autrepage.php");
exit();
}
... ici la fin de ton code ...
Bonjour à tous...J'ai un formulaire en php qui à la fin retourne un message. J'aimerais qu'à la place de retourner un message, il retourne sur une page de remerciement en php. Est-ce possible ?
Oui, de plusieurs façons possibles, à condition que tu n'aies pas commencé à renvoyer de code HTML.
L'une des façons est tout simplement : include("autrepage.php"); exit();
Voilà le bout de code que j'aimerais changer: if (mail($destinataire,$subject,$codehtml,$headers)) { echo "Votre mail a bien été envoyé, nous allons vous répondre des que possible. Merci."; } else { echo "Désolé... Le serveur n'a pas pu lire votre message..."; } ?>
Vu la première branche du if(), il semble que tu aies déjà renvoyé le début de la page HTML. Pour ne pas tout changer, il faudrait bufferiser le début de la page, mais c'est un peu plus complexe à expliquer et il vaudrait mieux que tu joignes le code complet.
Et ce serait un truc du genre : <?php ob_start(); /* commence la bufferisation */ ?> ... ici le début de ton code actuel ... if (mail($destinataire,$subject,$codehtml,$headers)) { ob_end_flush(); /* affiche et termine la bufferisation */ echo "Votre mail a bien été envoyé"; } else { /* annule la bufferisation et appelle la nouvelle page */ ob_end_clean(); include("autrepage.php"); exit(); } ... ici la fin de ton code ...