Help ! Formulaire : Problème redirection page
Posté : 19 juin 2008, 10:44
Bonjour à tous,
J'ai créer une simple page html avec un formulaire. Tout fonctionne à part la redirection, une fois le formulaire envoyé, vers la page dites de "remerciement". Et j'ai beau relire le code je ne trouve pas la faille. Lorsque le formulaire est envoyé au lieu de me rediriger vers ma page de remerciement il m'affiche une page blanche avec comme adresse celle du formulaire.
voici l'adresse de la page : http://www.miresparis.com/form.php
et ensuite le code.. Merci d'avance.
Ou est l'erreur ?? Help !! Quel est le probleme ?
J'ai créer une simple page html avec un formulaire. Tout fonctionne à part la redirection, une fois le formulaire envoyé, vers la page dites de "remerciement". Et j'ai beau relire le code je ne trouve pas la faille. Lorsque le formulaire est envoyé au lieu de me rediriger vers ma page de remerciement il m'affiche une page blanche avec comme adresse celle du formulaire.
voici l'adresse de la page : http://www.miresparis.com/form.php
et ensuite le code.. Merci d'avance.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?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['zone_email1'] = $_POST['zone_email1'];
//Enregistrement des param?tres de la case 1...
$_SESSION['case1_'][0] = "";
if (isset($_POST['case1_'][0])) {
$_SESSION['case1_'][0] = $_POST['case1_'][0];
} // Fin du if...
$_SESSION['case1_'][1] = "";
if (isset($_POST['case1_'][1])) {
$_SESSION['case1_'][1] = $_POST['case1_'][1];
} // Fin du if...
// Nbre de zones de s?lection de fichiers -1 car on commence le tableau ? z?ro...
$nbre_zones_fichiers = 4 - 1;
// R?pertoire de t?l?chargement du fichier...
$repertoire = "./miresfolio/";
// Taille maximale autoris?e en octets...
$taille_max_fichier = 8192000;
// Extensions de fichiers autoris?es...
$extensions_autorisees = array("gif","jpg","jpeg","","","","","");
// 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;
//Validation PHP des ?l?ments du formulaire...
if ($_POST['champ1'] == "") {
$erreur_champ1 = "veuillez nous indiquer votre nom";
$flag_erreur = 1;
} // Fin du if...
if ($_POST['champ2'] == "") {
$erreur_champ2 = "veuillez nous indiquer votre numéro de téléphone";
$flag_erreur = 1;
} // Fin du if...
if ($_FILES['fichier']['name']['0'] == "") {
$erreur_fichier[0] = "veuillez choisir au moins une photo à nous envoyer";
$flag_erreur = 1;
} // Fin du if...
//Envoi avec fichier...
if (($_FILES['fichier']['name']['0'] !="") && is_array($_FILES)) {
if (!is_dir($repertoire)) {
$erreur_fichier[0] = "Le r?pertoire de t?l?chargement sp?cifi? n'existe pas!";
$flag_erreur = 1;
} else {
// V?rifier si le r?pertoire a les droits en ?criture...
if (!is_writeable($repertoire)) {
$erreur_fichier[0] = "Le r?pertoire sp?cifi? n'a pas les droits d'acc?s en ?criture.";
$flag_erreur = 1;
} else {
// On boucle x nbre de fois, sauf si aucun fichier n'a ?t? s?lectionn?...
for ($u = 0; $u <= $nbre_zones_fichiers, $_FILES['fichier']['name'][$u] != ""; $u++) {
// V?rifier les ?ventuelles erreurs de t?l?chargement du fichier...
if ($_FILES['fichier']['error'][$u] != 0) {
switch ($_FILES['fichier']['error'][$u]) {
//case UPLOAD_ERR_OK:
case 0;
break;
//case UPLOAD_ERR_INI_SIZE:
case 1;
$erreur_fichier[$u] = "Le fichier t?l?charg? d?passe la taille maximale autoris?e par le serveur.";
$flag_erreur = 1;
break;
//case UPLOAD_ERR_FORM_SIZE:
case 2;
$erreur_fichier[$u] = "Le fichier t?l?charg? d?passe la taille maximale autoris?e par le formulaire.";
$flag_erreur = 1;
break;
//case UPLOAD_ERR_PARTIAL:
case 3;
$erreur_fichier[$u] = "Le fichier n'a ?t? t?l?charg? que partiellement.";
$flag_erreur = 1;
break;
//case UPLOAD_ERR_NO_FILE:
case 4;
$erreur_fichier[$u] = "Aucun fichier n'a ?t? t?l?charg?.";
$flag_erreur = 1;
break;
// case UPLOAD_ERR_NO_TMP_DIR:
case 6:
$erreur_fichier[$u] = "R?pertoire temporaire manquant.";
$flag_erreur = 1;
break;
// case UPLOAD_ERR_CANT_WRITE:
case 7:
$erreur_fichier[$u] = "Echec d'?criture du fichier";
$flag_erreur = 1;
break;
default:
$erreur_fichier[$u] = "Erreur de fichier inconnue";
$flag_erreur = 1;
} // fin du switch
} else {
// On v?rifie si la taille du fichier ne d?passe pas le maximum autoris?
if ($_FILES['fichier']['size'][$u] > $taille_max_fichier) {
$erreur_fichier[$u] = "Le fichier t?l?charg? d?passe la taille maximum autoris?e.";
$flag_erreur = 1;
} else {
// On met le nom du fichier en minuscules...
$nom_fichier = strToLower($_FILES['fichier']['name'][$u]);
// On recherche la position du point dans le nom de fichier...
$dernPos = strRChr($nom_fichier, ".");
// On extrait l'extension du fichier...
$extension = strToLower(subStr($dernPos, 1));
// Si l'extension n'existe pas ou qu'elle ne fait pas partie des extensions autoris?es...
if (($dernPos == "") OR (in_array($extension, $extensions_autorisees) == false)) {
$erreur_fichier[$u] = "L'extension de fichier sp?cifi?e n'est pas autoris?e.";
$flag_erreur = 1;
} else {
//On extrait seulement le nom du fichier sans l'extension, $dernPos donnant l'extension avec le point.
$posExtension = strpos($nom_fichier, $dernPos);
$nom_sans_extension = substr($nom_fichier,0,$posExtension);
// On ajoute au nom du fichier un num?ro unique puis l'extension du fichier...
$nom_unique[$u] = $nom_sans_extension. "_ID_" . uniqid(rand()).$dernPos;
} // Fin du else
} // Fin du else
} // Fin du else
} // Fin de la boucle for... ()
// On boucle une seconde fois, et on ne copie les fichiers que si aucun d'eux n'a retourn? d'erreurs...
$u = 0;
while ((($u<= $nbre_zones_fichiers) && ($_FILES['fichier']['name'][$u] != "") && ($flag_erreur !=1))) {
// On d?place le fichier t?l?charg? du r?pertoire temporaire sur le r?pertoire sp?cifi?
if (!move_uploaded_file($_FILES['fichier']['tmp_name'][$u], $repertoire."/".$nom_unique[$u])) {
$erreur_move_uploaded[$u] = "Impossible de d?placer le fichier dans le r?pertoire de destination...";
$flag_erreur = 1;
} // Fin du if
$u++;
} // Fin de la boucle while
} // Fin du else
} // Fin du else
} // Fin du if (($_FILES['fichier']['name']['0'] !="") && is_array($_FILES)) {
// 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 = "proposition location";
if (($_FILES['fichier']['name']['0'] !="") && is_array($_FILES)) {
// En-t?tes sp?cifiques de l'e-mail AVEC pi?ce jointe:
// G?n?ration d'une cha?ne de d?limitation
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$entetes ="MIME-Version: 1.0 \n";
$entetes .="From: mires<[email protected]>\n";
$entetes .="Content-Type: multipart/mixed;\n";
$entetes .=" boundary=\"{$mime_boundary}\"";
$partie_entete = "Message au format MIME.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/html; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
"<html>\n<head>\n<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n</head>\n<body bgcolor=#FFFFFF>\n";
} else { // En-t?tes de l'e-mail sans envoi de fichier...
$entetes ="MIME-Version: 1.0 \n";
$entetes .="From: mires<[email protected]>\n";
$entetes .="Return-Path: mires<[email protected]>\n";
$entetes .="Reply-To: mires<[email protected]>\n";
$entetes .="Content-Type: text/html; charset=iso-8859-1 \n";
$partie_entete = "<html>
<head>
<title>Formulaire</title>
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
</head>
<body bgcolor=#FFFFFF>\n";
} // fin du else...
//Partie HTML de l'e-mail...
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">votre nom = " . $_SESSION['champ1'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">votre numéro de téléphone = " . $_SESSION['champ2'] . "</font><br>\n";
$partie_zone_email .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">votre adresse mail = " . $_SESSION['zone_email1'] . "</font><br>\n";
$partie_cases .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Vous seriez prêt à louer votre décors pour :</font><br>\n";
$partie_cases .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Case 1 = " . $_SESSION['case1_'][0] . "</font><br>\n";
$partie_cases .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Case 2 = " . $_SESSION['case1_'][1] . "</font><br>\n";
// Enfin, on indique le nom et l'emplacement de la pi?ce jointe sur le serveur.
if (($_FILES['fichier']['name']['0'] !="") && is_array($_FILES)) {
// On boucle x nbre de fois, sauf si aucun fichier n'a ?t? s?lectionn?...
for ($u = 0; $u <= $nbre_zones_fichiers, $_FILES['fichier']['name'][$u] != ""; $u++) {
$a = $u + 1;
$partie_fichier .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Pi?ce jointe $a : " . $nom_unique[$u] . "</font><br>";
} // Fin de la boucle for...
$partie_fichier .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Pi?ces jointes conserv?es dans le r?pertoire : http://reggaeinlyon.com/odg/miresfolio/</font><br>";
} // Fin du if...
$fin = "</body></html>\n\n";
// Si envoi de fichier...
if (($_FILES['fichier']['name']['0'] !="") && is_array($_FILES)) {
// Construction de la pi?ce jointe...
for ($u = 0; $u <= $nbre_zones_fichiers, $_FILES['fichier']['name'][$u] != ""; $u++) {
$type = $_FILES['fichier']['type'][$u];
// Lecture du fichier ('rb' = lecture en binaire)
$fichier = fopen($repertoire . "/" . $nom_unique[$u],'rb');
$donnees = fread($fichier,filesize($repertoire . "/" . $nom_unique[$u]));
fclose($fichier);
// Encodage Base64 des donn?es
$donnees = chunk_split(base64_encode($donnees));
// Partie piece jointe de l'e-mail
$piece_jointe .= "--{$mime_boundary}\n" .
"Content-Type: {$type};\n" .
" name=\"{$nom_unique[$u]}\"\n" .
"Content-Disposition: attachment;\n" .
" filename=\"{$nom_unique[$u]}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$donnees . "\n\n";
} // Fin de la boucle for...
// Fin de la pi?ce jointe...
$piece_jointe .= "--{$mime_boundary}--\n";
$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_listes . $partie_boutons . $partie_cases . $partie_zone_texte . $partie_fichier . $fin . $piece_jointe;
} else {
$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:http://miresparis.com/miresmerci.html");
exit();
} // Fin elsew
} // Fin du if ($flag_erreur == 0) {
} // Fin de if POST
?><html xmlns="http://www.w3.org/1999/xhtml">
<head><script language="JavaScript">
function verifSelection() {
if (document.mail_form.champ1.value == "") {
alert("veuillez nous indiquer votre nom")
return false
}
if (document.mail_form.champ2.value == "") {
alert("veuillez nous indiquer votre numéro de téléphone")
return false
}
var selectionFichier1 = document.getElementById("fichier1");
if(selectionFichier1.value == "") {
alert("veuillez choisir au moins une photo à nous envoyer")
return false
}
} // Fin de la fonction
Ou est l'erreur ?? Help !! Quel est le probleme ?
// Rediriger vers la page de remerciement
header("Location:http://miresparis.com/miresmerci.html");
exit();
} // Fin elsew
} // Fin du if ($flag_erreur == 0) {