<?php for ($i=0; $i < $cfg['NUM_ATTACHMENT_FIELDS']; $i++) { echo '<fieldset class="upload">'; echo '<legend>Pièce jointe</legend>'; echo ' '; echo '</fieldset>'; } ?>
<?php session_start(); if(isset($_FILES['monfichier']['tmp_name'][0]) && $_FILES['monfichier']['size'][0]>0){ $ok= 1; }else{ echo ('champs file obligatoire'); $ok=0; } if($ok===1){ //print_r($_FILES['monfichier'][0]);exit; require "config.php"; mysql_connect(DB_HOST,DB_LOGIN,DB_PASS); mysql_select_db(DB_BDD); mysql_query('SET NAMES '.DB_ENC); $script_root = substr(__FILE__, 0, strrpos(__FILE__, DIRECTORY_SEPARATOR) ).DIRECTORY_SEPARATOR; //require_once $script_root.'upload.php'; $remote = getenv("REMOTE_ADDR"); // Code de sécurité (captcha) function encrypt($string, $key) { $result = ''; for($i=0; $i<strlen($string); $i++) { $char = substr($string, $i, 1); $keychar = substr($key, ($i % strlen($key))-1, 1); $char = chr(ord($char)+ord($keychar)); $result.=$char; } return base64_encode($result); } $sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "8h384ls94"); $sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe); // Pour vider le formulaire (ne pas toucher) if ($_POST['delete']) { unset($_POST); } // Envoi des données par le formulaire if ($_POST["sendKontakt"]) { // Variables des champs du formulaire $reference = $_POST["reference"]; $name = $_POST["name"]; $forename = $_POST["forename"]; $email = $_POST["email"]; $phone = $_POST["phone"]; $portable = $_POST["portable"]; $address = $_POST["address"]; $postal = $_POST["postal"]; $ville = $_POST["ville"]; $jours = $_POST["jours"]; $mois = $_POST["mois"]; $annee = $_POST["annee"]; $permisB = $_POST["permisB"]; $betreff = $_POST["betreff"]; $nachricht = $_POST["nachricht"]; $sicherheitscode = $_POST["sicherheitscode"]; $date = date("d.m.Y | H:i"); $ip = $_SERVER['REMOTE_ADDR']; $UserAgent = $_SERVER["HTTP_USER_AGENT"]; $host = getHostByAddr($remote); // Contrôle des champs de données $name = stripslashes($name); $forename = stripslashes($forename); $email = stripslashes($email); $phone = stripslashes($phone); $portable = stripslashes($portable); $postal = stripslashes($postal); $ville = stripslashes($ville); $jours = stripslashes($jours); $permisB = stripslashes($permisB); $betreff = stripslashes($betreff); if(!$name) { $fehler['name'] = "<li>Donnée obligatoire.</li>"; } if(!$forename) { $fehler['forename'] = "<li>Donnée obligatoire.</li>"; } if (!preg_match("/^[0-9a-zA-ZÄÜÖ_.-]+@[0-9a-z.-]+\.[a-z]{2,6}$/", $email)) { $fehler['email'] = "<li>Donnée obligatoire.</li>"; } if(!$phone) { $fehler['phone'] = "<li>Donnée obligatoire.</li>"; } if(!$portable) { $fehler['portable'] = "<li>Donnée obligatoire.</li>"; } if(!$postal) { $fehler['postal'] = "<li>Donnée obligatoire.</li>"; } if(!$ville) { $fehler['ville'] = "<li>Donnée obligatoire.</li>"; } if(!$jours) { $fehler['jours'] = "<li>Donnée obligatoire.</li>"; } if(!$permisB) { $fehler['permisB'] = "<li>Donnée obligatoire.</li>"; } if(!$betreff) { $fehler['betreff'] = "<li>Donnée obligatoire.</li>"; } if (!isset($fehler) || count($fehler) == 0) { $error = false; $errorMessage = ''; $uploadErrors = array(); $uploadedFiles = array(); $totalUploadSize = 0; if ($cfg['UPLOAD_ACTIVE'] && in_array($_SERVER['REMOTE_ADDR'], $cfg['BLACKLIST_IP']) === true) { $error = true; $fehler['upload'] = 'Ces fichiers ne sont pas autorisés. '; } if (!$error) { for ($i=0; $i < $cfg['NUM_ATTACHMENT_FIELDS']; $i++) { if ($_FILES['monfichier']['error'][$i] == UPLOAD_ERR_NO_FILE) { continue; } $extension = explode('.', $_FILES['monfichier']['name'][$i]); $extension = strtolower($extension[count($extension)-1]); $totalUploadSize += $_FILES['monfichier']['size'][$i]; if ($_FILES['monfichier']['error'][$i] != UPLOAD_ERR_OK) { $uploadErrors[$j]['name'] = $_FILES['monfichier']['name'][$i]; switch ($_FILES['monfichier']['error'][$i]) { case UPLOAD_ERR_INI_SIZE : $uploadErrors[$j]['error'] = 'Le fichier est trop grand (PHP-Ini).'; break; case UPLOAD_ERR_FORM_SIZE : $uploadErrors[$j]['error'] = 'Le fichier est trop grand (dans le formulaire HTML).'; break; case UPLOAD_ERR_PARTIAL : if ($cfg['UPLOAD_ACTIVE']) { $uploadErrors[$j]['error'] = 'Le fichier est partiellement trop chargé.'; } else { $uploadErrors[$j]['error'] = 'Le fichier est partiellement expédié.'; } break; case UPLOAD_ERR_NO_TMP_DIR : $uploadErrors[$j]['error'] = 'Aucun organisateur temporaire n'a été trouvé.'; break; case UPLOAD_ERR_CANT_WRITE : $uploadErrors[$j]['error'] = 'Erreur aux stockage du fichier.'; break; case UPLOAD_ERR_EXTENSION : $uploadErrors[$j]['error'] = 'Erreur inconnue par une extension.'; break; default : if ($cfg['UPLOAD_ACTIVE']) { $uploadErrors[$j]['error'] = 'Erreur inconnue à un haut niveau.'; } else { $uploadErrors[$j]['error'] = 'Erreur inconnue en expédiant la pièce jointe a l'e-mail.'; } } $j++; $error = true; } else if ($totalUploadSize > $cfg['MAX_ATTACHMENT_SIZE']*1024) { $uploadErrors[$j]['name'] = $_FILES['monfichier']['name'][$i]; $uploadErrors[$j]['error'] = 'Le téléchargement maximum est atteint. ('.$cfg['MAX_ATTACHMENT_SIZE'].' KB).'; $j++; $error = true; } else if ($_FILES['monfichier']['size'][$i] > $cfg['MAX_FILE_SIZE']*1024) { $uploadErrors[$j]['name'] = $_FILES['monfichier']['name'][$i]; $uploadErrors[$j]['error'] = 'Le fichier est trop grand. (max. '.$cfg['MAX_FILE_SIZE'].' KB).'; $j++; $error = true; } else if (!empty($cfg['BLACKLIST_EXT']) && strpos($cfg['BLACKLIST_EXT'], $extension) !== false) { $uploadErrors[$j]['name'] = $_FILES['monfichier']['name'][$i]; $uploadErrors[$j]['error'] = 'La terminaison de fichier n'est pas permise.'; $j++; $error = true; } else if (preg_match("=^[\\:*?<>|/]+$=", $_FILES['monfichier']['name'][$i])) { $uploadErrors[$j]['name'] = $_FILES['monfichier']['name'][$i]; $uploadErrors[$j]['error'] = 'Caractères non valables dans le nom des fichiers. (\/:*?<>|).'; $j++; $error = true; } else if ($cfg['UPLOAD_ACTIVE'] && file_exists($cfg['UPLOAD_FOLDER'].'/'.$_FILES['monfichier']['name'][$i])) { $uploadErrors[$j]['name'] = $_FILES['monfichier']['name'][$i]; $uploadErrors[$j]['error'] = 'Le fichier existe déjà.'; $j++; $error = true; } else { if ($cfg['UPLOAD_ACTIVE']) { move_uploaded_file($_FILES['monfichier']['tmp_name'][$i], $cfg['UPLOAD_FOLDER'].'/'.$_FILES['monfichier']['name'][$i]); } $uploadedFiles[] = $_FILES['monfichier']['name'][$i]; } } } if ($error) { $errorMessage = 'Les erreurs suivantes se sont produites, en expédiant le formulaire de contact :'."\n"; if (count($uploadErrors) > 0) { foreach ($uploadErrors as $err) { $tmp .= ' '.$err['name']." \n- ".$err['error']." \n"; } $tmp = " \n".$tmp; } $errorMessage .= $tmp.''; $fehler['upload'] = $errorMessage; } } // S'il n'y a pas de fautes, un E-Mail est envoyé if (!isset($fehler)) { // Votre adresse E-Mail votre.adresse@gmail.com ==> Tête d'E-Mail $recipient = "adresseMail@hotmail.fr"; $betreff = "".$_POST["betreff"].""; $mailheaders = "From: "".stripslashes($_POST["name"])."" <".$_POST["email"].">\n"; $mailheaders .= "Reply-To: <".$_POST["email"].">\n"; $mailheaders .= "X-Mailer: PHP/" . phpversion() . "\n"; // Présentation de l'E-Mail $msg = "Message envoyé le ". $date ." heure, par Formulaire de contact EFME :\n" . "---------------------------------------------------------------------------------\n\n"; $msg .= "Réf : " . $reference . "\n"; $msg .= "Nom : " . $name . "\n"; $msg .= "Prénom : " . $forename . "\n"; $msg .= "E-Mail : " . $email . "\n"; $msg .= "Téléphone : " . $phone . "\n"; $msg .= "Portable : " . $portable . "\n"; $msg .= "Adresse : " . $address . "\n"; $msg .= "Code Postal : " . $postal . "\n"; $msg .= "Ville : " . $ville . "\n"; $msg .= "Date de naissance : " . $jours . "/" . $mois . "/" . $annee . "\n"; $msg .= "Permis B : " . $permisB . "\n"; $msg .= "\nObjet : " . $betreff . "\n"; $msg .= "Message :\n" . $nachricht . "\n\n"; "------------------------------------------------------------------------------\n\n"; if (count($uploadedFiles) > 0) { if ($cfg['UPLOAD_ACTIVE']) { $msg .= 'Les fichiers suivants étaient trop chargés :'."\n"; foreach ($uploadedFiles as $file) { $msg .= ' - '.$cfg['DOWNLOAD_URL'].'/'.$cfg['UPLOAD_FOLDER'].'/'.$file."\n"; } } else { $msg .= 'Les fichiers suivants étaient ajoutés comme pièce jointe :'."\n"; foreach ($uploadedFiles as $file) { $msg .= ' - '.$file."\n"; } } } //$msg .= "\nIP Adresse : " . $ip . "\n"; //$msg .= "Serveur : " . $host . "\n"; //$msg .= "Navigateur et système d'exploitation : " . $UserAgent . "\n"; // Construction du rattachement des pièces jointes // Nécessaire lorsqu'aucun Upload n'est activé if (!$cfg['UPLOAD_ACTIVE'] && count($uploadedFiles) > 0) { $attachments = array(); for ($i = 0; $i < $cfg['NUM_ATTACHMENT_FIELDS']; $i++) { if ($_FILES['monfichier']['name'][$i] == UPLOAD_ERR_NO_FILE) { continue; } $attachments[] = $_FILES['monfichier']['tmp_name'][$i]; } $boundary = md5(uniqid(rand(), true)); $mailheaders .= "MIME-Version: 1.0\n"; $mailheaders .= "Content-Transfer-Encoding: 8bit\n"; $mailheaders .= "Content-Type: multipart/mixed;\n\tboundary="".$boundary.""\n"; $mailheaders .= "\n--".$boundary."\n"; $mailheaders .= "Content-type: text/plain; charset=utf-8" . "\r\n"; for ($i = 0; $i < count($uploadedFiles); $i++) { $file = fopen($attachments[$i],"r"); $content = fread($file,filesize($attachments[$i])); fclose($file); $encodedfile = chunk_split(base64_encode($content)); $msg .= "\n\n--".$boundary."\n"; $msg .= "Content-Type: application/octet-stream;\n\tname="".$uploadedFiles[$i].""\n"; $msg .= "Content-Transfer-Encoding: base64\n"; $msg .= "Content-Disposition: attachment;\n\tfilename="".$uploadedFiles[$i].""\n\n"; $msg .= $encodedfile."\n\n"; } $msg .= "\n\n--".$boundary."--"; } $msg = strip_tags ($msg); // E-mail de remerciement et de copie du message envoyé $dsubject = "Copie de votre message"; // Objet du message $dmailheaders = "From: <".$recipient.">\n"; $dmailheaders .= "Reply-To: <".$recipient.">\n"; $dmsg = "Merci bien de votre E-Mail. Nous y répondrons dans les meilleurs délais.\n\n"; $dmsg .= "Résumé : \n" . "-------------------------------------------------------------------------\n\n"; $dmsg .= "Réf : " . $reference . "\n"; $dmsg .= "Nom : " . $name . "\n"; $dmsg .= "Prénom : " . $forename . "\n"; $dmsg .= "E-Mail : " . $email . "\n"; $dmsg .= "Téléphone : " . $phone . "\n"; $dmsg .= "Portable : " . $portable . "\n"; $dmsg .= "Adresse : " . $address . "\n"; $dmsg .= "Code postal : " . $postal . "\n"; $dmsg .= "Ville : " . $ville . "\n"; $dmsg .= "Date de naissance : " . $jours . "/" . $mois . "/" . $annee . "\n"; $dmsg .= "Permis B : " . $permisB . "\n"; $dmsg .= "\nObjet : " . $betreff . "\n"; $dmsg .= "Message :\n" . $nachricht . "\n\n"; if (count($uploadedFiles) > 0) { $dmsg .= 'Les fichiers suivants, ont été transmis :'."\n"; foreach ($uploadedFiles as $file) { $dmsg .= ' - '.$file."\n"; } } //$dmsg .= "\nIP Adresse : " . $ip . "\n"; //$dmsg .= "Serveur : " . $host . "\n"; //$dmsg .= "Navigateur et système d'exploitation : " . $UserAgent . "\n"; $dmsg = strip_tags ($dmsg); if (mail($recipient,$betreff,$msg,$mailheaders)) { mail($email, $dsubject, $dmsg, $dmailheaders); // Lien de renvoi pour un remerciement quand l'E-Mail a été envoyé header ("location: merci.php"); exit; // Information Texte (sur la même page) quand l'email est envoyé //print "<center> Merci . Le message nous a bien été transmis. Nous vous //répondrons dans les meilleurs délais.</center> "; } } } ?> <?php // Par défaut on ne montre jamais l'entête if ($fehler) { } ?> et voici l'input du file: <?php for ($i =0; $i < $cfg['NUM_ATTACHMENT_FIELDS']; $i++) { echo '<fieldset class="upload">'; echo '<legend>Pièce jointe</legend>'; echo ' '; echo '</fieldset>'; } ?> lundi 30 mai 2011 à 17:24:57 | Re : Formulaire avec pièce jointe lorenzo16000 9 msg Désolé j'ai oublier de vous montrer mon input FILE Code PHP :<?php for ($i=0; $i < $cfg['NUM_ATTACHMENT_FIELDS']; $i++) { echo '<fieldset class="upload">'; echo '<legend>Pièce jointe</legend>'; echo ' '; echo '</fieldset>'; } }else{ echo '<form method="post" action="" enctype="multipart/form-data"> </form>'; } ?>
if($ok===1){ //print_r($_FILES['monfichier'][0]);exit; $script_root = substr(__FILE__, 0, strrpos(__FILE__, DIRECTORY_SEPARATOR) ).DIRECTORY_SEPARATOR; //require_once $script_root.'upload.php';
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionl'idée c'est <?php session_start(); if(isset($_FILES['monfichier']['tmp_name'][0]) && $_FILES['monfichier']['size'][0]>0){ $ok=1; }else{ echo ('champs file obligatoire'); $ok=0; } if($ok===1){ //on traite le formulaire //donc tout ce que tu faisais avant }else{ //on affiche le fomulaire ici } //ou ici