Pb formulaire
sand
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
je ne maitrise pas du le php et j'ai fait un formulaire qui marche très bien mais qui affiche une fois cliqué, un page blanche avec le message comme quoi tout a été bien envoyé.
je n'arrive pas à trouver la solution pour rediriger immédiatement sur la home par exemple.
Pouvez vous m'aider ? Voici le code php :
je ne maitrise pas du le php et j'ai fait un formulaire qui marche très bien mais qui affiche une fois cliqué, un page blanche avec le message comme quoi tout a été bien envoyé.
je n'arrive pas à trouver la solution pour rediriger immédiatement sur la home par exemple.
Pouvez vous m'aider ? Voici le code php :
<?php
$from = "***@***";
$to = $from;
$subject = "Contact";
$message = "Contact\n";
$headers = "From:" .$from. "\r\n" ;
$headers .='Reply-To:'.$from."\r\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\r\n";
$headers .='Content-Transfer-Encoding: 7bit'."\r\n";
foreach ($_POST as $cle => $valeur) {
$message.= "$cle : $valeur.\n";
}
if(mail($to,$subject,$message,$headers)) {
echo 'Le message a bien été envoyé';
} else {
echo 'Le message n\'a pu être envoyé';
} //*******************/
?>
?>
5 réponses
Bonjour,
Dans tes deux balises <head> mets ça
en modifiant l'adresse. Content est le temps d'attente avant la redirection
Dans tes deux balises <head> mets ça
<meta http-equiv="refresh" content="5; URL=http://www.manouvelleadresse.com">
en modifiant l'adresse. Content est le temps d'attente avant la redirection
ça ne marche pas du tout, même en changeant la notion de temps dans content je me retrouve encore avec la même page blanche sans être redirigé.
ne faut il pas changer des données dans le fichier php plutôt ?
ne faut il pas changer des données dans le fichier php plutôt ?
Bonjour,
Dans ton code php...(sous ton IF) tu peux ajouter ceci :
En modifiant : page.php ... pas la page sur laquelle tu veux faire ta redirection.
PS: Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Dans ton code php...(sous ton IF) tu peux ajouter ceci :
print("<script type=\"text/javascript\">setTimeout('location=(\"page.php\")' ,1000);</script>");
En modifiant : page.php ... pas la page sur laquelle tu veux faire ta redirection.
PS: Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
pour info m'a m'a envoyé une dizaine de message sans rien dedans et j'ai toujours la page blanche avec le msg comme quoi cela a bien été envoyé et tjs pas redirection
<?php
$from = "***@***";
$to = $from;
$subject = "Contact";
$message = "Contact\n";
$headers = "From:" .$from. "\r\n" ;
$headers .='Reply-To:'.$from."\r\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\r\n";
$headers .='Content-Transfer-Encoding: 7bit'."\r\n";
foreach ($_POST as $cle => $valeur) {
$message.= "$cle : $valeur.\n";
}
if(mail($to,$subject,$message,$headers))
{
echo 'Le message a bien été envoyé';
}
else
{
echo 'Le message n\'a pu être envoyé';
} //*******************/
print("<script type=\"text/javascript\">setTimeout('location=(\"contact.php\")' ,1000);</script>");
?>
?>
sorry je te met le code avec les bonnes balises
<?php
$from = "***@***";
$to = $from;
$subject = "Contact";
$message = "Contact\n";
$headers = "From:" .$from. "\r\n" ;
$headers .='Reply-To:'.$from."\r\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\r\n";
$headers .='Content-Transfer-Encoding: 7bit'."\r\n";
foreach ($_POST as $cle => $valeur) {
$message.= "$cle : $valeur.\n";
}
if(mail($to,$subject,$message,$headers))
{
echo 'Le message a bien été envoyé';
}
else
{
echo 'Le message n\'a pu être envoyé';
} //*******************/
print("<script type=\"text/javascript\">setTimeout('location=(\"contact.php\")' ,1000);</script>");
?>
?>
Essayes ceci :
<?php
$from = "***@***";
$to = $from;
$subject = "Contact";
$message = "Contact\n";
$headers = "From:" .$from. "\r\n" ;
$headers .='Reply-To:'.$from."\r\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\r\n";
$headers .='Content-Transfer-Encoding: 7bit'."\r\n";
if(isset($_POST)){
foreach ($_POST as $cle => $valeur) {
$message.= "$cle : $valeur.\n";
}
if(mail($to,$subject,$message,$headers)){
echo 'Le message a bien été envoyé';
print("<script type='text/javascript'>
alert('redirection...');
location='contact.php';
</script>");
}else {
echo 'Le message n\'a pas pu être envoyé';
} //*******************/
}else{
echo "<br> Aucune valeur POST !";
}
?>
Pour la redirection.. en effet.. je pense qu'avec document.location ça fonctionnerait mieux...
Si ça ne marche pas.. essayes avec window.location
Tu n'aurais pas mis ton code dans une boucle ??
De toutes façons.. ceci est un autre problème (qui n'est pas en rapport avec la question initiale qui concerne la redirection....)
Une fois le souci de redirection traité... je t'invite à ouvrir une autre discussion pour traiter ce sujet séparément...
Cela facile grandement la recherche sur le forum.. pour peu que d'autres internautes rencontrent un jour le même problème que toi.
echo 'Le message a bien été envoyé';
print("<script type='text/javascript'>
alert('redirection...');
document.location='contact.php';
</script>");
Si ça ne marche pas.. essayes avec window.location
puis eu 2 boites de dialogues et reçu mon message test puis une trentaine sans rien dedans !
Tu n'aurais pas mis ton code dans une boucle ??
De toutes façons.. ceci est un autre problème (qui n'est pas en rapport avec la question initiale qui concerne la redirection....)
Une fois le souci de redirection traité... je t'invite à ouvrir une autre discussion pour traiter ce sujet séparément...
Cela facile grandement la recherche sur le forum.. pour peu que d'autres internautes rencontrent un jour le même problème que toi.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir,
Pour faire une redirection en php, tu as la fonction header() (https://www.php.net/manual/fr/function.header.php sauf : N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé.
Sinon tu peux le faire via javascript :
Pour faire une redirection en php, tu as la fonction header() (https://www.php.net/manual/fr/function.header.php sauf : N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé.
<?php
$from = "***@***";
$to = $from;
$subject = "Contact";
$message = "Contact\n";
$headers = "From:" .$from. "\r\n" ;
$headers .='Reply-To:'.$from."\r\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\r\n";
$headers .='Content-Transfer-Encoding: 7bit'."\r\n";
foreach ($_POST as $cle => $valeur) {
$message.= "$cle : $valeur.\n";
}
if(mail($to,$subject,$message,$headers)) {
header('Location: URL');
} else {
echo 'Le message n\'a pu être envoyé';
}
?>
Sinon tu peux le faire via javascript :
<!DOCTYPE html>
<html lang="fr">
<head>
<script type="text/javascript">
function RedirectionJavascript($url) {
window.location = $url;
}
</script>
</head>
<body>
<?php
$from = "***@***";
$to = $from;
$subject = "Contact";
$message = "Contact\n";
$headers = "From:" .$from. "\r\n" ;
$headers .='Reply-To:'.$from."\r\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\r\n";
$headers .='Content-Transfer-Encoding: 7bit'."\r\n";
foreach ($_POST as $cle => $valeur) {
$message.= "$cle : $valeur.\n";
}
if(mail($to,$subject,$message,$headers)) {
echo '<script type="text/javascript">RedirectionJavascript("URL");</script>';
} else {
echo 'Le message n\'a pu être envoyé';
}
?>
</body>
</html>