Help ! Formulaire : Problème redirection page

olo
Eléphanteau du PHP | 11 Messages

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.

<!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) { 

Mammouth du PHP | 1353 Messages

19 juin 2008, 14:31

Le problème est dans ta page form.php :
<form name="mail_form" method="post" action="/form.php" enctype="multipart/form-data" onSubmit="return verifSelection()">
le action="/form.php" fait que lorsque ton formulaire est validé il renvoi vers cette page... renvoi plutot vers la page de traitement du formulaire que tu nous as montré...[/php]
Tell me and I forget. Teach me and I remember. Involve me and I learn.

olo
Eléphanteau du PHP | 11 Messages

19 juin 2008, 14:34

Hey

merci !!!

c'est à dire que je met l'URL complet de la page de remerciement ou du formulaire ?

j'essaye de suite

tu cartonnes ! merci !

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

19 juin 2008, 14:36

C'est tout bête, il manque un petit espace entre location: et l'url

Correction:
 header("Location: http://miresparis.com/miresmerci.html"); 
C'est tout.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

olo
Eléphanteau du PHP | 11 Messages

19 juin 2008, 14:42

arf

l'espace ne change rien désolé...

mais merci !


PS : est-ce normal qu'il y est "elsew" est pas "else" ?

Mammouth du PHP | 1353 Messages

19 juin 2008, 14:46

Ok je crois que j'avais mal compris : la page que tu nous a montré dans le premier post c form.php ? parce que y a pas le formulaire dedans mais comme elle s arrete au milieu il est peut etre après... et ton header() il est ou ? dans cette meme page ?

si oui montre nous la page complete stp, celle du formulaire + traitement du formulaire + redirection
Tell me and I forget. Teach me and I remember. Involve me and I learn.

olo
Eléphanteau du PHP | 11 Messages

19 juin 2008, 14:52

Ok merci , voici la page complete...

<!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("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 else
			    } // 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
</script>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>mires shooting locations</title>
<style type="text/css">
<!--
body,td,th {
	color: #6C7176;
	font-family: Times New Roman, Times, serif;
}
body {
	background-color: #000000;
}
#Layer1 {
	position:absolute;
	width:634px;
	height:469px;
	z-index:1;
	left: 222px;
	top: 9px;
}
.style17 {font-family: "Times New Roman", Times, serif; color: #6C7176; font-size: 15px; }
.style6 {font-family: "Times New Roman", Times, serif; color: #6A717A; font-size: 14px; }
#Layer3 {	position:absolute;
	width:192px;
	height:48px;
	z-index:2;
	left: 25px;
	top: 139px;
}
a:link {
	color: #6C7176;
	text-decoration: none;
}
a:visited {
	text-decoration: none;
	color: #6C7176;
}
a:hover {
	text-decoration: none;
	color: #FFFFFF;
}
a:active {
	text-decoration: none;
}
-->
</style></head>

<body>
<div id="Layer1">
  <div align="center"><form name="mail_form" method="post" action="<?=$_SERVER['PHP_SELF']?>" enctype="multipart/form-data" onSubmit="return verifSelection()">
  <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma">proposer un décors</font></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_email1) {
	  echo(stripslashes($erreur_email1));
	  } else {
if ($erreur_case1) {
	  echo(stripslashes($erreur_case1));
	  } else {
if ($erreur_fichier[0]) {
	  echo(stripslashes($erreur_fichier[0]));
	  } else {
if ($erreur_fichier[1]) {
	  echo(stripslashes($erreur_fichier[1]));
	  } else {
if ($erreur_fichier[2]) {
	  echo(stripslashes($erreur_fichier[2]));
	  } else {
if ($erreur_fichier[3]) {
	  echo(stripslashes($erreur_fichier[3]));
	  } else {
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
?>
    </strong></font>
    </div></td>
      </tr>
    </table>
<p align="center"></p><table width="566" border="0" align="center"><tr>
      <td width="140"><div align="right"><font face="Verdana" size="2">votre 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">votre numéro de téléphone</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">votre adresse 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"><div align="right"><font face="Verdana" size="2">vous seriez prêt à louer votre décors pour :</font></div></td>
      <td width="30" align="center" valign="middle">
	  <?php
	  if ($erreur_case1) {
	  echo($icone);
	  }
	  ?>
	  </td>
      <td><input type="checkbox" name="case1_[0]" id="case1_" value="prise de vue"<?php
if ($_SESSION['case1_'][0] == "prise de vue") {
echo(" checked");
}
?>><font face="Verdana" size="2">prise de vue</font><br><input type="checkbox" name="case1_[1]" id="case1_" value="tournage"<?php
if ($_SESSION['case1_'][1] == "tournage") {
echo(" checked");
}
?>><font face="Verdana" size="2">tournage</font></td></tr></table><table width="566" border="0" align="center"><tr>
      <td width="140" align="right"><font face="Verdana" size="2">photo<input name="MAX_FILE_SIZE" type="hidden" value="8192000"></font></td>
	  <td width="30" align="center" valign="middle">
	  <?php
	  if ($erreur_fichier[0]) {
	  echo($icone);
	  }
	  ?>
	  </td>
	  
      <td><input type="file" name="fichier[]" id="fichier1">
        <font face="Verdana" size="2">(8 Mo maximum)</font></td>
    </tr></table><table width="566" border="0" align="center"><tr>
      <td width="140" align="right"><font face="Verdana" size="2">photo<input name="MAX_FILE_SIZE" type="hidden" value="8192000"></font></td>
	  <td width="30" align="center" valign="middle">
	  <?php
	  if ($erreur_fichier[1]) {
	  echo($icone);
	  }
	  ?>
	  </td>
	  
      <td><input type="file" name="fichier[]" id="fichier2">
        <font face="Verdana" size="2">(8 Mo maximum)</font></td>
    </tr></table><table width="566" border="0" align="center"><tr>
      <td width="140" align="right"><font face="Verdana" size="2">photo<input name="MAX_FILE_SIZE" type="hidden" value="8192000"></font></td>
	  <td width="30" align="center" valign="middle">
	  <?php
	  if ($erreur_fichier[2]) {
	  echo($icone);
	  }
	  ?>
	  </td>
	  
      <td><input type="file" name="fichier[]" id="fichier3">
        <font face="Verdana" size="2">(8 Mo maximum)</font></td>
    </tr></table><table width="566" border="0" align="center"><tr>
      <td width="140" align="right"><font face="Verdana" size="2">photo<input name="MAX_FILE_SIZE" type="hidden" value="8192000"></font></td>
	  <td width="30" align="center" valign="middle">
	  <?php
	  if ($erreur_fichier[3]) {
	  echo($icone);
	  }
	  ?>
	  </td>
	  
      <td><input type="file" name="fichier[]" id="fichier4">
        <font face="Verdana" size="2">(8 Mo maximum)</font></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="4"></div></form></div>
</div>
<p><a href="index.html"><img src="imgg/logomires.jpg" alt="mires paris" width="196" height="137" border="0" /></a></p>
<div id="Layer3">
  <div align="justify">
    <p class="style6"><a href="contact.html" onclick="window.open(this.href, 'exemple', 'height=350, width=215, top=100, left=100, toolbar=no, menubar=yes, location=no, resizable=yes, scrollbars=no, status=no'); return false;">contact</a> - <a href="form.php">proposer un d&eacute;cors </a></p>
    <p class="style17">&nbsp;</p>
  </div>
</div>
</body>
</html>

Mammouth du PHP | 1353 Messages

19 juin 2008, 15:08

j'avoue que ça a l'air correct...

Pour que l'on soit sûrs, peut tu commenter ta ligne header() et mettre à la place un
else { 

                    // Rediriger vers la page de remerciement 
                    //header("Location: http://miresparis.com/miresmerci.html");  
                    //exit(); 
                    echo "Merci beaucoup";
                  } // Fin else 
Et voir si ça s'affiche... On saura si le problème est au niveau de cette fonction ou si l'on entre pas dans la boucle...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

olo
Eléphanteau du PHP | 11 Messages

19 juin 2008, 15:13

Hey merci de prendre le temps de m'aider ;)

alors maintenant ça m'affiche toujours la même page (http://www.miresparis.com/form.php) mais cette fois ci elle n'est plus blanche (ou vide) et en haut à droite du coup il y a écrit "merci beaucoup"

...

PS: c'est toujours mieux qu'une page blache ! ;)

Mammouth du PHP | 1353 Messages

19 juin 2008, 15:30

Ok je comprend le problème... le truc c que tu désactives l'affichage des erreurs, donc on ne voit pas tout ce qui ne va pas ! ta fonction header renvoi probablement un message du style "headers are already sent" mais on le voit pas...

Supprime ces lignes la :
// 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"); 
} 
et reteste ton code avec le header on saura ce qui ne va pas...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

olo
Eléphanteau du PHP | 11 Messages

19 juin 2008, 15:35

voici le message d'erreur

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /srv/www/miresparis/form.php:2) in /srv/www/miresparis/form.php on line 12

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /srv/www/miresparis/form.php:2) in /srv/www/miresparis/form.php on line 12


PS : tu avais raison au sujet du headers already sent!

Mammouth du PHP | 1353 Messages

19 juin 2008, 15:42

Effectivement ;)

Regardes un peu la doc de header() si tu veux en savoir +.

En attendant je pense aussi qu'il faut que tu déplace cette ligne (la toute premiere)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
et que tu la mettes juste avant l'ouverture de ta balise html :
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
Sinon ta page n'est pas totalement vierge et donc la fonction header ne peut pas marcher.
Il y aura peut etre d autres erreurs, j attends la suite ;)
Tell me and I forget. Teach me and I remember. Involve me and I learn.

olo
Eléphanteau du PHP | 11 Messages

19 juin 2008, 15:49

toujours la mm erreur


Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /srv/www/miresparis/form.php:2) in /srv/www/miresparis/form.php on line 12

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /srv/www/miresparis/form.php:2) in /srv/www/miresparis/form.php on line 12

Mammouth du PHP | 1353 Messages

19 juin 2008, 15:54

N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.
Il faut aussi que tu supprimes toutes les lignes vides et les espaces inutiles (si il y en a)...
Reposte ton code après tout ça si tu as encore l'erreur...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Mammouth du PHP | 1668 Messages

19 juin 2008, 15:54

C'est con mais tu as essayé en mettant un lien absolu sur ta redirection ?

Et il faut faire :
<?php // Ligne 1
session_start();
?>
Et seulement après tu met du html...
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol