t671  | Bonjour,
   Je saisi un formulaire (date, heure, titre, texte) et éventuellement, je veux y uploader un fichier. Le tout dans deux tables ("manifestations" pour le texte, et "upload" pour le fichier). Voici déjà mon script qui met la base à jour (en sachant que "monfichier" correspond au fichier uploadé (optionnel). Le reste, ce sont les champs texte) :
  
  Code :
 - // récupération des variables issues du formulaire
 - $date = $_POST['date'];
 - $heure = $_POST['heure'];
 - $titre = $_POST['titre'];
 - $message = $_POST['texte'];
 - $monfichier = $_POST['monfichier'];
 - $frdate = $date; // conservation date saisie  
 - ...........
 - //----------Convertion "date" au format texte-fr---------------
 - list($year, $month, $day) = explode("-", $dateMySQL);
 - $months = array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre" );
 - $datefr = " $day ".$months[$month-1]." $year ";
 - // ----------------test upload fichier------------------
 - if (isset($monfichier))
 - {
 - $dossier = './dossier_upload/';
 - $fichier = basename($_FILES['monfichier']['name']);
 - $taille_maxi = 2000000;
 - $taille = filesize($_FILES['monfichier']['tmp_name']);
 - $extensions = array('.gif', '.jpg', '.jpeg', '.doc', '.png', '.txt', '.TXT', '.PNG', '.GIF', '.JPG', '.JPEG', '.DOC');
 - $extension = strrchr($_FILES['monfichier']['name'], '.');
 - //--------------------upload fichier----------------------
 - if(move_uploaded_file($_FILES['monfichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
 - {
 - // si la variable monfichier existe, j'enregistre tout dans les deux tables
 - $sql = "INSERT INTO manifestations(heure, jour, date, frdate, datefr, titre, texte) VALUES('$heure', '$jour_sem', '$dateMySQL', '$frdate', '$datefr', '$titre', '$chaine')";
 - mysql_query($sql) or die('Erreur SQL !'.$sql.mysql_error());
 - $id=mysql_insert_id();
 - $req_fich = "INSERT INTO upload(id_liaison, lien_fichier, fichier, extension) VALUES('$id', '$dossier$fichier', '$fichier', '$extension')";
 - mysql_query($req_fich) or die('Erreur SQL !'.$req_fich.mysql_error());
 - }
 - }
 - else
 - {
 - // si la variable monfichier n'existe pas, j'enregistre uniquement l'id=id_liaison dans la table upload
 - $sql = "INSERT INTO manifestations(heure, jour, date, frdate, datefr, titre, texte) VALUES('$heure', '$jour_sem', '$dateMySQL', '$frdate', '$datefr', '$titre', '$chaine')";
 - mysql_query($sql) or die('Erreur SQL !'.$sql.mysql_error());
 - $id=mysql_insert_id();
 - $req_fich = "INSERT INTO upload(id_liaison) VALUES('$id')";
 - mysql_query($req_fich) or die('Erreur SQL !'.$req_fich.mysql_error());
 - }
 
  |  
 
   Ainsi, si je saisi un texte + titre sans fichier à uploader : l'enregistrement texte est ok, et l'id dans id_liaison ok également (le reste en NUL), ce qui est normal et correct.
 Si je saisi un texte + titre avec fichier à uploader : l'enregistrement texte est ok, mais pour le fichier uploadé, c'est comme si il n'y en avait pas (l'id dans id_liaison ok, le reste en NUL). Normalement, toutes les variables devraient être enregistrées (id_liaison, lien_fichier, fichier, extension).
 En fait, j'éxécute toujours le dernier "else" !!!!! Alors, est-ce que mon "if (isset($monfichier))" est bon ? Où est mon erreur ?        J'ai enlevé le "if (isset($monfichier))", et le dernier "else", et là, le fichier est bien uploadé. Ce qui prouve que la variable $monfichier existe bien !!!!
   Pouvez-vous m'aider à débuguer car je ne sais plus quoi faire .....         Merci
     |