Bonjour,
j'ai un formulaire contenant 2 champs :
un champ textarea et le deuxième de type file.
le probleme est que tant que le champs de type file n'est pas renseigné, on n'arrive pas à poster le formulaire je reçois le message :
Aucune données
voici mon code:
<?php
if(isset($_POST['valider'])){
$message = mysql_real_escape_string($_POST['message']);
$id = $_SESSION["pseudo"];
// On définit notre répertoire cible
$dstRep = 'fichiers/';
// On créé un tableau contenant les extensions autorisées
$extOk = array('jpg', 'png', 'bmp', 'gif','jpeg','doc','csv','xlsx','rtf');
// On vérifie qu'il est accessible en écriture
if(!is_writable($dstRep))
die('Impossible d\'écrire dans le répertoire cible.');
// On vérifie d'abord que des données ont bien été envoyées
if(!isset($_FILES['fichier']))
die('Aucune données');
// Vérification du code d'erreur
switch($_FILES['fichier']['error'])
{
case 1: // UPLOAD_ERR_INI_SIZE
die("Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !");
break;
case 2: // UPLOAD_ERR_FORM_SIZE
die("Le fichier dépasse la limite autorisée dans le formulaire HTML !");
break;
case 3: // UPLOAD_ERR_PARTIAL
die("L'envoi du fichier a été interrompu pendant le transfert !");
break;
case 4: // UPLOAD_ERR_NO_FILE
die("Le fichier que vous avez envoyé a une taille nulle !");
break;
}
// On lit l'extension du fichier
$fileExt = substr($_FILES['fichier']['name'],-4,4);
// On vérifie que l'extension est dans le tableau
// des extensions autorisées
//if(!in_array($fileExt,$extOk))
//die("Type de fichier non autorisé.");
// On vérifie si le fichier existe déjà dans le répertoire cible
if(file_exists($dstRep.$_FILES['fichier']['name']))
{
// On utilise une boucle pour incrémenter notre préfixe
$i = 0;
while(file_exists($dstRep.$i.'_'.$_FILES['fichier']['name']) ) $i++;
// Arrivé ici, on a trouvé un nom disponible avec un préfixe numérique
$cible = $dstRep.$i.'_'.$_FILES['fichier']['name'];
}
else
{
// Le fichier n'existe pas dans le répertoire cible,
// Nous pouvons donc utiliser le nom original
$cible = $dstRep.$_FILES['fichier']['name'];
}
// On finit par déplacer le fichier dans le répertoire cible
if(move_uploaded_file($_FILES['fichier']['tmp_name'],$cible)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
if(!empty($message)){
$q = mysql_query("INSERT INTO tb_cmt(id_cmt,message,cible,date,pseudo) VALUES ('','$message','{$cible}',NOW(),'".$id."')") or die("probl?me");
}}}
?>
Afficher la suite