Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1460 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Gestion de documents, formulaires + PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Gestion de documents, formulaires + PHP

n°1127043
karinou
Posté le 22-06-2005 à 09:52:53  profilanswer
 

Bonjour, je suis en train de réaliser un site Internet.
Dans un de mes modules, je dois pouvoir gerer une liste de documents uploadés sur le serveur. Les liens vers ses fichiers sont stockés dans une base de données mysql
J'ai donc réaliser une page pouvant gerer l'affichage de ses documents, donc une liste permettant de modifier ou supprimer chaque document et un bouton permettant d'ajouter des documents :  
Voici le code de ma page principale et récapitulative :

Code :
  1. $contenu.='<h2>Documents à télécharger : </h2><br /><br />';
  2. $contenu.='<p style={text-align:"center";><a href="?a=addFic" class="bt" ><img src="../img/add1.gif" alt="" title="" style="border:0;" alt="" />Ajouter un nouveau fichier</a><br /><br /></p>';
  3. $contenu.='<table><tr><th>Date d\'ajout</th><th>Nom</th><th>Fichier</th><th>Modifier</th><th>Supprimer</th></tr>';
  4. $query = "SELECT idFicDrh, nomFicDrh, lienFicDrh, dateFicDrh FROM fichierDRH";
  5. $result = mysql_query($query);
  6. while ($row = mysql_fetch_row($result)){
  7. $idF = $row[0];
  8. $nomF = $row[1];
  9. $lienF = $row[2];
  10. $dateF = $row[3];
  11. $contenu.='<tr>
  12.    <td>'.$dateF.'</td>
  13.    <td>'.$nomF.'</td>';
  14.    if (!isEmpty($lienF) ){
  15.     $contenu.='<td><a href="'.$lienF.'" target=_blank ><img src="../img/pdf1.gif" style="border:0;" alt="" title="" /></a></td>';
  16.    }
  17.    else {
  18.     $contenu.='<td>&nbsp;</td>';
  19.    }
  20.    $contenu.='<td ><a href="?a=edit&amp;idFichier='.$idF.'" ><img src="../img/modifier.gif" style="border:0;" alt="" /></a></td>';
  21.    $contenu.='<td ><a href="?a=delete&amp;idFichier='.$idF.'"  onclick="javascript:return(confirm(\'Etes vous sur de vouloir supprimer ce conseil?\'));"><img src="../img/supprimer.gif" style="border:0;" alt="" /></a></td >';
  22. }


 
La variable $contenu est une sorte de buffer dans lequel, je stocke toute mes informations que j'affiche grace a un template. Si elle vous perturbe vou pouvez la remplacer par une echo'' ;)
 
Voici ensuite par exemple mon bout de code permettant d'ajouter un document via un formulaire :  

Code :
  1. $contenu = '<h2>Ajouter un nouveau fichier</h2><br /><br />';
  2. $contenu.= '<form action="?a=addFic-r" method=post ENCTYPE="multipart/form-data">
  3. <table>
  4.  <tr>
  5.   <td>Intitulé du document : </td>
  6.   <td><input type="text" name="nomFic"><br /></td>
  7.  </tr>
  8.  <tr>
  9.   <td>Lien : </td>
  10.   <td><input type="file" name="fichier"><br /></td>
  11.  </tr>
  12.  <tr>
  13.   <td><input type="submit" name="valider" value="Ajouter ce fichier"></td>
  14.  </tr>
  15.  </table></form>';


Code :
  1. $nomF = trim($_POST['nomFic']);
  2. $aujourdhui=date("d/m/Y" );
  3. if(isEmpty($_POST['fichier'])){ 
  4.  $dest_dossier = 'upload/drh/fichiers/'; 
  5.  $dest_fichier = basename($_FILES['fichier']['name']);
  6.  $nouveauFichier = $dest_dossier . $dest_fichier;
  7.  move_uploaded_file($_FILES['fichier']['tmp_name'], $nouveauFichier);
  8.  mysql_query("INSERT INTO `fichierDRH` ( `idFicDrh` , `nomFicDrh` , `lienFicDrh` , `dateFicDrh`) VALUES ('','$nomF', '$nouveauFichier','$aujourdhui');" );
  9. }else{
  10.  mysql_query("INSERT INTO `fichierDRH` ( `idFicDrh` , `nomFicDrh` , `lienFicDrh` , `dateFicDrh`) VALUES ('','$nomF', '','$aujourdhui');" );
  11. }


 
Enfin, la partie permettant de modifier un document (c'est la que tout se complique pour moi)

Code :
  1. $idF = trim($_GET['idFichier']);
  2.  $query = "SELECT nomFicDrh, lienFicDrh, dateFicDrh FROM fichierDRH WHERE idFicDrh='$idF'";
  3.  $result = mysql_query($query) or die(mysql_error());
  4.  // Recuperation des resultats
  5.  $row = mysql_fetch_row($result);
  6.   $nomF = $row[0];
  7.   $lienF = $row[1];
  8.   $dateF = $row[2];
  9.  $contenu.='<h2>Modifier un fichier</h2>';
  10.  $contenu.='<form action="?a=edit-r&amp;idFichier='.$idF.'" method=post ENCTYPE="multipart/form-data">
  11.   <table>
  12.  <tr>
  13.   <td>Intitulé du document : </td>
  14.   <td><input type="text" name="nomFic" value="'.$nomF.'"><br /></td>
  15.  </tr>
  16.  <tr>
  17.   <td>Lien : </td>
  18.   <td><input type="file" name="fichier" ><br /></td>
  19.  </tr>
  20.  <tr>
  21.   <td><input type="submit" name="valider" value="Ajouter ce fichier"></td>
  22.  </tr>
  23.  </table>
  24. </form>';


Code :
  1. $idF = trim($_GET['idFichier']);
  2. $nomF = trim($_POST['nomFic']);
  3. $aujourdhui = date("d/m/Y" );
  4. if(!(isEmpty($_FILES['fichier']))){
  5.  echo 'traceeeeeeeeeeeeeeeeeee';
  6.  $dest_dossier = 'upload/drh/fichiers/'; 
  7.  $dest_fichier = basename($_FILES['fichier']['name']);
  8.  $nouveauFichier = $dest_dossier . $dest_fichier;
  9.  move_uploaded_file($_FILES['fichier']['tmp_name'], $nouveauFichier);
  10.  mysql_query("UPDATE `fichierDRH` SET `nomFicDrh` = '$nomF', `lienFicDrh` ='$nouveauFichier', `dateFicDrh` = '$aujourdhui' WHERE `idFicDrh` ='$idF' LIMIT 1 " );
  11. }else{
  12.  mysql_query("UPDATE `fichierDRH` SET `nomFicDrh` = '$nomF', `dateFicDrh` = '$aujourdhui' WHERE `idFicDrh` ='$idF' LIMIT 1 " );
  13. }


 
Mon soucis est que, des que je modifieun formulaire sans changer le fichier joint, mon fichier est totalment ecrasé dans la base, meme si le champ 'fichier' du formulaire est vide.Des que je fais une modification dans le document, il est necessaire de remette le fichier joint pour qu'il soit isible dans la base. Cette m"those est vraiment inutilisable par mon commanditaire. Comment faire pour ne pas mettre à jour le champs fichier qui celui si est vide dans le formulaire, non rempli par l'utilisateur
 
Merci, karine

mood
Publicité
Posté le 22-06-2005 à 09:52:53  profilanswer
 

n°1127049
FlorentG
Posté le 22-06-2005 à 09:58:10  profilanswer
 

Code :
  1. if($_FILES['fichier']['error'] != UPLOAD_ERR_NO_FILE) {
  2.   // Un fichier a été uploadé
  3. } else {
  4.   // Fichier vide
  5. }


:)


Message édité par FlorentG le 22-06-2005 à 09:58:18
n°1127089
karinou
Posté le 22-06-2005 à 10:26:43  profilanswer
 

FlorentG, dis moi ce bout de code sert bien à verifier mon upload, je n'ai pas de probleme d'upload, les uploads se font bien correctement, mes fichiers sont bien présents sur le serveur. Mon probleme est quand un document contient un fichier et que je souhaite modifier un champs de ce doument (date, titre, ...) sans modifier le fichier l'appli modifie tt de meme le fichier et remplace dans la base ce fichier par une chaine vide et je ne sais pas pkoi
Si tu avais bien compris ton probleme, je suis désolée, mais dans  ce cas la je n'ai as compris ta question et je ne sais pas comment utilisé ton code


Message édité par karinou le 22-06-2005 à 10:27:05
n°1127093
FlorentG
Posté le 22-06-2005 à 10:28:22  profilanswer
 

Justement, ce bout de code sert à vérifier si un fichier a été uploadé. Ainsi, si $_FILES['fichier']['error'] est égal à UPLOAD_ERR_NO_FILE, alors le champ fichier est vide, donc à toi de ne pas triturer le champ dans la base ;)

n°1127097
karinou
Posté le 22-06-2005 à 10:30:13  profilanswer
 

D'accoooooooooooooooord :) je vais essayer ca, merci beaucoup

n°1127122
karinou
Posté le 22-06-2005 à 10:43:32  profilanswer
 

Bien joué, ca marche nikel encore une fois et bravo :)

n°1127129
FlorentG
Posté le 22-06-2005 à 10:47:24  profilanswer
 

Yeah


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Gestion de documents, formulaires + PHP

 

Sujets relatifs
HELP, Menu déroulant dynamique avec PHP [RESOLU][PHP] verification email, je veux le même !
Bouquin PHP 5 à offrir ?PHP et expression regulières HELP !
HELP Comment dessiner un tableau avec PHP - HTML??Php et serveur cs ?
Jeux PHPle sessions en PHP
Transformer mon code PHP en PHP Objet[JSP/Struts] Problème avec la gestion des retours chariot
Plus de sujets relatifs à : Gestion de documents, formulaires + PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR