Pb formulaire

Fermé
sand - Modifié par jordane45 le 28/02/2015 à 16:56
 Utilisateur anonyme - 28 févr. 2015 à 22:35
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 :
<?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

Gouenzy Messages postés 31 Date d'inscription mardi 24 février 2015 Statut Membre Dernière intervention 28 février 2015 1
Modifié par Gouenzy le 28/02/2015 à 14:41
Bonjour,

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
0
ç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 ?
0
jordane45 Messages postés 38437 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 février 2025 4 737
28 févr. 2015 à 16:59
Bonjour,

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
0
Bonjour Jordan45 je viens d'essayer et cela ne marche pas :(
et désolé pour la coloration syntaxique
0
jordane45 Messages postés 38437 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 février 2025 4 737 > sand
28 févr. 2015 à 17:26
ça ne marche pas ??!
Montres ton code modifié que l'on regarde si tu l'as bien fait.....
0
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>");
?>

?>
0
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>");
?>

?>
0
jordane45 Messages postés 38437 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 février 2025 4 737
28 févr. 2015 à 18:15
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 !";
}
?>



0
J'ai bien collé l'ensemble du code, complété le formulaire, tombé sur la page blanche avec le message "votre message a bien été envoyé" puis eu 2 boites de dialogues et reçu mon message test puis une trentaine sans rien dedans ! la redirection n'a pas marché....
0
et c'est en train de pourrir ma boite mail, maintenant plus de 125 messages reçus, j'ai pourtant remplacer le fichier php que j'avais avant sur mon serveur et rien n'y fait....
0
jordane45 Messages postés 38437 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 février 2025 4 737
28 févr. 2015 à 18:30
Pour la redirection.. en effet.. je pense qu'avec document.location ça fonctionnerait mieux...
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.
0
sand > jordane45 Messages postés 38437 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 février 2025
28 févr. 2015 à 18:34
les mais continuent d'arriver.... je fais comment pour les arrêter ?
0
jordane45 Messages postés 38437 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 février 2025 4 737 > sand
28 févr. 2015 à 19:37
La redirection marche ??
Si oui... question résolue !

Pour ce nouveau problème... merci d'ouvrir une nouvelle discussion
0

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é.
<?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>
0