Formulaire php redirection affiche page blanche

ldc
Invité n'ayant pas de compte PHPfrance

27 nov. 2008, 18:03

Bonjour
j'ai un problème avec un formulaire de contact. Une fois validé par l'internaute il doit ouvrir une page html. Or cela marche sur freeheberg, j'ai bien ma page html qui s'ouvre une fois le formulaire validé, les infos du formulaire me sont bien envoyé par mail... par contre sur 1 & 1 rien, je reçois bien les infos du formulaire par mail mais la redirection ne se fait pas. j'arrive sur une page blanche

voici le code
<?php

// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i", "$desactive") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}

// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) {


//On commence une session pour enregistrer les variables du formulaire...

session_start();

$_SESSION['champ1'] = $_POST['champ1'];
$_SESSION['champ2'] = $_POST['champ2'];
$_SESSION['champ3'] = $_POST['champ3'];
$_SESSION['zone_email1'] = $_POST['zone_email1'];

//Enregistrement des zones de texte...
$_SESSION['zone_texte1'] = $_POST['zone_texte1'];

// Définir l\'icone apparaissant en cas d\'erreur...


// Définir sur 0 pour afficher un petit x de couleur rouge.
// Définir sur 1 pour afficher l\'image d\'une croix rouge telle que celle utilisée dans l\'assistant
// Si vous utilisez l\'option 1, l\'image de la croix rouge \'icone.gif\' doit se trouver dans le répertoire \'images\',
// ce dernier devant se trouver au même niveau que votre formulaire...
$flag_icone = 0;

// On vérifie si $flag_icone est défini sur 0 ou 1...
if ($flag_icone == 0) {
$icone = "<b><font size=\"3\" face=\"Arial, Verdana, Helvetica, sans-serif\" color=\"#CC0000\">x</font></b>";
} else {
$icone = "<img src=\"images/icone.gif\"";
}

// Définir l'indicateur d'erreur sur zéro...
$flag_erreur = 0;
// N'envoyer le formulaire que s'il n'y a pas d'erreurs...
if ($flag_erreur == 0) {					

// Addresse de réception du formulaire
$email_dest = "[email protected]";
$sujet = "Une message";
$entetes ="MIME-Version: 1.0 \n";
	$entetes .="From: Contact site <[email protected]>\n";
	$entetes .="Return-Path: Contact site <[email protected]>\n";
	$entetes .="Reply-To: Contact site<[email protected]>\n";
	$entetes .="Content-Type: text/html; charset=iso-8859-1 \n";
	$partie_entete = "<html>\n<head>\n<title>Formulaire</title>\n<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n</head>\n<body bgcolor=#FFFFFF>\n";


//Partie HTML de l'e-mail...
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Nom = " . $_SESSION['champ1'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Prenom = " . $_SESSION['champ2'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Telephone = " . $_SESSION['champ3'] . "</font><br>\n";
$partie_zone_email .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Adresse e-mail = " . $_SESSION['zone_email1'] . "</font><br>\n";
$partie_zone_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Votre message = " . $_SESSION['zone_texte1'] . "</font><br>\n";
					

					// Fin du message HTML
					$fin = "</body></html>\n\n";
					
					$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_listes . $partie_boutons . $partie_cases . $partie_zone_texte . $fin;


					// Send the e-mail
					if (@!mail($email_dest,$sujet,$sortie,$entetes)) {
					echo("Envoi du formulaire impossible");
					exit();
					} else {

                    // Rediriger vers la page de remerciement
					header('location: /merci_message.html'); 
                    exit();
                  } // Fin else
			    } // Fin du if ($flag_erreur == 0) {
			} // Fin de if POST
?>
Merci de votre aide. j'ai cherché partout l'erreur mais je ne trouve pas

Eléphant du PHP | 148 Messages

27 nov. 2008, 18:20

if (@mail($email_dest,$sujet,$sortie,$entetes)) {
                    
                    header('location: /merci_message.html'); 
                    exit();
                    } else {

                    echo "Votre message n'a pas été envoyé";
                  } // Fin else 
essaye ceci

Ldc
Invité n'ayant pas de compte PHPfrance

27 nov. 2008, 18:32

if (@mail($email_dest,$sujet,$sortie,$entetes)) {
                    
                    header('location: /merci_message.html'); 
                    exit();
                    } else {

                    echo "Votre message n'a pas été envoyé";
                  } // Fin else 
essaye ceci
Merci j'ai essayé mais toujours la page blanche !

Eléphant du PHP | 353 Messages

27 nov. 2008, 18:35

tu ne vois meme pas le message affiché par le echo?

Hum.
Donc tu as une erreur et tu ne semble pas pouvoir voir les erreurs.

Tu as essayé de faire une autre page avec juste un header location histoire d'etre sur?

Invité
Invité n'ayant pas de compte PHPfrance

27 nov. 2008, 18:38

tu ne vois meme pas le message affiché par le echo?

Hum.
Donc tu as une erreur et tu ne semble pas pouvoir voir les erreurs.

Tu as essayé de faire une autre page avec juste un header location histoire d'etre sur?
si quand je mets un echo je vois le message. mais là comme les éléments du formulaire sont bien envoyés, je n'ai pas le echo

LDC
Invité n'ayant pas de compte PHPfrance

27 nov. 2008, 19:34


Tu as essayé de faire une autre page avec juste un header location histoire d'etre sur?

C'est à dire ? la même page sans echo? oui j'ai essayé, toujours pareil

Eléphant du PHP | 148 Messages

27 nov. 2008, 19:52

AddType x-mapp-php5 .php

dans un .htaccess

fera passer ta version php4 à php5 un peu mieux déjà et retente après :D si tu veux retourner a l'ancienne version enlève la ligne :)

chez 1&1 cé version php 4 par défaut :(

Ldc
Invité n'ayant pas de compte PHPfrance

28 nov. 2008, 11:24

AddType x-mapp-php5 .php

dans un .htaccess

fera passer ta version php4 à php5 un peu mieux déjà et retente après :D si tu veux retourner a l'ancienne version enlève la ligne :)

chez 1&1 cé version php 4 par défaut :(
Bonjour
j'ai fait cela et toujours mon écran blanc. Je désespère total :(

Eléphant du PHP | 353 Messages

28 nov. 2008, 11:28

question.
Tu as vu des messages d'erreur php déja sur le dit serveur?
Car bon.. le coup de la page blanche c'est quand même souvent du à un réglage du serveur.

Ldc
Invité n'ayant pas de compte PHPfrance

28 nov. 2008, 11:53

question.
Tu as vu des messages d'erreur php déja sur le dit serveur?
Car bon.. le coup de la page blanche c'est quand même souvent du à un réglage du serveur.
Non aucun. Et quand je les appelle il me dise que c'est mon code ! j'ai regardé et visiblement Chez 1&1 Internet le PHP est interprété en CGI. Est-ce que cela peut avoir un impact ?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

28 nov. 2008, 12:14

Essaie de supprimer le exit()

ldc
Invité n'ayant pas de compte PHPfrance

28 nov. 2008, 12:42

Essaie de supprimer le exit()
je l'ai fait cela me laisse sur le formulaire

Avatar du membre
ViPHP
ViPHP | 3008 Messages

28 nov. 2008, 12:50

Essaie de mettre un lien non absolu, pas de "/" directement pour voir si ça donne quelque chose.

ldc
Invité n'ayant pas de compte PHPfrance

28 nov. 2008, 13:00

Essaie de mettre un lien non absolu, pas de "/" directement pour voir si ça donne quelque chose.
Non toujours rien j'ai essayé un lien relatif, ou absolu avec adresse complète, ou juste "/"
Je les ai rappelé il y a un instant, ils me disent que c'est mon code! je veux bien moi mais j'ai beau le regarder dans tous les sens et je ne vois pas trop ce qui cloche. ou alors c'est dans la partie html que j'ai oublié quelque chose.

Code : Tout sélectionner

<body> <table width="1293" align="right" cellpadding="0" cellspacing="0" bordercolor="#87908F" bgcolor="#87908F"><tr><td height="62" valign="top"><table width="100%" align="center" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC" bgcolor="#87908F"><tr><td width="269" height="58" valign="top"><div align="center"> <table width="1293" align="right" cellpadding="0" cellspacing="0" bordercolor="#87908F" bgcolor="#CCCCCC"> <!--DWLayoutTable--> <tr> <td width="456" rowspan="3" valign="top"><div align="left"></div> <img src="img/essai_fond2.jpg" width="456" height="625" /></td> </tr> <tr align="left" valign="top"> <td width="2129" height="225" valign="middle" bgcolor="#87908F"><p align="center"><img src="img/escarboucle.jpg" width="333" height="117" align="middle" /></p> <h4 align="center"><span class="Style6"><br /> Contact</span></h4></td> <td width="319" bgcolor="#87908F"><div align="right"> <p align="right"><img src="img/carte_visitebig.jpg" width="300" height="225" border="0" align="absbottom" usemap="#Accueil" /></p> </div></td> </tr> <tr> <td height="393" valign="top" bgcolor="#CCCCCC"><div align="center"></div> <form name="mail_form" method="post" action="<?=$_SERVER['PHP_SELF']?>" onSubmit="return verifSelection()"> <div align="center"></div> <br><table align="center" width="566" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="16"><div align="center"> <font color="#CC0000" size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma"><strong><?php if ($erreur_champ1) { echo(stripslashes($erreur_champ1)); } else { if ($erreur_champ2) { echo(stripslashes($erreur_champ2)); } else { if ($erreur_champ3) { echo(stripslashes($erreur_champ3)); } else { if ($erreur_email1) { echo(stripslashes($erreur_email1)); } else { if ($erreur_texte1) { echo(stripslashes($erreur_texte1)); } else { } // Fin du else... } // Fin du else... } // Fin du else... } // Fin du else... } // Fin du else... ?> </strong></font> </div></td> </tr> </table> <table width="566" border="0" align="center"><tr> <td width="140"><div align="right"><font face="Verdana" size="2">Nom</font></div></td> <td align="center" valign="middle" width="30"> <?php if ($erreur_champ1) { echo($icone); } ?> </td> <td><input name="champ1" type="text" value="<?=stripslashes($_SESSION['champ1']);?>"></td> </tr></table><table width="566" border="0" align="center"><tr> <td width="140"><div align="right"><font face="Verdana" size="2">Prenom</font></div></td> <td align="center" valign="middle" width="30"> <?php if ($erreur_champ2) { echo($icone); } ?> </td> <td><input name="champ2" type="text" value="<?=stripslashes($_SESSION['champ2']);?>"></td> </tr></table><table width="566" border="0" align="center"><tr> <td width="140"><div align="right"><font face="Verdana" size="2">Telephone</font></div></td> <td align="center" valign="middle" width="30"> <?php if ($erreur_champ3) { echo($icone); } ?> </td> <td><input name="champ3" type="text" value="<?=stripslashes($_SESSION['champ3']);?>"></td> </tr></table><table width="566" border="0" align="center"><tr> <td width="140"><div align="right"><font face="Verdana" size="2">Adresse e-mail</font></div></td> <td width="30" align="center" valign="middle"> <?php if ($erreur_email1) { echo($icone); } ?> </td> <td><input name="zone_email1" type="text" value="<?=stripslashes($_SESSION['zone_email1']);?>"></td> </tr></table><table width="566" border="0" align="center"><tr> <td width="140" valign="top"><div align="right"><font face="Verdana" size="2">Votre message</font></div></td> <td width="30" align="center" valign="top"> <?php if ($erreur_texte1) { echo($icone); } ?> </td> <td><textarea name="zone_texte1" cols="45" rows="10"><?=stripslashes($_SESSION['zone_texte1']);?></textarea></td> </tr></table><table width="566" border="0" align="center"><tr> <td valign="top"><div align="center"> <input type="reset" name="Reset" value=" Effacer "> <input type="submit" name="envoi" value="Envoyer"> </div></td></tr></table><div align="center"><input name="nbre_fichiers" type="hidden" id="nbre_fichiers" value=""></div></form> <p align="center"></p></td> </tr> </table>

Ldc
Invité n'ayant pas de compte PHPfrance

28 nov. 2008, 17:53

J'ai tout refait et cela fonctionne !
merci à tous de m'avoir aider