Szerző Téma: File System v0.2  (Megtekintve 1933 alkalommal)

File System v0.2
« Dátum: 2014. szeptember 14. - 19:05:43 »
0 Show voters
Üdv!
Fáradt vagyok, nem tudom mit csinálok.
Szóval.
Kezdõ PHP-s vagyok, és éppen ezért tanulgatom, kísérletezgetek a phpval.
Egyszer csináltam egy olyat nagynehezen, hogy kilistázza a mappában lévõ fájlokat, és rá lehet kattintani. Viszont ez önmagában csak pár sor volt, nem is tudott sokat, csak egy mappába tudott belépni, azon belül pedig semmit. Gondoltam továbbfejlesztem, kísérletezgettem jó sokat, végül eljutottam odáig, hogy egy komplett fájlkezelõ rendszert összedobtam. A fájlokat nem instant nyitja meg, hanem annak is van csinálva egy kis \"doboz\" :)
Ez az elsõ \"komolyabb\" scriptem, lehet hogy rohadtúl egyszerûbben is meglehetett volna csinálni, meg lehet, hogy pazarolok <--- ezeket kérem hsz-ban!
A fájl és mappameghatározási funkció nem tökéletes
Készítõ: Én
Készítési idõ: unknown
KÉPEK!! :
http://nukerdog.tk/fSystem/
Ismert hiba:
valamiért rossz karakterkódolásban includeolja be a fájlokat, vagy nem tudom mi a baja, de az ékezetes karakterek olvashatatlanok :)
Mappákon belül nem lehet rákattintani a ceruza jelre
Vélemény?
v0.2:
táblázatban: fájl törlése, fájl szerkesztése, fájlnév, fájl infók
képek helyes beszúrása
elõzmények (hol járkáltál :D)
lábléc a fájlok kilistázásánál
linkek formázása
magyarázatok
Nem nagy dolog, de jóval hosszabb a kód, sokat dolgoztam vele.
Várható update:
fájl szerkesztése
fájl információk
képek méret szerinti beszúrása
kiírja, ha üres a mappa
hibajavítás
mappa / fájl nevének átírása
sampforum téma újraírása
Spoiler for V0.1 kód:

<style>
div#box {
background: #fb0;
width: 50%;
padding: 10px;
border: #000 solid 3px;
border-radius: 20px;
padding-top:0;
}
</style>
<div id=\"box\">
<?php
if(!isset($_GET[\"folder\"])) $dir = scandir(\"../htdocs\");
else $dir = scandir($_GET[\'folder\']);   
if(!isset($_GET[\"file\"])) {
for($i = 0; $i < count($dir); $i++) {
   if(!isset($_GET[\"folder\"])) {
      if(strpos($dir[$i],\".\")) print(\"<br/><a href=\\\"?file=\".$dir[$i].\"\\\">\".$dir[$i].\"</a>\");
      else { print(\"<br/><a href=\\\"?folder=\".$dir[$i].\"\\\">\".$dir[$i].\"</a>\"); }
   } else {
      if(strpos($dir[$i],\".\")) print(\"<br/><a href=\\\"?file=\".$_GET[\"folder\"].\"/\".$dir[$i].\"\\\">\".$dir[$i].\"</a>\");
      else { print(\"<br/><a href=\\\"?folder=\".$_GET[\"folder\"].\"/\".$dir[$i].\"\\\">\".$dir[$i].\"</a>\"); }
   }
}
} else {
echo \"<h1>\".$_GET[\"file\"].\"</h1><br><a href=\'index.php\'><- Go back</a><hr>\";
include($_GET[\'file\']);
}
?>
</div>

 
v0.2 kód:
 

<?php
if(!isset($_GET[\"folder\"])) $dir = scandir(\"../htdocs\"); //a htdocs-t írd át a fájlt tartalmazó mappa helyére!!
else $dir = scandir($_GET[\'folder\']);
?>
<style>
div#box {
background: #fb0;
width: 80%;
padding: 10px;
border: #000 solid 3px;
border-radius: 20px;
margin: 20px auto;
}
a {
color: blue;
text-decoration: none;
}
a:hover {
color: white;
text-decoration: underlined;
}
</style>
<div id=\"box\"><center><b>Elõzmények: <?php if(isset($_GET[\"folder\"])) { echo $_GET[\"folder\"]; } ?></b></center></div>
<div id=\"box\">
<?php
$vers = \"0.2\";
if(isset($_GET[\"delfile\"])) { // HA TÖRLÜNK EGY FÁJLT
   if(empty($_GET[\"delfile\"])) die(\"Nincs beállítva mappa / fájl.\");
   if(!isset($_GET[\"itsafolder\"])) { // HA NEM EGY MAPPA
      if(is_dir($_GET[\"delfile\"])) die(\"Ez egy mappa -.-\\\"\");
      if(!file_exists($_GET[\"delfile\"])) die(\"A megadott fájl (\".$_GET[\"delfile\"].\") nem létezik!\"); // HA A FÁJL NEM LÉTEZIK
      if(!isset($_GET[\"ok\"])) // HA NINCS MEGERÕSITVE
         die (\'Biztosan törölni szeretnéd a következõ fájlt:\'.$_GET[\"delfile\"].\' ?<br><a href=\"?delfile=\'.$_GET[\"delfile\"].\'&ok\">Kattints ide a fájl törléséhez</a>\');
      else { // HA MEG VAN ERÕSITVE
         unlink($_GET[\"delfile\"]);
         die(\'A fájl sikeresen letörölve.<br><a href=\"index.php\"><- Go back</a>\');
      }
   } else { //HA EGY NMAPPA
      if(!file_exists($_GET[\"delfile\"])) die(\"A megadott mappa (\".$_GET[\"delfile\"].\") nem létezik!\"); // HA A FÁJL NEM LÉTEZIK
      $vanbenne_ = scandir($_GET[\"delfile\"]);
      $vanbenne = count($vanbenne_)-2;
      if(!isset($_GET[\"ok\"])) { // HA NINCS MEGERÕSITVE
         if($vanbenne == 0) die (\'A mappa üres. Biztosan törölni szeretnéd ezt:\'.$_GET[\"delfile\"].\' ?<br><a href=\"?delfile=\'.$_GET[\"delfile\"].\'&ok\">Kattints ide a fájl törléséhez</a>\'); else die (\'FIGYELEM! A MAPPA NEM ÜRES (\'.$vanbenne.\'db)!!! Biztosan törölni szeretnéd ezt:\'.$_GET[\"delfile\"].\' ?<br><a href=\"?delfile=\'.$_GET[\"delfile\"].\'&ok\">Kattints ide a fájl törléséhez</a> || <a href=\"index.php\">Vissza</a>\');
      } else { // HA MEG VAN ERÕSITVE
         rmdir($_GET[\"delfile\"]);
         die(\'A mappa sikeresen letörölve.<br><a href=\"index.php\"><- Go back</a>\'); // ELHALÁLOZÁS
      }         
   }
}
if(isset($_GET[\"editfile\"])) {
   $points = explode(\".\",$_GET[\"editfile\"]); // PONTONKÉNT ELVÁLASZTJUK A FÁJLT
   $mennyivan = count($points)-1; // Lehet, hogy a fájl neve ez lesz például: \"Mappa/../Mappa/../../Mappa/fájl.txt\" és akkor már is hibás :)
   if(!strpos($_GET[\"editfile\"],\".\")) die(\"Ez nem egy fájl!\");
   if(empty($points[$mennyivan])) die(\"Hibás kiterjesztés!\");
   if(!file_exists($_GET[\"editfile\"])) die(\"A megadott fájl (\".$_GET[\"editfile\"].\") nem létezik!\"); // HA A FÁJL NEM LÉTEZIK
   if(isset($_POST[\"discard\"])) header(\'Location: index.php\');
   if(!isset($_POST[\"save\"])) {
      die (\'<h1>\'.$_GET[\"editfile\"].\' szerkesztése</h1><br><a href=\"index.php\"><- Go back</a><hr>Ez a funkció jelenleg még nem érhetõ el!\');
   }
}
if(isset($_GET[\"folder\"]) && empty($_GET[\"folder\"])) die(\"Üres mappanév!\"); // HA A MAPPA NEVE ÜRES
if(!isset($_GET[\"folder\"])) $dir = scandir(\"../htdocs\"); // HA NINCS MEGADVA MAPPA
else $dir = scandir($_GET[\'folder\']); //HA MEG VAN ADVA MAPPA
/*
if(isset($_GET[\"folder\"])) { // ha a címben \"..\" van, akkor töröljük azt + az elõtte lévõt  <--- NEM MEGY, VALÓSZINÛLEG NEM IS LESZ!!
   $cimdarabok = explode(\"/\",$_GET[\"folder\"]);
   print_r($cimdarabok);
   if(strpos($_GET[\"folder\"],\"..\")) {
      print(\"<br>Találtam \'..\'-ot a címben!\");
      for($i = 0; $i <= count($cimdarabok); $i++) {
         if($cimdarabok[$i] == \"..\") {
            unset($cimdarabok[$i]);
            $kellreload = 1;
         }
      }
   }
   if($kellreload == 1) for($i = 0; $i < count($cimdarabok); $i++) $cim.=$cimdarabok[$i].\"\"
}*/
if(!isset($_GET[\"file\"])) { // HA NEM FÁJLRA KATTINTOTTUNK
      print(\'<table>\');
      for($i = 1; $i < count($dir); $i++) { // EGYESÉVEL VÉGIGMEGYÜNK AZ ÖSSZES ELEMEN AMI A MAPPÁBAN VAN
         if($dir[$i][0] != \".\") { // HA A MAPPA NEM .-TAL KEZDÕDIK
            if(!isset($_GET[\"folder\"])) { // HA NINCS BEÁLLITVA MAPPA
               if(strpos($dir[$i],\".\")) //HA VAN BENNE PONT AZAZ FÁJL
                  print(\"<tr><td><a href=\\\"?delfile=\".$dir[$i].\"\\\"><img src=\'kisx.png\' alt=\'Törlés\'/></a></td><td><a href=\\\"?editfile=\".$dir[$i].\"\\\"><img src=\'kisedit.png\' alt=\'Fájl szerkesztése\'/></a></td><td><font color=\'blue\'><a href=\\\"?file=\".$dir[$i].\"\\\">\".$dir[$i].\"</a></td></tr>\");
               else //HA NEM FÁJL
                  print(\"<tr><td><a href=\\\"?delfile=\".$dir[$i].\"&itsafolder\\\"><img src=\'kisx.png\' alt=\'Törlés\'/></a></td><td></td><td><font color=\'blue\'><a href=\\\"?folder=\".$dir[$i].\"\\\">\".$dir[$i].\"</a></td></tr>\");
            } else { //HA NINCS BEÁLLITVA MAPPA
               if(strpos($dir[$i],\".\")) { //HA VAN BENNE PONT AZAZ FÁJL
                  print(\"<tr><td><a href=\\\"?delfile=\".$_GET[\"folder\"].\"/\".$dir[$i].\"\\\"><img src=\'kisx.png\' alt=\'Törlés\'/></a></td><td><img src=\'kisedit.png\' alt=\'Fájl szerkesztése\'/></td><td><font color=\'blue\'><a href=\\\"?file=\".$_GET[\"folder\"].\"/\".$dir[$i].\"\\\">\".$dir[$i].\"</a></td></tr>\");
               }
               else { //HA EGY MAPPA
                  print(\"<tr><td><a href=\\\"?delfile=\".$_GET[\"folder\"].\"/\".$dir[$i].\"&itsafolder\\\"><img src=\'kisx.png\' alt=\'Törlés\'/></a></td><td></td><td><font color=\'blue\'><a href=\\\"?folder=\".$_GET[\"folder\"].\"/\".$dir[$i].\"\\\">\".$dir[$i].\"</a></td></tr>\"); }
            }
         } else { // HA A MAPPA PONTTAL KEZDÕDIK
            if(!isset($_GET[\"folder\"])) { // HA NINCS BEÁLLITVA MAPPA
               if(strpos($dir[$i],\".\")) // HA VAN BENNE PONT
                  print(\"<tr><td></td><td></td><td><a href=\\\"?file=\".$dir[$i].\"\\\">\".$dir[$i].\"</a></td></tr>\");
               else // HA NINCS BENNE PONT
                  print(\"<tr><td></td><td></td><td><a href=\\\"?folder=\".$dir[$i].\"\\\">\".$dir[$i].\"</a></td></tr>\");
            } else { //HA A MAPPA NINCS BEÁLLITVA
               if(strpos($dir[$i],\".\")) // HA VAN BENNE PONT
                  print(\"<tr><td></td><td></td><td><a href=\\\"?file=\".$_GET[\"folder\"].\"/\".$dir[$i].\"\\\">\".$dir[$i].\"</a></td></tr>\");
               else // HA NINCS BENNE PONT
                  print(\"<tr><td></td><td></td><td><a href=\\\"?folder=\".$_GET[\"folder\"].\"/\".$dir[$i].\"\\\">\".$dir[$i].\"</a></td></tr>\");
            }
         }
      }
      print(\'</table>\');
} else { // HA FÁJLRA KATTINTOTTUNK
      if(!file_exists($_GET[\"file\"])) die(\"A fájl nem létezik, vagy nem olvasható!\"); // HA NEM LÉTEZIK A FÁJL
      echo \"<h1>\".$_GET[\"file\"].\"</h1><br><a href=\'index.php\'><- Go back</a><hr>\";
      $pontok = explode(\".\",$_GET[\"file\"]); // PONTONKÉNT ELVÁLASZTJUK
      $last = $pontok[count($pontok)-1]; // MEGSZÁMOLJUK MENNYI VAN BENNE, ELTÁROLJUK EGY VÁLTOZÓBA
      if($last == \"png\" || $last == \"jpg\" || $last == \"jpeg\" || $last == \"gif\") print(\"<img src=\'\".$_GET[\"file\"].\"\' width=\'80%\'/>\"); // HA KÉP BEILLESZTJÜK
      else include_once($_GET[\'file\']); // HA NEM KÉP BEILLESZTJÜK
}
?>
</div>
<div id=\"box\"><center><b>File System by Nukerdog v<?php echo $vers;?></b></center></div>
« Utoljára szerkesztve: 2014. szeptember 20. - 23:55:03 írta Nukerdog »

Nem elérhető Peterta12

  • 183
  • Peterta12
    • Profil megtekintése
File System v0.2
« Válasz #1 Dátum: 2014. szeptember 14. - 19:21:21 »
0 Show voters
Megnéztem haverkém és tökre tetszik  :thumbsup:
Kapsz egy  :cookie: -t tölem :D


:cookie: automatát inkább

File System v0.2
« Válasz #2 Dátum: 2014. szeptember 14. - 20:54:22 »
0 Show voters
Köszi :D

Nem elérhető Peterta12

  • 183
  • Peterta12
    • Profil megtekintése
File System v0.2
« Válasz #3 Dátum: 2014. szeptember 15. - 15:19:40 »
0 Show voters
Haverom gépén ezt dobta
 

Warning: scandir(../htdocs,../htdocs): in D:\\wampp\\www\\asd\\index.php on line 13
Call Stack
#   Time   Memory   Function   Location
1   0.0020   136880   {main}( )   ..\\index.php:0
2   0.0020   136968   scandir ( )   ..\\index.php:13
( ! ) Warning: scandir(../htdocs): failed to open dir: No such file or directory in D:\\wampp\\www\\asd\\index.php on line 13
Call Stack
#   Time   Memory   Function   Location
1   0.0020   136880   {main}( )   ..\\index.php:0
2   0.0020   136968   scandir ( )   ..\\index.php:13
( ! ) Warning: scandir(): (errno 2): No such file or directory in D:\\wampp\\www\\asd\\index.php on line 13
Call Stack
#   Time   Memory   Function   Location
1   0.0020   136880   {main}( )   ..\\index.php:0
2   0.0020   136968   scandir ( )   ..\\index.php:13
« Utoljára szerkesztve: 2014. szeptember 15. - 16:36:58 írta Lubuntu. »

File System v0.2
« Válasz #4 Dátum: 2014. szeptember 15. - 18:08:26 »
0 Show voters
Igen, mert ez ilyen \"homemade version\" :D
Át kell írni a htdocs mappát ebben az esetben \"asd\" -ra a programban mindenhol. Ezt is beledobom a következõ frissítésbe :D
Szerk.:
  Nem dobom bele, mivel csak 1x kell átállítani a
$dir

 beállításnál ../htdocs helyett például ../asd-ra
Szerk. 2:
  Valamint a fájl nevének ebben a verzióban még index.phpnak kell lennie
« Utoljára szerkesztve: 2014. szeptember 15. - 19:10:12 írta Nukerdog »

File System v0.2
« Válasz #5 Dátum: 2014. szeptember 20. - 00:07:05 »
0 Show voters
v0.2 hozzáadva!
Azt nem értem, hogy van rajta 160 megtekintés, de senki nem ír semmit hozzá.. ???
« Utoljára szerkesztve: 2014. szeptember 20. - 21:33:04 írta Nukerdog »

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
File System v0.2
« Válasz #6 Dátum: 2014. szeptember 20. - 22:01:51 »
0 Show voters
Mivan ha a mappám nevébe van pont? (Vegyünk például egy torrentes filmet, azoknak a nevei általában ponttal van elválasztva)
Inkább használd:
http://php.net/manual/en/function.is-file.php
http://php.net/manual/en/function.is-dir.php

File System v0.2
« Válasz #7 Dátum: 2014. szeptember 20. - 23:53:52 »
0 Show voters
Köszi a tanácsot. Erre már én is gondoltam. De mint írtam még nem nagyon csináltam ilyet, nem nagyon ismer(t)em a funkciókat :)
Következõ verzióba kijavítom
E: Egyébként elõször azt csináltam a fájlszerkesztés megírásánál, hogy / jelenként felbontottam a címben lévõ fájlt (pl torrent/porn/anal.sexvideo.51.831 [jó példa :D]) és az utolsó / jel utáni szöveget tekintem fájlnévnek. Végülis az is jó megoldás szerintem.
« Utoljára szerkesztve: 2014. szeptember 21. - 00:04:17 írta Nukerdog »

File System v0.2
« Válasz #8 Dátum: 2014. december 31. - 21:00:22 »
0 Show voters
Nekem bejön.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal