PageRenderTime 46ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/gespac/modules/gestion_fichiers/post_fichiers.php

http://gespac.googlecode.com/
PHP | 159 lines | 74 code | 56 blank | 29 comment | 12 complexity | f98fc6cc348466d44cd84314a40f6c3d MD5 | raw file
  1. <?PHP
  2. session_start();
  3. // lib
  4. require_once ('../../fonctions.php');
  5. include_once ('../../config/databases.php');
  6. include_once ('../../../class/Sql.class.php');
  7. include_once ('../../../class/Log.class.php');
  8. $con_gespac = new Sql($host, $user, $pass, $gespac);
  9. $log = new Log ("../../dump/log_sql.sql");
  10. $action = $_GET ["action"];
  11. /*************************************************
  12. *
  13. * SUPPRESSION DU FICHIER
  14. *
  15. ************************************************/
  16. if ( $action == 'suppr') {
  17. $id = $_GET ["id"];
  18. // Le fichier ŕ dégommer
  19. $fichier = $con_gespac->QueryOne ("SELECT fichier_chemin FROM fichiers WHERE fichier_id=$id");
  20. // On test la supression du fichier
  21. if ( unlink ("../../fichiers/$fichier") ) {
  22. // Suppression du fichier dans la DB
  23. $rq_suppr_fichier = "DELETE FROM fichiers WHERE fichier_id=$id";
  24. $con_gespac->Execute($rq_suppr_fichier);
  25. // Logs
  26. $log_texte = "Suppression du fichier $fichier.";
  27. $rq = "INSERT INTO logs ( log_type, log_texte ) VALUES ( 'Suppression fichier', '$log_texte' );";
  28. $con_gespac->Execute($rq);
  29. echo "Le fichier " . $fichier . " a été supprimé.";
  30. } else {
  31. echo "fichier introuvable... Je supprime la ligne dans la base.";
  32. // Suppression du fichier dans la DB
  33. $rq_suppr_fichier = "DELETE FROM fichiers WHERE fichier_id=$id";
  34. $con_gespac->Execute($rq_suppr_fichier);
  35. // Logs
  36. $log_texte = "Suppression du fichier $fichier.";
  37. $rq = "INSERT INTO logs ( log_type, log_texte ) VALUES ( 'Suppression fichier', '$log_texte' );";
  38. $con_gespac->Execute($rq);
  39. }
  40. }
  41. /*************************************************
  42. *
  43. * CREATION DU FICHIER
  44. *
  45. ************************************************/
  46. if ($action == "creation") {
  47. $dossier = '../../fichiers/'; // dossier oů sera déplacé le fichier
  48. $description = $_POST["description"];
  49. $droits = $_POST["droits"];
  50. $user = $_SESSION['login'];
  51. $user_id = $con_gespac->QueryOne("SELECT user_id FROM users WHERE user_logon='$user'");
  52. $fichier = basename($_FILES['myfile']['name']);
  53. $extensions = array('.sh', '.bat', '.vbs', '.php', '.js');
  54. $extension = strrchr($_FILES['myfile']['name'], '.');
  55. //Si l'extension n'est pas dans le tableau
  56. if ( in_array($extension, $extensions) )
  57. $erreur = 'Vous ne pouvez pas uploader ce type de fichier ...';
  58. //Si le fichier existe déjŕ
  59. $existe = $con_gespac->QueryOne("SELECT fichier_id FROM fichiers WHERE fichier_chemin='$fichier'");
  60. if ( $existe )
  61. $erreur = 'Le fichier existe déjŕ ...';
  62. if (!isset($erreur)) { //S'il n'y a pas d'erreur, on upload
  63. //On formate le nom du fichier ici...
  64. $fichier = strtr($fichier, 'ŔÁÂĂÄĹÇČÉĘËĚÍÎĎŇÓÔŐÖŮÚŰÜÝŕáâăäĺçčéęëěíîďđňóôőöůúűüý˙', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  65. $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
  66. //On upload et on teste si la fonction renvoie TRUE
  67. if ( move_uploaded_file($_FILES['myfile']['tmp_name'], $dossier . $fichier) ) {
  68. echo $fichier . " envoyé avec succčs !";
  69. // ************ Traitement du fichier uploadé *****************
  70. $req_ajout_fichier = "INSERT INTO fichiers ( fichier_chemin, fichier_description, fichier_droits, user_id ) VALUES ( '$fichier', '$description', '$droits', $user_id );";
  71. $con_gespac->Execute($req_ajout_fichier);
  72. //Insertion d'un log
  73. $log_texte = "Ajout du fichier $fichier";
  74. $rq = "INSERT INTO logs ( log_type, log_texte ) VALUES ( 'Import IACA', '$log_texte' );";
  75. $con_gespac->Execute($rq);
  76. ?>
  77. <script>window.close();</script>
  78. <?PHP
  79. }
  80. else // En cas d'échec d'upload
  81. echo 'Echec de l\'upload de ' . $dossier . $fichier;
  82. } else // En cas d'erreur dans l'extension
  83. echo $erreur;
  84. }
  85. /*************************************************
  86. *
  87. * MODIFICATION DU FICHIER
  88. *
  89. ************************************************/
  90. if ($action == "mod") {
  91. $fichier_id = $_GET['id'];
  92. $fichier = $_POST["myfile"];
  93. $description = $_POST["description"];
  94. $droits = $_POST["droits"];
  95. $rq_modif_fichier = "UPDATE fichiers SET fichier_description='$description', fichier_droits='$droits' WHERE fichier_id=$fichier_id";
  96. $modif_fichier = $con_gespac->Execute ($rq_modif_fichier);
  97. // On log la requęte SQL
  98. $log->Insert( $rq_modif_fichier );
  99. echo $log_texte = "Le fichier $fichier a été modifié";
  100. $req_log_modif_fichier = "INSERT INTO logs ( log_type, log_texte ) VALUES ( 'Modification fichier', '$log_texte' );";
  101. $con_gespac->Execute ( $req_log_modif_fichier );
  102. }
  103. ?>