begin process at 2012 05 27 19:05:03
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > LISTAGE DE FICHIERS

LISTAGE DE FICHIERS


 Information sur la source

Note :
5 / 10 - par 4 personnes
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichier / Disque Classé sous :PHP, Fichiers, Gestion, Partage, Listage Niveau :Débutant Date de création :15/07/2010 Date de mise à jour :11/09/2010 18:03:35 Vu / téléchargé :4 411 / 631

Auteur : jeromin75

Ecrire un message privé
Commentaire sur cette source (37)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Ce code source permet de lister les fichiers et dossier d'un répertoire sur un serveur.
Uploader des fichiers et créer des dossiers.
Avec partie Admin pour supprimer fichiers et dossiers. Afficher photos en grand et fichiers en iframe.

Source

  • <?php session_start(); ?>
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  • <html xmlns="http://www.w3.org/1999/xhtml">
  • <head>
  • <meta name=&#8221;robot&#8221; content=&#8221;noindex, nofollow&#8221;>
  • <?php include 'function.php';
  • echo "<link rel=\"stylesheet\" href=\"".$pathtofile."style.css\" type=\"text/css\" />";
  • echo "<link rel=\"stylesheet\" href=\"".$pathtofile."ui.css\" type=\"text/css\" />";
  • $dossier="./";
  • if(isset($_GET['dossier']) && ($_GET['dossier']) && strpos($_GET['dossier'],"/..")===false){
  • $dossier = $_GET['dossier']."/";}?>
  • <?php echo "<title>Dossier : ".str_replace("/","",basename($dossier))."</title>";
  • ?>
  • <script type="text/javascript" src="<?php echo $pathtofile;?>jquery.tools.min.js"></script>
  • <script type="text/javascript" src="<?php echo $pathtofile;?>jquery-ui.min.js"></script>
  • </head><body>
  • <script type="text/javascript">
  • <?php
  • $Pic=array();
  • $dir = opendir($dossier);
  • while ($element=readdir($dir)){
  • if (is_file($dossier.$element))
  • if(substr(strpos($element, "gif") == true, -3) || substr(strpos($element, "png") == true, -3) || substr(strpos($element, "jpg") == true, -3) || substr(strpos($element, "bmp") == true, -3) || substr(strpos($element, "JPG") == true, -3)){{$Pic[]=$dossier.$element;}} }
  • closedir($dir);
  • sort($Pic);
  • $pho=0;
  • $tof=0?>
  • var PicTab=[ <?php
  • foreach($Pic as $pho){ echo "\"/".$pho."\",
  • ";
  • $pho++; } ?>];
  • <?php
  • foreach($Pic as $pho){ echo "PicTab[".$tof."]=\"/".$pho."\";
  • "; $tof++; $pho++; }?>
  • plus = 0;
  • moins = 0;
  • function changepho(num)
  • {
  • if (num < parseInt(<?php echo $tof-1; ?>) )
  • plus = num + 1;
  • else
  • plus = 0;
  • if (num > 0)
  • moins = num - 1;
  • else
  • moins = parseInt(<?php echo $tof-1; ?>);
  • document.images["main"].src = PicTab[num];
  • document.images["main"].setAttribute('alt', PicTab[num]);
  • }
  • document.onkeydown=function (e) {
  • if (typeof e == "undefined" ) e = window.event;
  • if(!e) var e = window.event;
  • if(e.keyCode) code = e.keyCode;
  • else if(e.which) code = e.which;
  • <?php $fen=array('frame', 'photo', 'admin', 'connexion');
  • foreach($fen as $i){?>
  • if (e.keyCode == 27 && document.getElementById('<?php echo $i; ?>').style.display == "block") {
  • document.getElementById('<?php echo $i; ?>').style.display = (document.getElementById('<?php echo $i; ?>').style.display == "none") ? "" : "none";
  • } <?php }?>
  • if (e.keyCode == 37 && document.getElementById('photo').style.display=="block") {
  • changepho(moins);
  • }
  • if (e.keyCode == 39 && document.getElementById('photo').style.display=="block") {
  • changepho(plus);
  • }
  • }
  • function suppr(fichier){
  • if(confirm('Etes vous sûr de vouloir supprimer : '+fichier+' ?'))
  • window.location="/suppr.php?dossier=<?php echo $dossier ?>&file="+fichier+"";}
  • function rmdir(fichier){
  • if(confirm('Etes vous sûr de vouloir supprimer : '+fichier+' ?'))
  • window.location="/rmdir.php?dossier=<?php echo $dossier ?>&file="+fichier+"";}
  • </script>
  • <div class="header" align="center">
  • <?php if (isset($_SESSION['pwd']) || isset($_SESSION['admin'])){?>
  • <?php echo "<div class=\"cadena\"><a href=\"/logout.php?dossier=".$dossier."\">D&eacute;connexion</a></div>";}
  • else {echo "<div class=\"cadena\" onClick=\"document.getElementById('connexion').style.display='block';document.getElementById('login').focus();\">Connexion</div>";
  • echo "<div class=\"connexion cadena\" style=\"right:0\" onClick=\"document.getElementById('admin').style.display='block';document.getElementById('admin_pwd').focus();\">Admin</div>";}
  • if ($isadmin || $isconnected){ echo "<div class=\"upload\">T&eacute;l&eacute;charger dans : <strong>".$dossier."</strong></div>"; }
  • else { echo "<div class=\"upload\">Vous &ecirc;tes dans : <strong>".$dossier."</strong></div>"; }?>
  • <div class="welcome">Bienvenue <?php if ($isadmin){echo "Administrateur";}else if(isset($_SESSION['nom'])){echo $_SESSION['nom'];} ?> !</div>
  • <?php if($isadmin): ?>
  • <div class="editeur"><a onClick="document.getElementById('frame').style.display='block';" title="Rédiger un fichier" href="/edit.php?dossier=<?= $dossier?>" target="frame"><img src="<?= $pathtofile?>renommer.gif"/></a></div>
  • <?php endif;
  • if($isadmin || $isconnected):?>
  • <FORM method="POST" class="form" ENCTYPE="multipart/form-data">
  • <input type="text" size="30" name="nouveau_dossier" value="Dossier" onFocus="if(this.value=='Dossier') {this.value=''}" onBlur="if(this.value=='') {this.value='Dossier'}"/>
  • <INPUT class="btn" id="envoyer" type=submit value="Envoyer" onClick="Javascript:document.getElementById('load').style.display='block';this.form.submit();this.disabled=true;this.value='Patientez...'"/></FORM>
  • <?php endif; ?>
  • <FORM method="POST" class="form" ENCTYPE="multipart/form-data">
  • <?php if ($isadmin){
  • echo "<input type=\"hidden\" name=\"nom\" value=\"Administrateur\"/>";}?>
  • <?php if ($isadmin || $isconnected){ ?>
  • <input type="checkbox" class="checkbox" name="checkdir"/>
  • <input type="text" size="30" name="dirname" value="Dossier" onFocus="if(this.value=='Dossier') {this.value=''}" onBlur="if(this.value=='') {this.value='Dossier'}"/>
  • <INPUT type="file" name="fichier"/>
  • <INPUT class="btn" id="envoyer" type=submit value="Envoyer" onClick="Javascript:document.getElementById('load').style.display='block';this.form.submit();this.disabled=true;this.value='Patientez...'"/>
  • <input class="btn" type="button" value="STOP" onClick="Javascript:document.getElementById('load').style.display='none';stop()"/><?php } else {
  • echo "<div class=\"wait\" style=\"margin:0 auto\"><span><strong>Connectez vous pour envoyer des fichiers.</strong></span></div>"; }?></FORM>
  • <div id="load" style="display:none" align="center"><img src="<?php echo $pathtofile ?>loader.gif" height="18" title="Chargement" alt="Chargement" />
  • <span>Chargement en cours ...</span></div>
  • <?php
  • $date = date("j-n-y")." ".date("G")."h".date("i");
  • if ($isadmin){$nom="Administrateur";}
  • else if($isconnected) {$nom = $_SESSION['nom'];}
  • if (isset($_FILES['fichier']['name'])){
  • $ext = substr($_FILES['fichier']['name'], strrpos($_FILES['fichier']['name'], '.'));
  • $filename = substr($_FILES['fichier']['name'], -(strlen($_FILES['fichier']['name'])),(strlen($_FILES['fichier']['name'])-strlen($ext)));
  • $filename=filtre($filename);
  • $fichier = $filename." [".$nom."]".$ext;
  • $size = $_FILES['fichier']['size'];
  • $size=size($size);}
  • if (isset($_POST['nom']) && ($_POST['nom'] == "Nom Prénom") || isset($_POST['nom']) && (strlen($_POST['nom'])<5))
  • echo "<div class=\"erreur\"><span><strong>Un NOM >5 caractères ;) !</strong></span></div>";
  • else if ((isset($_POST['pwd']) && ($_POST['pwd'] != $mdp)))
  • echo "<div class=\"erreur\"><span><strong>Mauvais mot de passe !</strong></span></div>";
  • else if ($isadmin && isset($_POST['checkdir']) && isset($_POST['dirname']) && ($_POST['dirname']=="Dossier" || empty($_POST['dirname'])))
  • echo "<div class=\"erreur\"><span><strong>Spécifier un nom de dossier !</strong></span></div>";
  • else if (isset($_POST['nouveau_dossier']) && $_POST['nouveau_dossier']=="Dossier" || isset($_POST['nouveau_dossier']) && empty($_POST['nouveau_dossier']))
  • echo "<div class=\"erreur\"><span><strong>Spécifier un nom de dossier !</strong></span></div>";
  • else if ($isadmin && isset($_POST['checkdir'])==false && isset($_POST['dirname']) && $_POST['dirname']!="Dossier")
  • echo "<div class=\"erreur\"><span><strong>Veuillez cocher le bouton !</strong></span></div>";
  • else if (isset($_POST['admin_pwd']) && $_POST['admin_pwd']!=$admin_mdp)
  • echo "<div class=\"erreur\"><span><strong>Mauvais mot de passe Administrateur !</strong></span></div>";
  • else if (isset($_POST['admin_pwd']) && $_POST['admin_pwd']=$admin_mdp)
  • echo "<div class=\"success\"><span><strong>Bienvenue Administrateur !</strong></span></div>";
  • else if (isset($_FILES['fichier']['name']) && empty($_FILES['fichier']['name']))
  • echo "<div class=\"erreur\"><span><strong>Choisissez un fichier à uploader</strong></span></div>";
  • if ($isadmin || $isconnected){
  • if (isset($_POST['dirname']) && $_POST['dirname']=="Dossier" && empty($_POST['checkdir']) && isset($_FILES['fichier']['name'])) {
  • $uploadfile = getcwd()."/".$dossier.basename($fichier);
  • if (file_exists($uploadfile)==false){
  • move_uploaded_file($_FILES['fichier']['tmp_name'], $uploadfile);
  • if (file_exists($uploadfile))
  • {fopen("$uploadfile","r" );
  • $fp = fopen ($dossier."logs.txt", "a");
  • fputs($fp, "Le $date,\tDe $nom\n$dossier$fichier\ntaille : $size\n\n");
  • fclose ($fp);
  • echo "<div class=\"success\"><span>Téléchargement effectué : <strong>".$fichier."</strong> !</span></div>";}}
  • else
  • echo "<div class=\"erreur\"><span>Le fichier existe déjâ : <strong>".$fichier."</strong> ! Attendez une minute ...</span></div>";}
  • else if (isset($_POST['dirname']) && isset($_POST['checkdir']) && $_POST['dirname']!="Dossier" && isset($_FILES['fichier']['name']) && ($_FILES['fichier']['name']!="")){
  • mkdir( $dossier.$_POST['dirname']);
  • $dossier=$dossier.$_POST['dirname']."/";
  • $uploadfile = getcwd()."/".$dossier.basename($fichier);
  • move_uploaded_file($_FILES['fichier']['tmp_name'], $uploadfile);
  • if (file_exists($uploadfile))
  • {fopen("$uploadfile","r" );
  • $fp = fopen ($dossier."logs.txt", "a");
  • fputs($fp, "Le $date,\tDe $nom\n$dossier$fichier\ntaille : $size\n\n");
  • fclose ($fp);
  • echo "<div class=\"success\"><span>Téléchargement effectué : <strong>".$fichier."</strong> !<br/>Dossier créer : <strong>".$dossier."</strong> !<br/><img src=\"".$pathtofile."loader.gif\" height=\"18\" title=\"Chargement\" alt=\"Chargement\" /> Patientez vous allez être redirigé</span></div>";
  • echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL= /".$dossier."\"> ";}}}?>
  • <?php if($isadmin || $isconnected):
  • if(isset($_POST['nouveau_dossier']) && $_POST['nouveau_dossier']!="Dossier" && !empty($_POST['nouveau_dossier'])){
  • mkdir($dossier.$_POST['nouveau_dossier']);
  • echo "<div class=\"success\"><span>Dossier créer <strong>".$_POST['nouveau_dossier']."</strong> !</span></div>";
  • echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL= /".$dossier.$_POST['nouveau_dossier']."\"> ";}
  • endif; ?>
  • </div><hr>
  • <table width="100%">
  • <tr>
  • <td width="120px" valign="top" class="border">
  • <div class="total" title="Root"><a href="<?= $siteRoot ?>"><div align="center" class="img"><img height="50" width="50" src="<?= $pathtofile ?>dossier.png" ></div><div align="center" class="name">Root</div></a></div>
  • <?php
  • $dir = opendir("./");
  • $folder=array();
  • while ($element = readdir($dir))
  • {
  • if($element != "." && $element != ".." && is_dir($element) && $element!="files")
  • {
  • if((!$isadmin || !$isconnected) && strpos(substr($element,0,2),"X_")===false OR $isadmin OR $isconnected){
  • if(!$isadmin && strpos(substr($element,0,2),"A_")===false OR $isadmin){
  • $folder[]=$element;}}}}
  • closedir($dir);
  • sort($folder);
  • foreach ($folder as $file){
  • $time=date("j-n-Y H:i:s", filectime($file));
  • $info="Dossier : ".$file."<br/>Date de transfert : ".$time;
  • echo "<div class=\"total\" title=\"".$info."\"><a href=\"/".$file."\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\"".$pathtofile."dossier.png\" ></div><div align=\"center\" class=\"name\">".$file."</div></a></div>";
  • }?>
  • </td>
  • <td width="auto" valign="top">
  • <?php
  • if(strpos($dossier,"X_") && !$isadmin && !$isconnected):
  • echo "<div class=\"erreur\" style=\"margin:30px auto 0;\"><span>ACCES INTERDIT</span></div>";
  • elseif(strpos($dossier,"A_") && !$isadmin):
  • echo "<div class=\"erreur\" style=\"margin:30px auto 0;\"><span>ACCES INTERDIT</span></div>";
  • else :
  • $a=0; $b=0; $c=1; $e=0;
  • $dir = opendir($dossier);
  • $retour=dirname($dossier);
  • $fichier=array();
  • $fol=array();
  • while ($element=readdir($dir)){
  • if(is_dir($dossier.$element)){$fol[]=$element;}
  • else if (is_file($dossier.$element)){$fichier[]=$element;}}
  • closedir($dir);
  • sort($fol);
  • sort($fichier);
  • echo "<div class=\"total\" title=\"R&eacute;actualiser\"><a href=\"/";
  • if(!empty($_GET['dossier'])) echo $_GET['dossier'];
  • echo "\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\"".$pathtofile."refresh.png\" ></div><div align=\"center\" class=\"name\">R&eacute;actualiser</div></a></div>";
  • echo "<div class=\"total\" title=\"Dossier Parent\"><a href=\"/";
  • if($retour!=".") echo $retour;
  • echo "\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\"".$pathtofile."parent.png\"></div><div align=\"center\" class=\"name\">Parent</div></a></div>";
  • foreach ($fol as $foldir){ if ($isadmin){
  • $folder_del = "<div style=\"display:none\" class=\"suppr\" id=\"suppr".$a."\"><a title='Supprimer' onclick='rmdir(\"".$foldir."\")'><img src=\"".$pathtofile."croixrouge.gif\"></a></div><div style=\"display:none\" class=\"rename\" id=\"rename".$e."\"><a title='Renommer / Déplacer' href=\"/?dossier=".$dossier."&fichier=".$foldir."&oldname=".$dossier.$foldir."\"><img src=\"".$pathtofile."renommer.png\"></a></div>";}
  • if($foldir != ".." && $foldir != "." && is_dir($dossier.$foldir) && $foldir!="files")
  • { if((!$isadmin || !$isconnected) && strpos(substr($foldir,0,2),"X_")===false OR $isadmin OR $isconnected){
  • if(!$isadmin && strpos(substr($foldir,0,2),"A_")===false OR $isadmin){
  • $time=date("j-n-Y H:i:s", filectime($dossier.$foldir));
  • $info="Dossier : ".$foldir."<br/>Date de transfert : ".$time;
  • echo "<div class=\"total dossier\" title=\"".$info."\""; if ($isadmin){
  • echo " onMouseOver=\"document.getElementById('suppr".$a."').style.display='block';document.getElementById('rename".$e."').style.display='block'\" onMouseOut=\"document.getElementById('suppr".$a."').style.display='none';document.getElementById('rename".$e."').style.display='none'\"";}
  • echo ">".$folder_del."<a href=\"/".$dossier.$foldir."\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\"".$pathtofile."dossier.png\"></div><div align=\"center\" class=\"name\">".$foldir."</div></a></div>"; $a++; $e++;
  • }}}}
  • foreach ($fichier as $file){
  • if ($isadmin){
  • $file_del = "<div style=\"display:none\" class=\"suppr\" id=\"suppr".$a."\"><a title='Supprimer' onclick='suppr(\"".$file."\")'><img src=\"".$pathtofile."croixrouge.gif\"></a></div><div style=\"display:none\" class=\"rename\" id=\"rename".$e."\"><a title='Renommer / Déplacer' href=\"/?dossier=".$dossier."&fichier=".$file."&oldname=".$dossier.$file."\"><img src=\"".$pathtofile."renommer.png\"></a></div>";}
  • if($file != ".." && $file != "." && strpos($file, ".") == true && is_file($dossier.$file)){
  • if(($file!="logs.txt") or $isadmin){
  • $ext = substr($file, strrpos($file, '.') + 1);
  • $taille=size($taille=filesize($dossier.$file));
  • $time=date("j-n-Y H:i:s", filectime($dossier.$file));
  • $info=$file."<br/>Taille : ".$taille."<br/>Date de transfert : ".$time;
  • if (substr(strpos($file, "gif") == true, -3) || substr(strpos($file, "png") == true, -3) || substr(strpos($file, "jpg") == true, -3) || substr(strpos($file, "bmp") == true, -3) || substr(strpos($file, "JPG") == true, -3))
  • {
  • echo "<div class=\"total fichier\" title=\"<img src='/".$dossier.$file."' class='img-over'/><br>Image : ".$info."\"";
  • if ($isadmin){
  • echo " onMouseOver=\"document.getElementById('suppr".$a."').style.display='block';document.getElementById('rename".$e."').style.display='block'\" onMouseOut=\"document.getElementById('suppr".$a."').style.display='none';document.getElementById('rename".$e."').style.display='none'\"";}
  • echo ">".$file_del."<a onClick=\"Javascript:document.getElementById('photo').style.display='block';changepho(".$b.");\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\""."/".$dossier.$file."\" ></div><div align=\"center\" class=\"name\">".$file."</div></a></div>"; $a++; $e++;$b++;
  • }
  • else if (strpos($file, "mp3") == true || strpos($file, "wma") == true || strpos($file, "aac") == true || strpos($file, "m4a") == true || strpos($file, "ogg") == true || strpos($file, "wav") == true)
  • {
  • echo "<div class=\"total fichier\" title=\"".$info."\""; if ($isadmin){
  • echo " onMouseOver=\"document.getElementById('suppr".$a."').style.display='block';document.getElementById('rename".$e."').style.display='block'\" onMouseOut=\"document.getElementById('suppr".$a."').style.display='none';document.getElementById('rename".$e."').style.display='none'\"";}
  • echo ">".$file_del."<a onClick=\"document.getElementById('frame').style.display='block'\" target=\"frame\" href=\"/".$dossier.$file."\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\"".$pathtofile."mp3.png\" ></div><div align=\"center\" class=\"name\">".$file."</div></a></div>"; $a++; $e++;
  • }
  • else if (strpos($file, "mp4") == true || strpos($file, "mpeg") == true || strpos($file, "mov") == true || strpos($file, "mpg") == true || strpos($file, "avi") == true || strpos($file, "wmv") == true)
  • {
  • echo "<div class=\"total fichier\" title=\"".$info."\""; if ($isadmin){
  • echo " onMouseOver=\"document.getElementById('suppr".$a."').style.display='block';document.getElementById('rename".$e."').style.display='block'\" onMouseOut=\"document.getElementById('suppr".$a."').style.display='none';document.getElementById('rename".$e."').style.display='none'\"";}
  • echo ">".$file_del."<a onClick=\"document.getElementById('frame').style.display='block'\" target=\"frame\" href=\"/".$dossier.$file."\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\"".$pathtofile."vid.png\" ></div><div align=\"center\" class=\"name\">".$file."</div></a></div>"; $a++; $e++;
  • }
  • else if (strpos($file, "db") == true || strpos($file, "htaccess") == true || strpos($file, "htacces") == true || strpos($file, "htpasswd") == true || strpos($file, "php") == true )
  • {}
  • else if (file_exists($pathnoslash.$ext.".png"))
  • {
  • echo "<div class=\"total fichier\" title=\"".$info."\""; if ($isadmin){
  • echo "onMouseOver=\"document.getElementById('suppr".$a."').style.display='block';document.getElementById('rename".$e."').style.display='block';";
  • if (strpos($file, "txt") == true || strpos($file, "html") == true || strpos($file, "css") == true || strpos($file, "js") == true)
  • echo "document.getElementById('edit".$c."').style.display='block'";
  • echo "\" onMouseOut=\"document.getElementById('suppr".$a."').style.display='none';document.getElementById('rename".$e."').style.display='none';";
  • if (strpos($file, "txt") == true || strpos($file, "html") == true || strpos($file, "css") == true || strpos($file, "js") == true)
  • echo "document.getElementById('edit".$c."').style.display='none'";}
  • echo "\">".$file_del;
  • if (strpos($file, "txt") == true || strpos($file, "html") == true || strpos($file, "css") == true || strpos($file, "js") == true){
  • echo "<div style=\"display:none\" class=\"edit\" id=\"edit".$c."\"><a title='Editer le texte' onClick=\"document.getElementById('frame').style.display='block'\" target=\"frame\" href=\"/edit?dossier=".$dossier."&fichier=".$file."\"><img src=\"".$pathtofile."renommer.gif\"></a></div>";}
  • echo "<a href=\"/".$dossier.$file."\" onClick=\"document.getElementById('frame').style.display='block'\" target=\"frame\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\"".$pathtofile.$ext.".png\" ></div><div align=\"center\" class=\"name\">".$file."</div></a></div>";$a++; $e++;$c++;
  • }
  • else
  • {
  • echo "<div class=\"total fichier\" title=\"".$info."\""; if ($isadmin){
  • echo " onMouseOver=\"document.getElementById('suppr".$a."').style.display='block';document.getElementById('rename".$e."').style.display='block'\" onMouseOut=\"document.getElementById('suppr".$a."').style.display='none';document.getElementById('rename".$e."').style.display='none'\"";}
  • echo ">".$file_del."<a onClick=\"document.getElementById('frame').style.display='block'\" target=\"frame\" href=\"".$dossier.$file."\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\"".$pathtofile."fichier.png\" ></div><div align=\"center\" class=\"name\">".$file."</div></a></div>"; $a++; $e++;
  • }}}}
  • endif;?></td>
  • </table>
  • <div id="frame" class="frame" style="display:none">
  • <a href="logs.txt" target="frame"><img onClick="document.getElementById('frame').style.display='none'" class="close" src="<?php echo $pathtofile ?>croixfermer.png" title="Fermer"/></a>
  • <iframe scrolling="auto" frameborder="no" name="frame"></iframe></div>
  • <div id="photo" class="photo frame" style="display:none">
  • <img onClick="document.getElementById('photo').style.display='none'" class="close" src="<?php echo $pathtofile ?>croixfermer.png" title="Fermer"/>
  • <img onClick="document.getElementById('photo').style.display='none'" class="image-gde" title="Fermer" border="0" name="main"/></div>
  • <?php if(!$isadmin && !$isconnected): ?>
  • <div id="admin" class="admin frame" style="display:none">
  • <img onClick="document.getElementById('admin').style.display='none'" class="close" src="<?php echo $pathtofile ?>croixfermer.png" title="Fermer"/>
  • <FORM method="POST" name="admin_form" ENCTYPE="multipart/form-data">
  • <input type="text" size="15" name="admin_pwd" id="admin_pwd" value="mot de passe" onFocus="if(this.value=='mot de passe') {this.value='';this.type='password'}" onBlur="if(this.value=='') {this.value='mot de passe';this.type='text'}"/>
  • <INPUT class="btn" style="" id="envoyer" type=submit value="Envoyer" onClick="Javascript:document.getElementById('admin').style.display='block';"/>
  • </FORM>
  • <?php if (isset($_POST['admin_pwd']) && $_POST['admin_pwd']==$admin_mdp){
  • $_SESSION['admin']=$admin_mdp;
  • echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL= /";
  • if(!empty($_GET['dossier'])) echo $_GET['dossier'];
  • echo "\">";}?></div>
  • <div id="connexion" class="admin frame" style="display:none">
  • <img onClick="document.getElementById('connexion').style.display='none'" class="close" src="<?php echo $pathtofile ?>croixfermer.png" title="Fermer"/>
  • <FORM method="POST" name="admin_form" ENCTYPE="multipart/form-data">
  • *<input type="text" size="20" name="nom" id="login" value="<?php if(isset($_POST['nom'])){echo $_POST['nom'];} else {echo "Nom Prénom"; } ?>" onFocus="if(this.value=='Nom Prénom') {this.value=''}" onBlur="if(this.value=='') {this.value='Nom Prénom'}"/><br/><br/>
  • *<input type="text" size="10" name="pwd" value="mot de passe" onFocus="if(this.value=='mot de passe') {this.value='';this.type='password'}" onBlur="if(this.value=='') {this.value='mot de passe';this.type='text'}"/>
  • <INPUT class="btn" style="" id="envoyer" type=submit value="Envoyer" onClick="Javascript:document.getElementById('connection').style.display='block';"/>
  • </FORM>
  • <?php if ((isset($_POST['pwd']) && ($_POST['pwd'] == $mdp) && isset($_POST['nom']) && ($_POST['nom'] != "Nom Prénom") && strlen($_POST['nom'])>5)){
  • $_SESSION['nom']=filtre($_POST['nom']);
  • $_SESSION['pwd']=$mdp;
  • echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL= /".$_GET['dossier']."\">";}?></div>
  • <?php elseif ($isadmin):
  • if(isset($_GET['oldname'])){ ?>
  • <div id="rename_div" class="admin frame">
  • <a href="/<?= $dossier ?>"><img class="close" src="<?php echo $pathtofile ?>croixfermer.png" title="Fermer"/></a>
  • <FORM method="POST" action="rename.php?dossier=<?php echo $_GET['dossier'] ?>&fichier=<?php echo $_GET['fichier'] ?>&oldname=<?php echo $_GET['oldname'] ?>&newname=<?php echo $_POST['dir'].$_POST['newname'] ?>" name="rename_form" ENCTYPE="multipart/form-data">
  • <input type="text" size="70" name="oldname" id="oldname" value="<?php echo $_GET['oldname'] ?>" disabled="disabled"/><br/><br/>
  • <select title="Laisser vide pour ne pas changer" name="dir">
  • <option value="">This one : <?= $dossier ?></option>
  • <option value="./">Root</option>
  • <?php
  • ScanDirectory('.'); ?>
  • </select>
  • *<input type="text" size="50" name="newname" id="newname" value="<?= $_GET['fichier'] ?>"/>
  • <INPUT class="btn" style="" id="envoyer" type=submit value="Envoyer" onClick="Javascript:document.getElementById('admin').style.display='block';"/>
  • </FORM>
  • <?php }?></div>
  • <?php endif; ?>
  • <script type="text/javascript">
  • $("table div[title]").tooltip({ effect: 'slide',position :'bottom center'});
  • /*$(".fichier").draggable({drag: function() {zIndex:2700;
  • $(this).css({'background-color': '#0F0'});}});
  • $(".dossier").droppable({
  • drop: function(event, ui) {
  • $(this).css({'background-color': '#f00'});
  • alert('<?php //echo "fichier : ".$dossier.$file?>\n<?php //echo "dossier : ".$dossier.$foldir ?>');
  • //window.location.href="<?php //echo $_GET['dossier']?>/<?php //echo $file?>";
  • }});*/
  • </script>
  • </body>
  • </html>
<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name=&#8221;robot&#8221; content=&#8221;noindex, nofollow&#8221;>
<?php include 'function.php';
echo "<link rel=\"stylesheet\" href=\"".$pathtofile."style.css\" type=\"text/css\" />";
echo "<link rel=\"stylesheet\" href=\"".$pathtofile."ui.css\" type=\"text/css\" />";
$dossier="./";
if(isset($_GET['dossier']) && ($_GET['dossier']) && strpos($_GET['dossier'],"/..")===false){
$dossier = $_GET['dossier']."/";}?>
<?php echo "<title>Dossier : ".str_replace("/","",basename($dossier))."</title>";
?>
<script type="text/javascript" src="<?php echo $pathtofile;?>jquery.tools.min.js"></script>
<script type="text/javascript" src="<?php echo $pathtofile;?>jquery-ui.min.js"></script>
</head><body>
<script type="text/javascript">
	<?php 
  $Pic=array();
  $dir = opendir($dossier);
	while ($element=readdir($dir)){
		if (is_file($dossier.$element))
			if(substr(strpos($element, "gif") == true, -3) || substr(strpos($element, "png") == true, -3) || substr(strpos($element, "jpg") == true, -3) || substr(strpos($element, "bmp") == true, -3) || substr(strpos($element, "JPG") == true, -3)){{$Pic[]=$dossier.$element;}}	}
		closedir($dir);
		sort($Pic);
		$pho=0;
		$tof=0?> 
    var PicTab=[ <?php
		foreach($Pic as $pho){ echo "\"/".$pho."\",
		"; 
			$pho++; }	?>];
	<?php
		foreach($Pic as $pho){ echo "PicTab[".$tof."]=\"/".$pho."\";
		"; $tof++; $pho++; }?> 
		
 plus = 0;
 moins = 0; 
 
	function changepho(num)
{
 if (num < parseInt(<?php echo $tof-1; ?>) )
plus = num + 1;
 else
 plus = 0;
 if (num > 0)
 moins = num - 1;
 else
 moins = parseInt(<?php echo $tof-1; ?>);

 document.images["main"].src = PicTab[num];
 document.images["main"].setAttribute('alt', PicTab[num]);
 } 
 document.onkeydown=function (e) {
 if (typeof e == "undefined" ) e = window.event;
 if(!e) var e = window.event;
 if(e.keyCode) code = e.keyCode;
 else if(e.which) code = e.which;
 <?php	 $fen=array('frame', 'photo', 'admin', 'connexion');
 foreach($fen as $i){?>
 if (e.keyCode == 27 && document.getElementById('<?php echo $i; ?>').style.display == "block") {
 document.getElementById('<?php echo $i; ?>').style.display = (document.getElementById('<?php echo $i; ?>').style.display == "none") ? "" : "none";
 }	 <?php }?>
 if (e.keyCode == 37 && document.getElementById('photo').style.display=="block") {
 changepho(moins);
 }
 if (e.keyCode == 39 && document.getElementById('photo').style.display=="block") {
 changepho(plus);
 }
}
function suppr(fichier){
	if(confirm('Etes vous sûr de vouloir supprimer : '+fichier+' ?'))
	window.location="/suppr.php?dossier=<?php echo $dossier ?>&file="+fichier+"";}
function rmdir(fichier){
	if(confirm('Etes vous sûr de vouloir supprimer : '+fichier+' ?'))
	window.location="/rmdir.php?dossier=<?php echo $dossier ?>&file="+fichier+"";}
</script>
<div class="header" align="center">
<?php if (isset($_SESSION['pwd']) || isset($_SESSION['admin'])){?>
<?php echo "<div class=\"cadena\"><a href=\"/logout.php?dossier=".$dossier."\">D&eacute;connexion</a></div>";}
else {echo "<div class=\"cadena\" onClick=\"document.getElementById('connexion').style.display='block';document.getElementById('login').focus();\">Connexion</div>";
echo "<div class=\"connexion cadena\" style=\"right:0\" onClick=\"document.getElementById('admin').style.display='block';document.getElementById('admin_pwd').focus();\">Admin</div>";}
if ($isadmin || $isconnected){ echo "<div class=\"upload\">T&eacute;l&eacute;charger dans : <strong>".$dossier."</strong></div>"; }
else { echo "<div class=\"upload\">Vous &ecirc;tes dans : <strong>".$dossier."</strong></div>"; }?>
<div class="welcome">Bienvenue <?php if ($isadmin){echo "Administrateur";}else if(isset($_SESSION['nom'])){echo $_SESSION['nom'];} ?> !</div>
<?php if($isadmin): ?>
<div class="editeur"><a onClick="document.getElementById('frame').style.display='block';" title="Rédiger un fichier" href="/edit.php?dossier=<?= $dossier?>" target="frame"><img src="<?= $pathtofile?>renommer.gif"/></a></div>
<?php  endif;
if($isadmin || $isconnected):?>
<FORM method="POST" class="form" ENCTYPE="multipart/form-data">
<input type="text" size="30" name="nouveau_dossier" value="Dossier" onFocus="if(this.value=='Dossier') {this.value=''}" onBlur="if(this.value=='') {this.value='Dossier'}"/>
          <INPUT class="btn" id="envoyer" type=submit value="Envoyer" onClick="Javascript:document.getElementById('load').style.display='block';this.form.submit();this.disabled=true;this.value='Patientez...'"/></FORM>
<?php endif; ?>
<FORM method="POST" class="form" ENCTYPE="multipart/form-data">
 <?php if ($isadmin){
		  echo "<input type=\"hidden\" name=\"nom\" value=\"Administrateur\"/>";}?>
<?php if ($isadmin || $isconnected){ ?>
     <input type="checkbox" class="checkbox" name="checkdir"/>
	 <input type="text" size="30" name="dirname" value="Dossier" onFocus="if(this.value=='Dossier') {this.value=''}" onBlur="if(this.value=='') {this.value='Dossier'}"/>
          <INPUT type="file" name="fichier"/>
          <INPUT class="btn" id="envoyer" type=submit value="Envoyer" onClick="Javascript:document.getElementById('load').style.display='block';this.form.submit();this.disabled=true;this.value='Patientez...'"/>
          <input class="btn" type="button" value="STOP" onClick="Javascript:document.getElementById('load').style.display='none';stop()"/><?php } else {
echo "<div class=\"wait\" style=\"margin:0 auto\"><span><strong>Connectez vous pour envoyer des fichiers.</strong></span></div>"; }?></FORM>
    <div id="load" style="display:none" align="center"><img src="<?php echo $pathtofile ?>loader.gif" height="18" title="Chargement" alt="Chargement" />
  <span>Chargement en cours ...</span></div>
<?php

$date = date("j-n-y")." ".date("G")."h".date("i");
	if ($isadmin){$nom="Administrateur";}
	else if($isconnected) {$nom = $_SESSION['nom'];}
	if (isset($_FILES['fichier']['name'])){
	$ext = substr($_FILES['fichier']['name'], strrpos($_FILES['fichier']['name'], '.'));
	$filename = substr($_FILES['fichier']['name'], -(strlen($_FILES['fichier']['name'])),(strlen($_FILES['fichier']['name'])-strlen($ext)));
		$filename=filtre($filename);
		$fichier = $filename." [".$nom."]".$ext;
		$size = $_FILES['fichier']['size'];
		$size=size($size);}

if (isset($_POST['nom']) && ($_POST['nom'] == "Nom Prénom") || isset($_POST['nom']) && (strlen($_POST['nom'])<5))
echo "<div class=\"erreur\"><span><strong>Un NOM  >5 caractères ;) !</strong></span></div>";
else if ((isset($_POST['pwd']) && ($_POST['pwd'] != $mdp)))
echo "<div class=\"erreur\"><span><strong>Mauvais mot de passe !</strong></span></div>";
else if ($isadmin && isset($_POST['checkdir']) && isset($_POST['dirname']) && ($_POST['dirname']=="Dossier" || empty($_POST['dirname'])))
echo "<div class=\"erreur\"><span><strong>Spécifier un nom de dossier !</strong></span></div>";
else if (isset($_POST['nouveau_dossier']) && $_POST['nouveau_dossier']=="Dossier" || isset($_POST['nouveau_dossier']) && empty($_POST['nouveau_dossier']))
echo "<div class=\"erreur\"><span><strong>Spécifier un nom de dossier !</strong></span></div>";
else if ($isadmin && isset($_POST['checkdir'])==false && isset($_POST['dirname']) && $_POST['dirname']!="Dossier")
echo "<div class=\"erreur\"><span><strong>Veuillez cocher le bouton !</strong></span></div>";
else  if (isset($_POST['admin_pwd']) && $_POST['admin_pwd']!=$admin_mdp)
echo "<div class=\"erreur\"><span><strong>Mauvais mot de passe Administrateur !</strong></span></div>";
else  if (isset($_POST['admin_pwd']) && $_POST['admin_pwd']=$admin_mdp)
echo "<div class=\"success\"><span><strong>Bienvenue Administrateur !</strong></span></div>";
else if (isset($_FILES['fichier']['name']) && empty($_FILES['fichier']['name']))
echo "<div class=\"erreur\"><span><strong>Choisissez un fichier à uploader</strong></span></div>";

if ($isadmin || $isconnected){
if (isset($_POST['dirname']) && $_POST['dirname']=="Dossier" && empty($_POST['checkdir']) && isset($_FILES['fichier']['name']))	{
	$uploadfile = getcwd()."/".$dossier.basename($fichier);
	if (file_exists($uploadfile)==false){
		move_uploaded_file($_FILES['fichier']['tmp_name'], $uploadfile);
		if (file_exists($uploadfile))
			{fopen("$uploadfile","r" );
			$fp = fopen ($dossier."logs.txt", "a");
			fputs($fp, "Le $date,\tDe $nom\n$dossier$fichier\ntaille : $size\n\n");
			fclose ($fp);
			echo "<div class=\"success\"><span>Téléchargement effectué : <strong>".$fichier."</strong> !</span></div>";}}
	else
		echo "<div class=\"erreur\"><span>Le fichier existe déjâ : <strong>".$fichier."</strong> ! Attendez une minute ...</span></div>";}

else if (isset($_POST['dirname']) && isset($_POST['checkdir']) && $_POST['dirname']!="Dossier" && isset($_FILES['fichier']['name']) && ($_FILES['fichier']['name']!="")){
	mkdir( $dossier.$_POST['dirname']);
	$dossier=$dossier.$_POST['dirname']."/";
	$uploadfile = getcwd()."/".$dossier.basename($fichier);
	move_uploaded_file($_FILES['fichier']['tmp_name'], $uploadfile);
		if (file_exists($uploadfile))
		{fopen("$uploadfile","r" );
		$fp = fopen ($dossier."logs.txt", "a");
		fputs($fp, "Le $date,\tDe $nom\n$dossier$fichier\ntaille : $size\n\n");
		fclose ($fp);
		echo "<div class=\"success\"><span>Téléchargement effectué : <strong>".$fichier."</strong> !<br/>Dossier créer : <strong>".$dossier."</strong> !<br/><img src=\"".$pathtofile."loader.gif\" height=\"18\" title=\"Chargement\" alt=\"Chargement\" /> Patientez vous allez être redirigé</span></div>";
		echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL= /".$dossier."\"> ";}}}?>
<?php if($isadmin || $isconnected):
if(isset($_POST['nouveau_dossier']) && $_POST['nouveau_dossier']!="Dossier" && !empty($_POST['nouveau_dossier'])){
	mkdir($dossier.$_POST['nouveau_dossier']);
	echo "<div class=\"success\"><span>Dossier créer <strong>".$_POST['nouveau_dossier']."</strong> !</span></div>";
	echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL= /".$dossier.$_POST['nouveau_dossier']."\"> ";}
endif; ?>

</div><hr>
<table width="100%">
<tr>
<td width="120px" valign="top" class="border">
<div class="total" title="Root"><a href="<?= $siteRoot ?>"><div align="center" class="img"><img height="50" width="50" src="<?= $pathtofile ?>dossier.png" ></div><div align="center" class="name">Root</div></a></div>
<?php
  $dir = opendir("./");
  $folder=array();
  while ($element = readdir($dir))
  { 
if($element != "." && $element != ".." && is_dir($element) && $element!="files")
	{ 
	if((!$isadmin || !$isconnected) && strpos(substr($element,0,2),"X_")===false OR $isadmin OR $isconnected){
		if(!$isadmin && strpos(substr($element,0,2),"A_")===false OR $isadmin){
	$folder[]=$element;}}}}
	closedir($dir);
	sort($folder);
	foreach ($folder as $file){
			$time=date("j-n-Y H:i:s", filectime($file));
			$info="Dossier : ".$file."<br/>Date de transfert : ".$time;
		echo "<div class=\"total\" title=\"".$info."\"><a href=\"/".$file."\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\"".$pathtofile."dossier.png\" ></div><div align=\"center\" class=\"name\">".$file."</div></a></div>";
	}?>
</td>
<td width="auto" valign="top">
<?php
if(strpos($dossier,"X_") && !$isadmin && !$isconnected):
echo "<div class=\"erreur\" style=\"margin:30px auto 0;\"><span>ACCES INTERDIT</span></div>";
elseif(strpos($dossier,"A_") && !$isadmin):
echo "<div class=\"erreur\" style=\"margin:30px auto 0;\"><span>ACCES INTERDIT</span></div>";
else :
$a=0; $b=0; $c=1; $e=0;
  $dir = opendir($dossier);
	$retour=dirname($dossier);
	$fichier=array();
	$fol=array();
	while ($element=readdir($dir)){
		if(is_dir($dossier.$element)){$fol[]=$element;}
		else if (is_file($dossier.$element)){$fichier[]=$element;}}
		closedir($dir);
		sort($fol);
		sort($fichier);
echo "<div class=\"total\" title=\"R&eacute;actualiser\"><a href=\"/";
if(!empty($_GET['dossier'])) echo $_GET['dossier'];
echo "\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\"".$pathtofile."refresh.png\" ></div><div align=\"center\" class=\"name\">R&eacute;actualiser</div></a></div>";
echo "<div class=\"total\" title=\"Dossier Parent\"><a  href=\"/";
if($retour!=".") echo $retour;
echo "\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\"".$pathtofile."parent.png\"></div><div align=\"center\" class=\"name\">Parent</div></a></div>";
	
  foreach ($fol as $foldir){	if ($isadmin){
		$folder_del = "<div style=\"display:none\" class=\"suppr\" id=\"suppr".$a."\"><a title='Supprimer'  onclick='rmdir(\"".$foldir."\")'><img src=\"".$pathtofile."croixrouge.gif\"></a></div><div style=\"display:none\" class=\"rename\" id=\"rename".$e."\"><a title='Renommer / Déplacer' href=\"/?dossier=".$dossier."&fichier=".$foldir."&oldname=".$dossier.$foldir."\"><img src=\"".$pathtofile."renommer.png\"></a></div>";}
	if($foldir != ".." && $foldir != "." && is_dir($dossier.$foldir) && $foldir!="files")
	{ if((!$isadmin || !$isconnected) && strpos(substr($foldir,0,2),"X_")===false OR $isadmin OR $isconnected){
			if(!$isadmin && strpos(substr($foldir,0,2),"A_")===false OR $isadmin){
		$time=date("j-n-Y H:i:s", filectime($dossier.$foldir));
		$info="Dossier : ".$foldir."<br/>Date de transfert : ".$time;
	echo "<div class=\"total dossier\" title=\"".$info."\"";	if ($isadmin){
	echo " onMouseOver=\"document.getElementById('suppr".$a."').style.display='block';document.getElementById('rename".$e."').style.display='block'\" onMouseOut=\"document.getElementById('suppr".$a."').style.display='none';document.getElementById('rename".$e."').style.display='none'\"";}
	echo ">".$folder_del."<a href=\"/".$dossier.$foldir."\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\"".$pathtofile."dossier.png\"></div><div align=\"center\" class=\"name\">".$foldir."</div></a></div>"; $a++; $e++;		
	}}}}
	foreach ($fichier as $file){
	if ($isadmin){
		$file_del = "<div style=\"display:none\" class=\"suppr\" id=\"suppr".$a."\"><a title='Supprimer' onclick='suppr(\"".$file."\")'><img src=\"".$pathtofile."croixrouge.gif\"></a></div><div style=\"display:none\" class=\"rename\" id=\"rename".$e."\"><a title='Renommer / Déplacer' href=\"/?dossier=".$dossier."&fichier=".$file."&oldname=".$dossier.$file."\"><img src=\"".$pathtofile."renommer.png\"></a></div>";}
	if($file != ".." && $file != "." && strpos($file, ".") == true && is_file($dossier.$file)){
		if(($file!="logs.txt") or $isadmin){
			$ext = substr($file, strrpos($file, '.') + 1);
			$taille=size($taille=filesize($dossier.$file));
			$time=date("j-n-Y H:i:s", filectime($dossier.$file));
			$info=$file."<br/>Taille : ".$taille."<br/>Date de transfert : ".$time;
		if (substr(strpos($file, "gif") == true, -3) || substr(strpos($file, "png") == true, -3) || substr(strpos($file, "jpg") == true, -3) || substr(strpos($file, "bmp") == true, -3) || substr(strpos($file, "JPG") == true, -3))
			{
	echo "<div class=\"total fichier\" title=\"<img src='/".$dossier.$file."' class='img-over'/><br>Image : ".$info."\"";	
	if ($isadmin){
	echo " onMouseOver=\"document.getElementById('suppr".$a."').style.display='block';document.getElementById('rename".$e."').style.display='block'\" onMouseOut=\"document.getElementById('suppr".$a."').style.display='none';document.getElementById('rename".$e."').style.display='none'\"";}
	echo ">".$file_del."<a onClick=\"Javascript:document.getElementById('photo').style.display='block';changepho(".$b.");\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\""."/".$dossier.$file."\" ></div><div align=\"center\" class=\"name\">".$file."</div></a></div>"; $a++; $e++;$b++;
			}
		else if (strpos($file, "mp3") == true || strpos($file, "wma") == true || strpos($file, "aac") == true || strpos($file, "m4a") == true || strpos($file, "ogg") == true || strpos($file, "wav") == true)
			{
	echo "<div class=\"total fichier\" title=\"".$info."\"";	if ($isadmin){
	echo " onMouseOver=\"document.getElementById('suppr".$a."').style.display='block';document.getElementById('rename".$e."').style.display='block'\" onMouseOut=\"document.getElementById('suppr".$a."').style.display='none';document.getElementById('rename".$e."').style.display='none'\"";}
	echo ">".$file_del."<a onClick=\"document.getElementById('frame').style.display='block'\" target=\"frame\" href=\"/".$dossier.$file."\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\"".$pathtofile."mp3.png\" ></div><div align=\"center\" class=\"name\">".$file."</div></a></div>"; $a++; $e++;
			}
		else if (strpos($file, "mp4") == true || strpos($file, "mpeg") == true || strpos($file, "mov") == true || strpos($file, "mpg") == true || strpos($file, "avi") == true || strpos($file, "wmv") == true)
			{
	echo "<div class=\"total fichier\" title=\"".$info."\"";	if ($isadmin){
	echo " onMouseOver=\"document.getElementById('suppr".$a."').style.display='block';document.getElementById('rename".$e."').style.display='block'\" onMouseOut=\"document.getElementById('suppr".$a."').style.display='none';document.getElementById('rename".$e."').style.display='none'\"";}
	echo ">".$file_del."<a onClick=\"document.getElementById('frame').style.display='block'\" target=\"frame\" href=\"/".$dossier.$file."\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\"".$pathtofile."vid.png\" ></div><div align=\"center\" class=\"name\">".$file."</div></a></div>"; $a++; $e++;
			}
		else if (strpos($file, "db") == true || strpos($file, "htaccess") == true || strpos($file, "htacces") == true || strpos($file, "htpasswd") == true  || strpos($file, "php") == true )
			{}
		else if (file_exists($pathnoslash.$ext.".png"))
			{
	echo "<div class=\"total fichier\" title=\"".$info."\"";	if ($isadmin){
	echo "onMouseOver=\"document.getElementById('suppr".$a."').style.display='block';document.getElementById('rename".$e."').style.display='block';";
	if (strpos($file, "txt") == true || strpos($file, "html") == true || strpos($file, "css") == true || strpos($file, "js") == true)
	echo "document.getElementById('edit".$c."').style.display='block'";
	echo "\" onMouseOut=\"document.getElementById('suppr".$a."').style.display='none';document.getElementById('rename".$e."').style.display='none';";
	if (strpos($file, "txt") == true || strpos($file, "html") == true || strpos($file, "css") == true || strpos($file, "js") == true)
	echo "document.getElementById('edit".$c."').style.display='none'";}
	echo "\">".$file_del;
	if (strpos($file, "txt") == true || strpos($file, "html") == true || strpos($file, "css") == true || strpos($file, "js") == true){
	echo "<div style=\"display:none\" class=\"edit\" id=\"edit".$c."\"><a title='Editer le texte' onClick=\"document.getElementById('frame').style.display='block'\" target=\"frame\" href=\"/edit?dossier=".$dossier."&fichier=".$file."\"><img src=\"".$pathtofile."renommer.gif\"></a></div>";}
	echo "<a href=\"/".$dossier.$file."\" onClick=\"document.getElementById('frame').style.display='block'\" target=\"frame\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\"".$pathtofile.$ext.".png\" ></div><div align=\"center\" class=\"name\">".$file."</div></a></div>";$a++; $e++;$c++;
			}
		else
			{
	echo "<div class=\"total fichier\" title=\"".$info."\"";	if ($isadmin){
	echo " onMouseOver=\"document.getElementById('suppr".$a."').style.display='block';document.getElementById('rename".$e."').style.display='block'\" onMouseOut=\"document.getElementById('suppr".$a."').style.display='none';document.getElementById('rename".$e."').style.display='none'\"";}
	echo ">".$file_del."<a onClick=\"document.getElementById('frame').style.display='block'\" target=\"frame\" href=\"".$dossier.$file."\"><div align=\"center\" class=\"img\"><img height=\"50\" width=\"50\" src=\"".$pathtofile."fichier.png\" ></div><div align=\"center\" class=\"name\">".$file."</div></a></div>"; $a++; $e++;
			}}}}
	endif;?></td>
</table>
<div id="frame" class="frame" style="display:none">
<a href="logs.txt" target="frame"><img onClick="document.getElementById('frame').style.display='none'" class="close" src="<?php echo $pathtofile ?>croixfermer.png" title="Fermer"/></a>
<iframe scrolling="auto" frameborder="no" name="frame"></iframe></div>

<div id="photo" class="photo frame" style="display:none">
<img onClick="document.getElementById('photo').style.display='none'" class="close" src="<?php echo $pathtofile ?>croixfermer.png" title="Fermer"/>
<img onClick="document.getElementById('photo').style.display='none'" class="image-gde" title="Fermer" border="0" name="main"/></div>

<?php if(!$isadmin && !$isconnected): ?>

<div id="admin" class="admin frame" style="display:none">
<img onClick="document.getElementById('admin').style.display='none'" class="close" src="<?php echo $pathtofile ?>croixfermer.png" title="Fermer"/>
<FORM method="POST" name="admin_form" ENCTYPE="multipart/form-data">
<input type="text" size="15" name="admin_pwd" id="admin_pwd" value="mot de passe" onFocus="if(this.value=='mot de passe') {this.value='';this.type='password'}" onBlur="if(this.value=='') {this.value='mot de passe';this.type='text'}"/>
 <INPUT class="btn" style="" id="envoyer" type=submit value="Envoyer" onClick="Javascript:document.getElementById('admin').style.display='block';"/>
</FORM>
<?php if (isset($_POST['admin_pwd']) && $_POST['admin_pwd']==$admin_mdp){
$_SESSION['admin']=$admin_mdp;
  echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL= /";
if(!empty($_GET['dossier'])) echo $_GET['dossier'];
  echo "\">";}?></div>
  
<div id="connexion" class="admin frame" style="display:none">
<img onClick="document.getElementById('connexion').style.display='none'" class="close" src="<?php echo $pathtofile ?>croixfermer.png" title="Fermer"/>
<FORM method="POST" name="admin_form" ENCTYPE="multipart/form-data">
		  *<input type="text" size="20" name="nom" id="login" value="<?php if(isset($_POST['nom'])){echo $_POST['nom'];} else {echo "Nom Prénom"; } ?>" onFocus="if(this.value=='Nom Prénom') {this.value=''}" onBlur="if(this.value=='') {this.value='Nom Prénom'}"/><br/><br/>
          *<input type="text" size="10" name="pwd" value="mot de passe" onFocus="if(this.value=='mot de passe') {this.value='';this.type='password'}" onBlur="if(this.value=='') {this.value='mot de passe';this.type='text'}"/>
<INPUT class="btn" style="" id="envoyer" type=submit value="Envoyer" onClick="Javascript:document.getElementById('connection').style.display='block';"/>
</FORM>
<?php if ((isset($_POST['pwd']) && ($_POST['pwd'] == $mdp) && isset($_POST['nom']) && ($_POST['nom'] != "Nom Prénom") && strlen($_POST['nom'])>5)){
$_SESSION['nom']=filtre($_POST['nom']);
$_SESSION['pwd']=$mdp;
echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL= /".$_GET['dossier']."\">";}?></div>

<?php elseif ($isadmin): 
if(isset($_GET['oldname'])){ ?>
<div id="rename_div" class="admin frame">
<a href="/<?= $dossier ?>"><img class="close" src="<?php echo $pathtofile ?>croixfermer.png" title="Fermer"/></a>
<FORM method="POST" action="rename.php?dossier=<?php echo $_GET['dossier'] ?>&fichier=<?php echo $_GET['fichier'] ?>&oldname=<?php echo $_GET['oldname'] ?>&newname=<?php echo $_POST['dir'].$_POST['newname'] ?>" name="rename_form" ENCTYPE="multipart/form-data">
<input type="text" size="70" name="oldname" id="oldname" value="<?php echo $_GET['oldname'] ?>" disabled="disabled"/><br/><br/>
<select title="Laisser vide pour ne pas changer" name="dir">
<option value="">This one : <?= $dossier ?></option>
<option value="./">Root</option>
<?php 
ScanDirectory('.'); ?>
</select>
*<input type="text" size="50" name="newname" id="newname" value="<?= $_GET['fichier'] ?>"/>
 <INPUT class="btn" style="" id="envoyer" type=submit value="Envoyer" onClick="Javascript:document.getElementById('admin').style.display='block';"/>
</FORM>
<?php }?></div>
  
<?php endif; ?>

<script type="text/javascript">
$("table div[title]").tooltip({ effect: 'slide',position :'bottom center'});
/*$(".fichier").draggable({drag: function() {zIndex:2700;
		$(this).css({'background-color': '#0F0'});}});
$(".dossier").droppable({
	drop: function(event, ui) {
		$(this).css({'background-color': '#f00'});
		alert('<?php //echo "fichier : ".$dossier.$file?>\n<?php //echo "dossier : ".$dossier.$foldir ?>');
		//window.location.href="<?php //echo $_GET['dossier']?>/<?php //echo $file?>";
	}});*/
</script>
</body>
</html>

 Conclusion

Pratique pour le partage de fichiers entre plusieurs personnes.
La partie admin (avec mot de passe différent) permet la suppression des éléments et l'ajout de fichiers sans avoir à entrer à chaque fois le nom et mot de passe. Ergonomique et simple d'utilisation.
Pour utiliser une nouvelle image par type de fichiers il suffit d'ajouter un fichier du type extension.png (ex: php.png)dans le dossier 'files'.
Affichage des photos en grand (la surface est noirci pour n'afficher que la photo, idem pour un fichier pdf, txt, html etc...tous les fichiers ouvrable en naviguateur).

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

15 juillet 2010 20:23:22 :
J'avais laissé mes nom et prénom sur la capture
15 juillet 2010 20:30:53 :
J'avais laissé mes nom et prénom sur la capture
21 juillet 2010 22:34:11 :
Quelques amélioration ...
02 août 2010 19:02:42 :
Tableau et trie des fichiers. Problème sous easyphp ...
24 août 2010 21:08:35 :
Réecriture d'url Un peu de Javascript ...
11 septembre 2010 18:03:38 :
édition des fichiers txt, html, js, css .. et renommer déplacer les fichiers plus corrections de certains bugs.

 Sources de la même categorie

SUPPRESSION AUTOMATIQUE DES FICHIERS RAW ORPHELINS APRÈS UN ... par malokaff
UPLOADER DES FICHIER DANSUN DOSSIER, SÉCURISÉ AVEC MOT DE PA... par raizzo
COMPTEUR DE VISITES SUR FICHIER par pierreSabatier
FONCTION RECURSIVE DE DOSSIERS par tefa24600
Source avec Zip CONVERSION DES UNITÉS INFORMATIQUE (O, KIO, MIO, GIO, TIO...... par genetApt151

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture GESTION DE SCOLARITÉ [PHP] ET [MYSQL] par ayoubshadow
Source avec Zip Source avec une capture SEARCH CASIER par tlabidouille
Source avec Zip Source avec une capture [PHP]WEBFTP par Liouan
Source avec Zip Source avec une capture WYMIENPHP 1.1 (ECHANGEZ VOS FICHIERS AGRÉABLEMENT) par FlUxIuS
Source avec Zip Source avec une capture PARTAGE DE FICHIERS par bmwalido

Commentaires et avis

Commentaire de ngahadjo le 19/07/2010 18:31:38 6/10

ne serais ce pas mieux de faire fonctionner ce scrip avec ftp? en plus ton scrip ne fonctionne qu'avec ceux qui on php5
<input name ="monfichier" id="monfichier" size="60" type="file">
// ouverture du fichier en mode lecture (r = ready)
    $fichier=fopen("ftp://partag:partag@webscore/$monfichier","r");

Commentaire de ngahadjo le 19/07/2010 19:49:39

Voici les erreurs que je reçois quand je teste ton code
Notice: Use of undefined constant G - assumed 'G' in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 47

Notice: Use of undefined constant i - assumed 'i' in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 47

Notice: Undefined index: nom in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 48

Notice: Undefined index: fichier in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 49

Notice: Undefined index: fichier in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 49

Notice: Undefined index: fichier in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 50

Notice: Undefined index: fichier in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 50

Notice: Undefined index: fichier in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 50

Notice: Undefined variable: fichier in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 51

Notice: Undefined index: fichier in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 52

Notice: Undefined variable: size in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 52

Notice: Undefined index: dirname in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 69

Notice: Undefined index: dirname in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 87
selon toi que dois je faire! parce que ce script me donne bien des iddée dans une appli

Commentaire de keke21410 le 19/07/2010 19:50:26

euh franchement bravo, le script est complet, je crois que je vais le remplacer par le mien tout simple x)

Bravo l'interfasse est sympathoche :)

Commentaire de jeromin75 le 19/07/2010 21:21:29

ngahadjo :Possible que tu aies une version d'easy php qui ne gère pas le php5 ...fais la MAJ d'easy PHP. et reviens dire si c'est bon. Et pour le ftp pourquoi pas mais il faut alors spécifier des chmod et ça me saoulait, j'étais partit sur le opendir qui m'a suffit, je précise que c'est mon premier vrai script php.

KEKE : je ne comprend pas, tu vas le remplacer par le tien alors que tu trouves sympas mon script ?

Commentaire de guyzoLGM le 20/07/2010 00:54:46

je rencontre aussi ces erreurs malgré la mise a jour de mon wampserver (PHP 5.3)

Notice: Use of undefined constant G - assumed 'G' in C:\wamp\www\monSite\index.php on line 46

Notice: Use of undefined constant i - assumed 'i' in C:\wamp\www\monSite\index.php on line 46

Notice: Undefined index: nom in C:\wamp\www\monSite\index.php on line 47

Notice: Undefined index: fichier in C:\wamp\www\monSite\index.php on line 48

Notice: Undefined index: fichier in C:\wamp\www\monSite\index.php on line 48

Notice: Undefined index: fichier in C:\wamp\www\monSite\index.php on line 49

Notice: Undefined index: fichier in C:\wamp\www\monSite\index.php on line 49

Notice: Undefined index: fichier in C:\wamp\www\monSite\index.php on line 49

Notice: Undefined variable: fichier in C:\wamp\www\monSite\index.php on line 50

Notice: Undefined index: fichier in C:\wamp\www\monSite\index.php on line 51

Notice: Undefined variable: size in C:\wamp\www\monSite\index.php on line 51

Notice: Undefined index: dirname in C:\wamp\www\monSite\index.php on line 68

Notice: Undefined index: dirname in C:\wamp\www\monSite\index.php on line 86

Commentaire de jeromin75 le 20/07/2010 08:53:31

Ca vient des $_GET et $_POST.
http://www.commentcamarche.net/faq/1391-php-notice-undefined-index
Je vais tester sous easyPHP voir si je peux régler le problème.

Commentaire de guyzoLGM le 20/07/2010 10:23:55

OK merci d'avance :)

Commentaire de keke21410 le 20/07/2010 11:00:56

Jeromin75 -> Non je me suis mal exprimé, je vais changer le miens pour le tiens, donc prendre le tiens, qui est beaucoup plus complet et beaucoup plus léger que mon simple algo qui ne faisait que lister :)

Merci beaucoup (sous free aucuns problèmes)

Commentaire de ngahadjo le 20/07/2010 11:22:54

en effet en local sur easyphp 2.0 j'ai php 5.2.0 qui supporte bien le php 5. je l'ai aussi testé sur l'easyphp et la problématique reste la même(même erreur).

Commentaire de jeromin75 le 20/07/2010 11:48:12

Sous free je me souviens avoir rencontré des problèmes à l'upload d'un fichier, (free les renommes et/ou empêche d'en mettre plus d'une...). Tant mieux si ça marche pour toi!

Naghadjo : regarde mon post avec le lien ça t'aidera en attendant que je puisse y remédier.

Commentaire de keke21410 le 20/07/2010 15:33:15

c'est possible que free l'oblige encore sous php 4 mais pas si on le règle avec php 5 enfin je suis dans le cas de php 5 ...

Je pensais à ton code, pourquoi ne pas écrire :

else if (file_exists("".$pathtofile."/".$ext.".png"))
{
?>
<div class="total" le code... </div>
<?php $a++ }


Cela permet une meilleur coloration du code et c'est plus lisible, surtout si tu es avec un colorateur syntaxique, notepad++ met le contenu de '' en gris, donc toute une div en gris c'est peu lisible

La balise meta il me semblait que pour respecter les normes W3C il là fallait en minuscule ou je me trompe ?

Commentaire de keke21410 le 20/07/2010 15:34:36 10/10

et de même avec <form> et les propriéts ENCTYPE :)

Commentaire de heycraft le 20/07/2010 16:35:58 3/10

Bonjour Jéromin75.
Ce code fonctionne mais à plusieurs défauts !

Très dur a lire ! Comment veux tu qu'on le modifie ?
Le JavaScript peut(doit) être mieux utilisé...
Le code HTML n'est pas valide !
Très peu structuré ! Pense au PHP objet !
Tu déclares les variables pour les mots de passe  après les premières lignes... pense a tout déclarer au début.

Bref, du code de débutant tout sa! ;)

Mais bien joué sinon

Commentaire de ngahadjo le 20/07/2010 17:38:08

bien que ce soit pour HEVCRAFT un code de débutant je te rassure que ça fonctionne chez moi!à l'exception prés de ces erreurs qui apparaisses, je l'ai retouché en vain et testé avec tout les serveurs local possible, mais hélas! et pourtant ça pourrais bien me servir un jour dans une partie de mes API

Commentaire de jeromin75 le 20/07/2010 20:53:46

De base se code m'est destiné, je le partage car je pense qu'il peut être utile à tout le monde, désolé qu'il ne soit pas commenté ou plus "lisible"...
Pour les erreurs moi chez ovh je n'en ai aucune, évidemment je ne l'ai pas testé partout (à part chez free où à l'upload je trouve quelques bugs).
Les déclarations ont été faite au fur et à mesure je n'ai pas juger nécessaire de les déclarer au début.
Et pour finir je ne maîtrise pas encore voir pas du tout le PHP objet donc peut-être qu'un jour je le referai en objet ;) et évidemment le niveau mentionné est "débutant" donc on se s'étonne pas.
Bref toutes critiques est bonne à prendre, pour les prochain script je penserai à tout cela !
Merci
Ps: je le retouche encore et encore améliorant les fonctionnalité, faite de même et tenez moi au courant :)

Commentaire de jeromin75 le 21/07/2010 20:43:36

Je viens de trouver une faille, il faut rajouter :  && strpos($_GET['dossier'],"/..")===false)
ici:
if(isset($_GET['dossier']) &&($_GET['dossier']) && strpos($_GET['dossier'],"/..")===false){
$dossier = $_GET['dossier']."/";}
sinon n'importe qui pourra visiter tout le serveur entier, les fichiers n'étant pas visualisable, ils verront les noms...

Commentaire de ngahadjo le 22/07/2010 00:10:22


ben je travaille toujours dessus et pour le moment voici les erreur que d'essais de remédier! effectivement concernant la faille je l'avais déjà colmaté depuis hier! peut tu s'il te plaire faire des test avec un serveur local quelconque et me faire part si jamais tu t'en sort avant moi!

Notice: Undefined index: nom in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 70

Notice: Undefined index: fichier in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 71

Notice: Undefined index: fichier in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 71

Notice: Undefined index: fichier in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 72

Notice: Undefined index: fichier in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 72

Notice: Undefined index: fichier in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 72

Notice: Undefined index: fichier in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 74

Notice: Undefined variable: folder_del in C:\Program Files\EasyPHP 2.0b1\www\Partage\index.php on line 197

Commentaire de bj33 le 22/07/2010 19:56:59 1/10

hé bé...

Commentaire de ngahadjo le 23/07/2010 17:27:42

pourquoi cette exclamation BJ33? tu as mieux à proposé!!!

Commentaire de jeromin75 le 23/07/2010 17:57:07

Effectivement ..La notation de 1/10 est peut-être trop critique, pour un niveau débutant ce n'est pas si mauvais.
Donne au moins quelques explication que je puisse m'améliorer !
Merci

Commentaire de bj33 le 24/07/2010 19:45:02

salut

1/10 j'avoue, c'est dur mais rien n'est définitif et puis

session_start();
// pourquoi le déclarer plusieur fois, c'est toujours le même?
$pathtofile = 'files/';
$dossier = './';
// une constante peut être? tant qu'à le coder en dur même pour un test
$mdp = '13579';
$admin_mdp = '02468';
/* le js inseré comme çà, c'était bon en 2000 pas aujourd'hui un js séparé et appellé à la fin du body
* ce serait plus "normal", normalisé. d'ou l'importance double des id de balise formulaire, ils servent
* aux labels et à javascript. çà peut paraitre un détail mais çà ne l'ai pas sur le long terme et puis c'est valide
* . pour continuer avec les formulaires, sécurité, sécurité!!! fait gaffe, ton code est une passoire, une preuve
* dans rmdir.php
*
* rmdir($_REQUEST['dossier'].$_GET['file']);
*
* çà c'est suicidaire, tout est comme çà. alors!? débutant, ok mais quand même, c'est la première chose à considérer,
* à faire systématiquement. et puis perso, comme il se repete à l'identique pourquoi ne pas faire comme ci-dessous? après
* un simple echo au bon endroit, et çà roule. pour les débutant, c'est la syntaxe heredoc, cf php.net
*
* çà permet un seule appel à echo et on peut y inserer des variables sans concatenation ou échappement.
* et perso, je séparerais toute la logique formulaire, ce serait plus clair et plus facile à maintenir, include_once permet
* çà, tu sais. on s'abime moins les yeux à lire le code;) un fichier php formulaire, un autre qui valide. si depuis des lustres
* on code les formulaires de cette façon ce n'est pas par hasard.
*/
$form = <<<EOF
<form id="admin_form" method="POST" enctype="multipart/form-data">
<p>
<label for="nom">login *</label>
<input id="nom" type="text" size="20" name="nom" value="Nom Prénom" onfocus="if(this.value=='Nom Prénom') {this.value=''}" onblur="if(this.value=='') {this.value='Nom Prénom'}"/>
</p>
<p>
<label for="pwd">passe *</label>
<input id="pwd" type="text" size="15" name="pwd" value="mot de passe" onfocus="if(this.value=='mot de passe') {this.value='';this.type='password'}" onblur="if(this.value=='') {this.value='mot de passe';this.type='text'}"/>
</p>
<input class="btn" style="" id="envoyer" type=submit value="Envoyer" onclick="Javascript:document.getElementById('connection').style.display='block';"/>
</form>
EOF;
// la doctype c'est important, très
$ch_temp = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'.chr(10);
$ch_temp .= '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-FR">'.chr(10);
$ch_temp .= '<head>'.chr(10);
// l'encodage aussi, encore plus que la doctype;)
$ch_temp .= '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />'.chr(10);
// http://www.expreg.com/expreg_article.php?art=isset_empty
if(!empty($_GET['dossier']) && strpos($_GET['dossier'],'/..') === false)
   $dossier = trim(strip_tags($_GET['dossier'].'/'));
$ch_temp .= '<title>Dossier : '.$dossier.'</title>'.chr(10);
$ch_temp .= '<link rel="stylesheet" href="'.$pathtofile.'" styleU.css" type="text/css" />'.chr(10);
// pas fiable, un commentaire conditionnel serait surement plus approprié mais bon
if (isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'],'MSIE'))
    $ch_temp .= '<link rel="stylesheet" href="'.$pathtofile.'styleIE.css" type="text/css" />';
else $ch_temp .= '<link rel="stylesheet" href="'.$pathtofile.'style.css" type="text/css" />';
$ch_temp .= '</head>'.chr(10);
$ch_temp .= '</body>'.chr(10);
/**
* une classe du genre
* .centre {
margin-left: auto;
margin-right: auto;
width: 780px;
}
suffit a centrer horizontalement et remplace align qui n'est pas valide
cf: alsacreations.com
}
*/
$ch_temp .= '<div class="centre header">'.chr(10);

//etc...
echo $ch_temp;
/** c'est quand même moins brouillon, non?
* en tout moins que çà, par exemple
*
<?php if (isset($_SESSION['pwd']) || isset($_SESSION['admin'])){?>
<?php echo "<div class=\"cadena\"><a href=\"logout.php\">D&eacute;connexion</a></div>";}

une méthode qui rend service pour retourner les extensions avec ou sans le point

function extensions($f_ext,$retourne = false) {
if ($retourne === true)
// retourne l'extension avec le point
return $ext = strrchr($f_ext,'.');
if($retourne === false)
// la supprime
return $ext = substr($f_ext,0,strrpos($f_ext,"."));
}

$ext = extensions('chemin_fichier',true ou pas);
ou plus simplement $ext = strrchr($f_ext,'.'); çà suffit largement

pour un upload je doute que ce soit utile

case ($size>(1024*1024*1024)):
$size=$size/(1024*1024*1024)." Go";

et tient, les doubles quotes, non utiles, sans variables, transforme les en simple,
ton serveur te dira merci;) comme içi $size/(1024*1024*1024)." Go" doubles inutiles et
il y en à d'autres.

pour les sessions tu devrais les blinder en enregistrant les infos dispos dans $_SERVER et
les conserver jusqu'à la fin, si problème tu pourra tracer, le "méchant". si çà foire tu enregistre
dans un log.et aussi penser à utiliser et pour l'upload verifie que c'est bien un fichier uploadé, là encore c'est un minimum, avec
par exemple

(!empty($_FILES) && is_array($_FILES) && is_uploaded_file($_FILES['fichier']['tmp_name']))

pour me faire "pardonner" de ma notation;))

une classe qui gére les sessions, elle devra être modifiée pour tes besoins, si tu veux l'intégrer et rencontre
des difficultés fais moi signe
*/

include_once 'IGereSessions.php';

final class GereSessions implements IGereSessions {
private $_cgi;
private $_tabHeaders = array();
private $_ip;
private $_navigateur;
private $_langue;
private $_domaine;
private $_securite;

function __construct($si_cgi = false) {
if (is_bool($si_cgi))
$this->_cgi = $si_cgi;
else $this->_cgi = false;
self::envoiIP();
self::recupServeur();
}

function __toString() {
return 'classe '.__CLASS__;
}

function __destruct() {
unset($this);
}

private function envoiIP() {
if ($this->_cgi === true) {
if (getenv ("HTTP_CLIENT_IP"))
$this->_ip = $_SERVER['HTTP_CLIENT_IP'];
elseif (getenv("HTTP_X_FORWARDED_FOR"))
$this->_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
elseif (getenv("REMOTE_ADDR"))
$this->_ip = $_SERVER['REMOTE_ADDR'];
else
$this->_ip = 'adresse inconnue';
}
if ($this->_cgi === false) {
if (!empty($_SERVER['HTTP_CLIENT_IP']))
$this->_ip = $_SERVER['HTTP_CLIENT_IP'];
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
$this->_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
elseif (!empty($_SERVER['REMOTE_ADDR']))
$this->_ip = $_SERVER['REMOTE_ADDR'];
else $this->_ip = 'adresse inconnue';
}
}


private function recupServeur() {
if (function_exists('apache_request_headers')) {
// zend studio ne connait pas cette fonction!
$this->_tabHeaders = apache_request_headers();
$this->_navigateur = $this->_tabHeaders['User-Agent'];
$this->_domaine = $this->_tabHeaders['Host'];
$this->_langue = $this->_tabHeaders['Accept-Language'];
} else {
/**
* si php version cgi. apache_request_headers n'est disponible
* que si php est compile en tant que module.
         */
$this->_navigateur = $_SERVER['HTTP_USER_AGENT'];
$this->_domaine = $_SERVER['HTTP_HOST'];
$this->_langue = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
}
}

public function securite($gds = false) {
$this->_securite = md5($this->_ip.'_'.$this->_navigateur);
if (!empty($_SESSION['securite'])) {
session_start();
$_SESSION['securite'] = $this->_securite;
$_SESSION['langue'] = $this->_langue;
$_SESSION['ip'] = $this->_ip;
$_SESSION['domaine'] = $this->_domaine;
if ($gds === true)
$_SESSION['grainDeSel'] = self::grainDeSel();
}
if ($_SESSION['securite'] !== $this->_securite) {
session_regenerate_id();
$_SESSION = array();
}
}

/**
* public ou private selon utilisation
*/
private function grainDeSel() {
$hasard = rand(1,100);
$hasard2 = rand(5,30);
$retour = $hasard * 20;
$retour .= $_SESSION['SID'].$hasard2;
return md5($retour);
}

public function delog() {
$_SESSION = array();
session_destroy();
}

}

// l'interface

interface IGereSessions {
public function securite($gds = false);
public function grainDeSel();
public function delog();
}

// et une autre d'upload, là encore à modifier selon les besoins

final class Upload {    
private $_tabExt = array('gif','jpg','jpeg','png');    
private $_nomFich,$_derniersCaract,$_width,$_height,$_type,$_chaine,$_nomFinal;          
// dossier d'upload temporaire    
const DESTINATION = "./photos_up";    
// 2 Mo maxi    
const TAILLE_MAX = "2097152";          
const DOUBLE_EXT = "<p>Erreur! Ce fichier comporte une double extension, ce qui est &eacute;videment, interdit!</p>";    
const EXTENSION = "<p>Erreur! Extensions incorrectes, merci de vous conformez au formulaire.</p>";    
const EXTENSION_2 = "<p>Erreur! Extension valide mais fichier trafiqu&eacute;...</p>";    
const CARACT = "<p>Erreur! Ce fichier contient des caract&egrave;res interdits ou son nom est trop long, 150 caract&egrave;res maximum.</p>";    
const UPLOAD_N = "<p>Erreur! Pas de donn&eacute;es valides &agrave; traiter.</p>";    
const POIDS_SERV = "<p>Erreur! Fichier trop volumineux, D&eacute;passe la valeur autoris&eacute;e par le serveur.</p>";    
const POIDS_FORM = "<p>Erreur! Fichier trop volumineux, D&eacute;passe la valeur autoris&eacute;e par le formulaire.</p>";    
const TELE_PART = "<p>Erreur! Fichier partiellement t&eacute;l&eacute;charg&eacute;.</p>";    
const FICHIER_INEX = "<p>Erreur! Aucun fichier t&eacute;l&eacute;charg&eacute;.</p>";    
const REP_CORRECT = "<p>Erreur! Veuillez indiquer un r&eacute;pertoire destination correct !</p>";    
const DROIT_ECRIT = "<p>Erreur! Pas de droits en &eacute;criture pour le r&eacute;pertoire de destination !</p>";    
const DEPLACE = "<p>Erreur! Le fichier n'&agrave; pas &eacute;tait d&eacute;plac&eacute;.</p>";
        
function __construct() {        
if (!empty($_FILES) && is_array($_FILES) && is_uploaded_file($_FILES['fichier']['tmp_name'])) {            
$this->_nomFich = trim(strip_tags($_FILES['fichier']['name']));            
$this->_nomFich = strtolower($this->_nomFich);            
$this->_nomFich = strtr($this->_nomFich, 'àáâãäåçèéêëìíîïðòóôõöùúûüýÿ- ', 'aaaaaaceeeeiiiioooooouuuuyy__');        
}        
else throw new Exception(self::UPLOAD_N);    
}

/**
* filtre à modifier en coséquence
*/
private function filtre() {        
// filtre les doubles extensions        
if (preg_match('/.php.|.js./',$this->_nomFich))            
throw new Exception(self::DOUBLE_EXT);        
// 2 caracteres minimum et 150 maxi        
if (!preg_match('/^[\w][^?<>&@}{=+!:*$\]\[]{2,150}$/', $this->_nomFich))            
throw new Exception(self::CARACT);    
}
        
private function retourErreur() {            
//pour les tests suivants, un switch est aussi possible        
if ($_FILES['fichier']['error'] == 1)            
throw new Exception(self::POIDS_SERV);          
elseif ($_FILES['fichier']['error'] == 2)            
throw new Exception(self::POIDS_FORM);          
elseif ($_FILES['fichier']['error'] == 3)            
throw new Exception(self::TELE_PART);          
elseif ($_FILES['fichier']['error'] == 4)            
throw new Exception(self::FICHIER_INEX);                  
elseif (!is_dir(self::DESTINATION))            
throw new Exception(self::REP_CORRECT);                  
elseif (!is_writeable(self::DESTINATION))            
throw new Exception(self::DROIT_ECRIT);                  
else {          
if ($_FILES['fichier']['size'] > self::TAILLE_MAX)                
throw new Exception(self::POIDS_FORM);          
else {                
if (false === move_uploaded_file($_FILES['fichier']['tmp_name'], self::DESTINATION.'/'.$this->_nomFich))                  
throw new Exception(self::DEPLACE);          
}        
}    
}
  
private function envoiFichier() {        
$this->_derniersCaract = strrchr($this->_nomFich, ".");        
list($this->_width,$this->_height,$this->_type,$this->_chaine) = getimagesize(self::DESTINATION.'/'.$this->_nomFich);        
if ($this->_derniersCaract !== false && in_array(substr($this->_derniersCaract, 1), $this->_tabExt)) {            
if ($this->_type === 1 | $this->_type === 2 | $this->_type === 3) {                
switch ($this->_derniersCaract) {                    
case '.jpeg' :                        
$this->_nomFinal = self::DESTINATION.'/'.$this->_nomFich;                        
break;                    
case '.jpg';                        
$this->_nomFinal = self::DESTINATION.'/'.$this->_nomFich;                        
break;                    
case '.gif' :                        
$this->_nomFinal = self::DESTINATION.'/'.$this->_nomFich;                        
break;                    
case '.png' :                        
$this->_nomFinal = self::DESTINATION.'/'.$this->_nomFich;                        
break;                    
default:                        
unset($this->_nomFinal);                
}            
} else {                
unset($this->_nomFinal);                
throw new Exception(self::EXTENSION_2);            
}        
} else {            
unset($this->_nomFinal);            
throw new Exception(self::EXTENSION);        
}    
}
        
/**      
* methode sur laquelle travailler selon ce que l'on veux faire      
* du fichier final      
*/    
public function methodeFinal() {        
// appel des methodes privees        
try {            
self::filtre();        
} catch (Exception $e) {            
return $e->getMessage();        
}        
try {            
self::retourErreur();        
} catch (Exception $e) {            
return $e->getMessage();        
}        
try {            
self::envoiFichier();        
} catch (Exception $e) {            
return $e->getMessage();        
}        
// important, nettoie les caches        
clearstatcache();        
if (isset($this->_nomFinal)) {            
//return $this->_nomFinal;            
// ou            
return '<img src="'.$this->_nomFinal.'" '.$this->_chaine.' alt="" />';        
}    
}
}

Commentaire de ngahadjo le 25/07/2010 02:15:44

je suis moins pro en php qu'en java; pourrais tu stp jeromin75 tester réellement ce code sous easyphp et le publier si jamais ça fonctionne parce que avec toute les modifs apporté par BJ33 ça ne tourne toujours pas chez moi.

Commentaire de bj33 le 25/07/2010 06:26:27

@ ngahadjo

je n'ai fait que suggérer pas modifier, il faut faire le reste, corriger les erreurs, structurer le code pour y voir plus clair, gérer les erreurs, sécurisé et là non, je n'ai pas le temps, en tout cas pour l'instant. les erreurs sont dûes aux tests, c'est de ce côté qu'il faut chercher, initialiser les variables correctement et virer ces request qui embrouillent au profit des post/get correspondant.

Commentaire de keke21410 le 25/07/2010 10:55:36

Ngahadjo : c'est javascript et pas java, on abrège js

Commentaire de jeromin75 le 02/08/2010 19:04:12

Bonjour,
Pour le problème sous easyphp, il fallait seulement déclarer chaque variable POST avant de les utiliser ...
Mais au niveau du format de la date je n'ai pas encore trouvé.
Sinon il marche en local.
Cdt

Commentaire de jeromin75 le 02/08/2010 19:06:25

remplacez
$date = date("j-n-y")." ".date(G)."h".date(i);
par
$date = date("j-n-y")." ".date("G")."h".date("i");
et voilà !!

Commentaire de ngahadjo le 03/08/2010 11:25:41

Merci à tous!j'ai enfin pu le fare tourner! et je sais je ça me servira un jour.
@keke21410
beaucoup confondent le java et le JavaScript! j'ai parlé de java et non js car le js est un langage qui est compris et traité par les navigateurs en outre ce dernier est généralement écrit pour tourner au niveau du navigateur ou côté client si tu veux et pourtant le java lui a un champ d'action bien plu vaste et peux même être utilisé pour le programme d'un distributeur de billets de banque

Commentaire de keke21410 le 03/08/2010 11:33:39

je connais le java, j'ai fait un peu de 2D l'an dernier, mais j'avais compris ta ^phrase dans un autre sens (je pensais que tu parlais des modifs js effectués sur la source)

Toutes mes excuses ;)

Commentaire de ngahadjo le 03/08/2010 15:12:19

ok!je comprend.
tu sais @keke21410 la langue française est tellement bavarde que expression "en deux mots" s'écrit en trois mots,donc c normale que j'ai pu d'une part mal m'exprimer.

Commentaire de jeromin75 le 25/08/2010 23:44:49

Remplacer la ligne dans l'htaccess par :
RewriteRule ^(.+)\/$  index.php?dossier=$1  [L]
Et comme ça on personne ne pourra accéder au dossier sans passer par notre script...

Commentaire de spacedelta le 10/09/2010 20:04:29

Salut ! Existe-t-il une ligne pour cacher certains fichiers ? Comme les fichiers logs.

Commentaire de spacedelta le 10/09/2010 20:05:42

Mais bon javoue vachement cool !!
Mais...
...peut-on ajouter des icône pour certains fichiers comme pour les exécution ?

Commentaire de jeromin75 le 10/09/2010 20:18:20

Il de rajouter : if($file!="logs.txt") { echo de mes fichiers }
Pour ajouter des icones il suffit de mettre dans le dossier files ton fichiers *.png en le nommant de l'extension voulu : exe.png et hop magique !
Merci du compliment, à venir une mise à jour pour éditer les fichiers txt, html, js, css .. et renommer déplacer plus corrections de certains bugs.

Commentaire de spacedelta le 11/09/2010 12:47:09

"if($file!="logs.txt") { echo de mes fichiers }"
euh
je suis super nul en php ^^ mais...
<?php echo "logs.txt" ?> ? nan ? c'est pas ça ?
et if($file!="logs.txt") { echo de mes fichiers }" dans quelle ligne ?
Sinon cette version est parfaite ^^ c'est juste pour un espace de téléchargements donc je pense quelle est
déjà bien ^^ Si après les gens peuvent modifier du texte type html du site ça va pas le faire ^^
Enfin si tu cherches un sources, voici un client ftp pas mal ou tu peux modifier tout les types d fichiers
texte ! essaies-le si tu veux, cela sera plus simple par la suite pour trouver le code pour modifier les fichiers.
http://www.phpcs.com/codes/PHP-WEB-MANAGER_51788.aspx
Et puis je trouve ton style carrément classe !

Commentaire de keke21410 le 11/09/2010 15:06:00

un conseil apprend le php, t'auras moins de difficultés.

Commentaire de spacedelta le 11/09/2010 15:18:24

Finalement plus besoin ! j'ai laissé. Ce que j'ai fait je l'ai tout simplement renommer en infos que ceci les gens peuvent lire ! Lorsque j'envoie un fichier par le script je supprime le logs.txt. J'ai is un .htaccess avec "ErrorDocument 404 /repertoire/404.php" Comme ceci dans le fichier php j'ai mis une ligne avec dedans marqué "Démarrage du téléchargement"
Mon exemple :
http://sitedenicolas.free.fr/fichiers/
bon j'ai un peu modifié le fond et rajouté un lien en haut mais sinon c'est toujours le script original ^^

Commentaire de keke21410 le 11/09/2010 18:36:04

tu devrais supprimer des fichiers/dossier de ckeditor, je l'utilise pour une utilisation perso, et sampl, source etc... sont à supprimer !

Si tu veux je peux te dire ce que j'ai gardé, chez moi tout marche.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Comment tester les fichiers PHP [ par Clem ] Comment tester les fichiers PHP sans les publier sur son site ? Dans le genre de PWS avec l'asp Php, traitement de fichiers texte [ par apz ] salut a tous,qqn peut me filer une astuce sur comment traiter un fichier texte ligne par ligne et caractere par carectere avec php.Merci :)----------- gestion de pdf en php [ par jawad75 ] salut tous le mondeje coulais savoir juste si qlq un a deja fais un prog qui gere des .pdf en php, en utilisant fpdf :) pb de listage dynamique de dossier ... [ par caviar ] tout d'abord bonjour à tous :)je suis nouveau ici :)donc je me présente :) je suis infographiste et je suis actuellement en train de me mettre au php PHP ET LES FICHIERS ???? [ par GazGaz ] lu all alors voila je voulais savior si c'était possible avec php d'aller chercher des informations dans un fichier qui est structué de la meme manier petits problèmes en cascade... devenant ingérables... [ par ChocoBiscuit ] Bonjour à tous...Je ne vais pas y aller par 4 chemins....Problème : C'est assez compliqué, mais bon ki ne tente rien....Voilà, je réalise une appli Gestion membres [ par Nestor ] salutje souhaite ajouter une gestion membre sur mon site.pour cela je voudrais savoir quel script php vous me conseillez vous ?(je suis nouveau dans l PHP et lecture de fichiers son [ par Ralph29 ] Bjr à tous,Voilà je suis en train de me faire un petit site intranet qui me permet de lister le contenu de ma machine en fichier MP3 (je précise que c Gestion formulaire history.go(-1) avec conservation de variables [ par apz ] ----------------------------------------------------------------------Salut,config.php :&lt;?define('ERRT','&lt;center&gt;&lt;br&gt;&lt;br&gt;&lt;br&g Upload fichier php [ par alanbraxe31 ] Bonjour à tous!voila j'ai un gros soucis avec la fonction mail en php.je souhaites joindre un fichier à mon mail. A la réception du mail, les fichiers


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales