Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Renvoi d'une page en html

1 réponse
Avatar
GanaWeb
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

1 réponse

Avatar
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&gt;

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