Pb formulaire

sand -  
 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 :
<?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 Statut Membre 1
 
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
sand
 
ç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 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 758
 
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
sand
 
Bonjour Jordan45 je viens d'essayer et cela ne marche pas :(
et désolé pour la coloration syntaxique
0
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 758 > sand
 
ça ne marche pas ??!
Montres ton code modifié que l'on regarde si tu l'as bien fait.....
0
sand
 
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
sand
 
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 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 758
 
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
sand
 
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
sand
 
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 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 758
 
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 40050 Date d'inscription   Statut Modérateur Dernière intervention  
 
les mais continuent d'arriver.... je fais comment pour les arrêter ?
0
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 758 > sand
 
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
Utilisateur anonyme
 
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