Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Usuwanie pliku
Forum PHP.pl > Forum > PHP
Stron: 1, 2
david8213
Chodzi mi o linijkę gdzie jest button z usuwaniem pliku. Co jest nie tak że nie działa ?

Kod
...........

echo $display[get_extension($sfiles[$y])]; //b
                         echo "\"> ";  //c     a,b,c = wyswietlają obrazki poszczególnych plików
                         echo "<a href=\"http://".$_SERVER['SERVER_NAME']."$prefix/$dir1$sfiles[$y]\">$sfiles[$y]</a>";
                         if($showsize)  { // wyświetla rozmiar plików:
                                           echo "</td><td width=\"100\" bgcolor=\"#F5F5F5\"><a><div style=\"margin-left: 5\">";
                                        $fsize = @filesize($sfiles[$y])/1024;
                                        printf(" [%.2f kB]", $fsize);
                        --------->>>>        echo "</a></td> <td><input type=\"button\" value=\"Delete\" onClick=\".unlink($prefix/$dir1$sfiles[$y]).\"> </td> </tr></table>";
                                        }

...............
markonix
Mieszasz dwa różne języki w niewłaściwy sposób oraz wklejasz kod na forum w zły znacznik, aż dziw że masz staż na forum prawie 3 lata.
jaunde
Straszliwy śmietnik ten kod. Moim zdaniem powinieneś to przepisać bo w przyszłości sam nie będziesz mógł tego odczytać.
david8213
nie ma tu żadnego śmietnika. dla mnie jest to czytelne.

w takim razie proszę o pomoc z usuwaniem pliku :

  1. <?php
  2. $nazwa_pliku = 'test.txt';
  3. echo " <input type=\"button" value=\"Delete\" onClick=\"'.unlink($nazwa_pliku).'\">";
  4. ?>


Dlaczego to mi nie działa

unlink($nazwa_pliku)

zamiast $nazwa_pliku ma być pętla bo jest wyświetlona lista plików i w zależności który button przy pliku wcisnę to dany plik mi skasuje.

Można w ogóle wstawić coś takiego :

  1.  
  2. unlink($sfiles[$y])
  3.  
markonix
Cytat(david8213 @ 11.06.2012, 20:07:24 ) *
Można w ogóle wstawić coś takiego :

  1.  
  2. unlink($sfiles[$y])
  3.  


Nie można, już Ci odpisałem w pierwszym poście.

Słowo klucz: ajax.
!*!
Cytat
nie ma tu żadnego śmietnika. dla mnie jest to czytelne.


Masz racje, nie ma śmietnika jest burdel że tylko dziwek brakuje. Już Ci napisali że źle łączysz oba języki, a Ty nadal swoje? Albo użyjesz AJAX, albo zrób tam formularz, sprawdź czy został wysłany i wtedy usuń plik.
greycoffey
Cytat(!*! @ 11.06.2012, 21:35:16 ) *
Masz racje, nie ma śmietnika jest burdel że tylko dziwek brakuje. Już Ci napisali że źle łączysz oba języki, a Ty nadal swoje? Albo użyjesz AJAX, albo zrób tam formularz, sprawdź czy został wysłany i wtedy usuń plik.

thumbsupsmileyanim.gif
lukaskolista
Nie moglem sie powstrzymac. Padlem, jak to zobaczylem:
  1. echo " <input type=\"button" value=\"Delete\" onClick=\"'.unlink($nazwa_pliku).'\">";
Jestes na 1 miejscu mojej top listy. Jakim cudem na onClicku (JavaScript) chcesz wywolac funkcje w php?

Dodam, ze JS wykonuje sie po stronie klienta, a php po stronie serwera. Dodam rowniez, ze przegladarka w zadnym stopniu nie ma mozliwosci ingerowania na serwerze (cale szczescie, bo by takie cuda jeszcze zaczely dzialac)
david8213
uważasz że to nie działa ? sprawdź zanim coś napiszesz. jesteś w tyle chłopie

  1. <?php
  2.  
  3. $nazwa_pliku = 'test.txt';
  4.  
  5.  
  6. echo " <input type=button value=Delete onClick=\"'.unlink($nazwa_pliku).'\">";
  7.  
  8. ?>


bez najmniejszego problemu chodzi

Dlatego ponawiam pytanie oczywiście nie do Was bo się nie znacie

Czy da radę to zrobić w pętli

  1. #
  2. unlink($sfiles[$y])
!*!
Ty na serio jesteś taki ciemny? Zdziwiłbym się jakby Ci to nie działało, przecież wykonujesz kod PHP w ECHO, tylko umieszczasz go w znacznikach HTML i JS, nie wiadomo po co, bo myślisz że to poprawne? Przestań.

Nie zrobisz tego tak i w ogóle źle się do tego zabierasz, nie znasz podstaw. Aby usunąć więcej niż 1 plik, to:

1. musisz mieć formularz
2. pole w formularzu które zbierze zaznaczone pliki (checkbox) i zlepi to w tablice
3. skrypt php który te tablice odbierze i przeleci w pętli aby je usunąć.

ps. nie wiem czy zauważyłeś, ale ten pliku usuwa Ci się z chwilą wyświetlenia tego buttonu, a nie z chwilą jego kliknięcia, ale to pewnie drobiazg, taki ktoś jak Ty z pewnością to zaplanował, a My wszyscy z pewnością się na tym nie znamy.
lukaskolista
Cytat
jesteś w tyle chłopie
Ja jestem w tyle? Co z tego, ze cos dziala, skoro dziala zle? Wez sie ogarnij. I dzieki za info, bede pamietal, ze jestem w tyle.

Co do Twojego pytania: jezeli iterujesz tablice z nazwami plikow to tak, da rade.
david8213
Poniższy kod działa. Służy do wyświetlania alfabetycznie zawartości katalogu

  1. <?php
  2. $showsize = 1;
  3. $display['php'] = "php.bmp";
  4. $display['odt'] = "doc.bmp"; // word openoffice
  5. $display['rtf'] = "doc.bmp"; // word
  6. $display['xml'] = "xml.bmp";
  7. $display['ods'] = "xml.bmp"; // excel openoffice
  8. $display['xlt'] = "xml.bmp"; // excel
  9. $display['mp3'] = "mp3.bmp";
  10. $display['pdf'] = "pdf.bmp";
  11. $display['exe'] = "exe.bmp";
  12. $display['rar'] = "rar.bmp";
  13. $display['zip'] = "rar.bmp";
  14. $display['tar'] = "rar.bmp";
  15. $display['gz'] = "rar.bmp";
  16. $display['ddb'] = "ddb.bmp";
  17. $display['avi'] = "avi.bmp";
  18. $display['mpg'] = "mpg.bmp";
  19. $excludedir[] = "temp";
  20. $excludedir[] = "tmp";
  21.  
  22.  
  23.  
  24. ?>
  25. <HTML><HEAD>
  26. <style type="text/css">
  27. <!--
  28. a {color:#000000; text-decoration:none; font-family:Verdana; font-size:11px; letter-spacing:1};
  29. a:link {color:#000000; text-decoration:none; font-family:Verdana; font-size:11px; letter-spacing:1};
  30. a:visited {color:#000000; text-decoration:none; font-family:Verdana; font-size:11px; letter-spacing:1};
  31. a:active {color:#EA0000; text-decoration:none; font-family:Verdana; font-size:11px; letter-spacing:1};
  32. a:hover {color:#EA0000; text-decoration:none; font-family:Verdana; font-size:11px; letter-spacing:1};
  33. -->
  34. </style>
  35. </HEAD>
  36.  
  37.  
  38. <?php
  39. $root = getcwd(); // potrzebne zeby wywołać funkcję list_dir($chadir)
  40. $pre = explode("/", $_SERVER['REQUEST_URI']);
  41. array_pop($pre);
  42. $prefix = join("/", $pre); // pokazuje aktualną ścieżkę katalogu po nazwie serwera
  43.  
  44.  
  45. /* pokazuje nazwe serwera.. */
  46.  
  47. echo " <img src=photos/img/server.gif align=middle><a href=index.php> http://".$_SERVER['SERVER_NAME'];
  48. echo "$prefix/</a><br>"; // cd.. pokazuje aktualną ścieżkę katalogu po nazwie serwera
  49.  
  50. echo "<br><img src=\"photos/img/home.png\" border=0 align=middle> home </a>";
  51. echo " <a href=\"java script:history.back();\"><img src=\"photos/img/back.gif\" border=0 align=middle> back</A><br>";
  52.  
  53. echo " ";
  54.  
  55. function get_extension($name) {
  56. $array = explode(".", $name);
  57. $retval = strtolower(array_pop($array));
  58. return $retval;
  59. }
  60.  
  61. function list_dir($chdir) {
  62. // $showsize zmienna - służy do wyświetlania rozmiaru
  63. global $root, $showsize, $display, $prefix, $showsize; // narzucam tu z góry jakie rozszerzenia będą wyświetlane - display
  64. unset($sdirs);
  65. unset($sfiles);
  66. chdir($chdir);
  67. $handle = opendir('.'); // otwiera katalog
  68.  
  69. while ($file = readdir($handle)) // czyta katalog
  70. {
  71. if(is_dir($file) && $file != "." && $file != ".." && $file != "img" )
  72. { $sdirs[] = $file; }
  73. elseif(is_file($file) && $file != "index.php" && $file != "file.txt" && $file != "add_files.php" && array_key_exists(get_extension($file), $display)) // self -> nie wyświetla pliku wykonywalnego w tej chwili (z tym kodem)
  74. { $sfiles[] = $file; }
  75. }
  76.  
  77. if(is_array($sdirs)) // sortuje alfabetycznie :
  78. {
  79. sort($sdirs);
  80. for($y=0; $y<sizeof($sdirs); $y++)
  81. {
  82. echo "<br>";
  83. echo "<a href=\"http://".$_SERVER['SERVER_NAME']."$prefix/$dir1$sdirs[$y]\"><img align=middle src=photos/img/folder.gif border=0> $sdirs[$y]</a>";
  84. }
  85. }
  86. echo "<br>"; // przerwa miedzy katalogami a plikami
  87.  
  88. if(is_array($sfiles)) // sortuje alfabetycznie :
  89. {
  90. sort($sfiles);
  91. for($y=0; $y<sizeof($sfiles); $y++)
  92. {
  93. echo "<table><tr><td bgcolor=\"#F5F5F5\"> <a href=\"http://".$_SERVER['SERVER_NAME']."$prefix/$dir1$sfiles[$y]\"><img src=\"http://".$_SERVER['SERVER_NAME']."$prefix/$dir1$sfiles[$y]\" width=\"60\" heigh=\"100\" border=\"0\"></a> <td bgcolor=\"#F5F5F5\" width=\"20\">   </td> </td><td width=\"500\" bgcolor=\"#F5F5F5\">";
  94. echo " <img align=absmiddle src=\""; //a
  95. echo $display[get_extension($sfiles[$y])]; //b
  96. echo "\"> "; //c a,b,c = wyswietlają obrazki poszczególnych plików
  97. echo "<a href=\"http://".$_SERVER['SERVER_NAME']."$prefix/$dir1$sfiles[$y]\">$sfiles[$y]</a>";
  98. if($showsize) { // wyświetla rozmiar plików:
  99. echo "</td><td width=\"100\" bgcolor=\"#F5F5F5\"><a><div style=\"margin-left: 5\">";
  100. $fsize = @filesize($sfiles[$y])/1024;
  101. printf(" [%.2f kB]", $fsize);
  102. echo "</a></td> <td bgcolor=\"#F5F5F5\" width=\"80\"><center> TU CHCIAŁEM WSTAWIĆ KASOWANIE PLIKU (PĘTLA -> NAZWA PLIKU, Z ODŚWIEŻENIEM STRONY PO WYKASOWANIU PLIKU)</td> </tr></table>";
  103. }
  104. }
  105. }
  106. } //zamyka funkcję
  107.  
  108. (list_dir($root)); // wywołanie funkcji - wyświetla listę katalogów i plików
  109.  
  110. ?>
  111.  
  112. </body>
  113. </html>
  114.  
  115.  
  116.  
  117.  


Chciałem dołożyć

  1. 1.
  2. <?php
  3. 2.
  4.  
  5. 3.
  6. $nazwa_pliku = 'test.txt';
  7. 4.
  8.  
  9. 5.
  10.  
  11. 6.
  12. echo " <input type=button value=Delete onClick=\"'.unlink($nazwa_pliku).'\">";
  13. 7.
  14.  
  15. 8.
  16. ?>


Wklep sobie to i sprawdź i nie upieraj się że nie działa


Jeśli ma ktoś pomysł jak to zrobić prościej to proszę o kod (z boku każdego pliku ma być przycisk z kasowaniem danego pliku)
lukaskolista
Czy Ty jestes naprawde taki glupi, czy tylko udajesz? Temat jest o unlinku w kodzie html, nikt nie mowil, ze listowanie katalogu nie dziala. Twoj kod jest co najmniej beznadziejny, mieszasz html z php w najgorszy mozliwy sposob. Ponadto programujesz jak sprzed 10 lat, global sie juz dawno nie uzywa, jak przerabiasz tutorial z sieci to sprawdz date, kiedy zostal napisany.
david8213
Dobra. Przyznam że ostatnio robiłem dawno temu. unlink działa. Zakończmy tę sprzeczkę.

Czy możecie mi pomóc poniższym kodzie. Ma być wyświetlany alfabetycznie i z przyciskami usuń obok każdego pliku

  1. <?PHP
  2.  
  3. $OpenDir=opendir(".");
  4. while (($katalog = readdir($OpenDir))!=false)
  5. { if(($katalog!=".") && ($katalog!="..") && ($katalog!="index.php") && ($katalog!="images") && (is_dir($katalog)))
  6. {
  7. echo("<a href='$katalog'>$katalog</a><br>");
  8. }
  9. }
  10. $OpenDir=opendir(".");
  11. while (($file = readdir($OpenDir))!=false)
  12. { if(($file!=".") && ($file!="..") && ($file!="index.php") && ($file!="images") && (is_file($file)))
  13. {
  14. echo("<table><tr><td><a href='$file'>$file</a>");
  15.  
  16.  
  17. $fsize = @filesize($file)/1024;
  18. printf(" (%.2f kB)", $fsize);
  19.  
  20. echo("<br></td></tr></table>");
  21.  
  22.  
  23. }
  24. }
  25. ?>


Rozmiar pliku już zrobiłem chodzi tylko o wyśw. alfabetycznie i buttony usuń
!*!
Cytat
Dobra. Przyznam że ostatnio robiłem dawno temu. unlink działa. Zakończmy tę sprzeczkę.

Działa, ale nie z Twoim przykładem, bo Ty myślisz że usuwa się cokolwiek jak klikniesz w przycisk, a tak nie jest.
Szczerze mówiąc Twój kod jest tak stary że już sam nie pamiętam jak to się robiło kiedyś... Rzucę Ci przykład jak to się robi teraz:

  1. $directory = '../katalog'; // ścieżka do katalogu
  2. $filetab = array();
  3. $di = new DirectoryIterator($directory);
  4. foreach ($di as $files)
  5. {
  6. $onlydirectory = !$files -> isDir() and !$files -> isDot();
  7. $filename = $files -> getFilename();
  8. $date = $files -> getMTime();
  9. $date = date("d-m-Y H:i", $date);
  10.  
  11. $size = $files -> getSize();
  12. $sizeinkb = round($size/1024);
  13.  
  14. if($onlydirectory) {
  15. $filetab[$filename] = array(
  16. 'filename' => $files ->getFileName(),
  17. 'size' => $files ->getSize(),
  18. 'date' => $files ->getMTime()
  19. );
  20. }
  21. }
  22. ksort($filetab); // sortowanie według nazwy pliku
  23.  
  24. // Wyświetlenie plików będących w katalogu
  25. foreach ($filetab as $filename => $files) {
  26. echo '
  27. Nazwa: '.$files['filename'].'
  28. Data zapisu: '.date('d-m-Y H:i', $files['date']).'
  29. Rodzaj: '.fileextension($files['filename']).'
  30. Rozmiar: '.getfilesize($files['size']).'
  31. ';
  32. }


Jeśli chcesz usunąć plik, to masz 2 wyścia z czego 1 już podałem wyżej... Po prostu robisz link do pliku usunplik.php?file=nazwa.php gdzie file to nazwa pliku jaki masz/chcesz usunąć.
david8213
Coś jest nie tak z Twoim kodem - nie działa

Aktualny katalog to ?

  1. $directory = './';


tak ?
!*!
Działa, wszytko jest ok, ścieżka do katalogu, to ścieżka do katalogu ;], możesz wpisać

  1. ./
  2. //lub
  3. dirname(__FILE__)


Jedynie nie działają dwie funkcje bo ich nie podałem więc zamień:

  1. Rodzaj: '.fileextension($files['filename']).'
  2. Rozmiar: '.getfilesize($files['size']).'


Na

  1. Rodzaj: '.$files['filename'].'
  2. Rozmiar: '.$files['size'].'
david8213
MOżesz mi podać rozwiązanie jak zrobić to kasowanie plików bo coś mi nie wychodzi ?

Oraz nie wyświetlanie plików wymienionych w funkcji lub z danym rozszerzeniem
!*!
Cytat
MOżesz mi podać rozwiązanie jak zrobić to kasowanie plików bo coś mi nie wychodzi ?

Robisz link
  1. http://domena/jakisplik.php?file=tenplik.php


Później w jakisplik.php dajesz

  1. if(isset($_GET['file']))
  2. {
  3. // tu sprawdzasz czy plik istnieje, czy jest plikiem i usuwasz
  4. }


Cytat
Oraz nie wyświetlanie plików wymienionych w funkcji lub z danym rozszerzeniem


  1. $onlydirectory = !$files -> isDir() and !$files -> isDot();


Ta linijka jest za to odpowiedzialna, w chwili obecnej nie wyświetla katalogów nadrzędnych, oraz w ogóle katalogów w podanej ścieżce, dodaj tu funkcje która usunie pliki z rozszerzeniem. Ewnetualnie możesz zrobić IFy już przy wyświetlaniu plików.
david8213
Coś takiego ?

  1. $onlydirectory = !$files -> isDir() and !$files -> isDot() and $files != "index.php";



Co z usuwaniem nie tak zrobiłem że nie chodzi ?

index.php
  1. <?PHP
  2.  
  3. $directory = './'; // ścieżka do katalogu
  4.  
  5. $filetab = array();
  6.  
  7. $di = new DirectoryIterator($directory);
  8.  
  9. foreach ($di as $files)
  10.  
  11. {
  12.  
  13. $onlydirectory = !$files -> isDir() and !$files -> isDot() and $files != "index.php";
  14.  
  15. $filename = $files -> getFilename();
  16.  
  17. $date = $files -> getMTime();
  18.  
  19. $date = date("d-m-Y H:i", $date);
  20.  
  21.  
  22. $size = $files -> getSize();
  23.  
  24. $sizeinkb = round($size/1024);
  25.  
  26.  
  27.  
  28. if($onlydirectory) {
  29.  
  30. $filetab[$filename] = array(
  31.  
  32. 'filename' => $files ->getFileName(),
  33.  
  34. 'size' => $files ->getSize(),
  35.  
  36. 'date' => $files ->getMTime()
  37.  
  38. );
  39.  
  40. }
  41.  
  42. }
  43.  
  44. ksort($filetab); // sortowanie według nazwy pliku
  45.  
  46.  
  47.  
  48. // Wyświetlenie plików będących w katalogu
  49.  
  50. foreach ($filetab as $filename => $files) {
  51.  
  52. echo '
  53.  
  54. <table width="900"><tr>
  55.  
  56. <td bgcolor="#FFFFFF" width="10"> <center><a href="'.$files['filename'].'">
  57.  
  58. <img src="'.$files['filename'].'" border="0" width="100" heiht="60"></a></td>
  59.  
  60. <td bgcolor="#F5F5F5" width="300"> <a href="'.$files['filename'].'">'.$files['filename'].'</a> </td>
  61.  
  62. <td bgcolor="#F5F5F5" width="70"><center> '.date('d-m-Y H:i', $files['date']).' </td>
  63.  
  64. <td bgcolor="#F5F5F5" width="70"><center> '.$files['size'].' Kb </td>
  65.  
  66. <td bgcolor="#F5F5F5" width="70"><center> <a href="delete.php?file=tenplik.php">usuń</a></td> // kasowanie plików
  67.  
  68. </tr></table> ';
  69.  
  70. }
  71.  
  72. ?>
  73.  
  74.  


delete.php
  1. <?PHP
  2. if(isset($_GET['file']))
  3.  
  4. {
  5.  
  6. unlink($file);
  7.  
  8. }
  9.  
  10. ?>
!*!
Cytat
Co z usuwaniem nie tak zrobiłem że nie chodzi ?


Nie podałeś nazwy pliku w linku jaki chcesz usunąć.
david8213
Muszę jeszcze raz poprosić o pomoc bo coś chyba robię źle

index.php
  1. ...
  2. <a href="delete.php?file='.$files['filename'].'">usuń</a>
  3. <table>.... ';
  4. ...


delete.php
  1. <?PHP
  2. if(isset($_GET['file']))
  3. {
  4. unlink($file);
  5. }
  6. ?>
!*!
Nie przekazujesz danych do funkcji unlink jakie odbierasz.
david8213
a mógłbyś to napisać w PHP ?
Tajgeer
$_GET['file'] to nie to samo, co $file
david8213
Czyli tak ?

  1. <?PHP
  2. if(isset($_GET['file']))
  3.  
  4. }
  5.  
  6. unlink($_GET['file']);
  7. }
  8.  
  9. ?>
!*!
Tak.
david8213
niestety nie działa

!*!
Poważnie? Ty patrz, a Tyle się mówi o tym że murawa musi mieć 23mm...
david8213
Pomożesz. Nie znam się za bardzo na tym
!*!
Nie mam, jak i inni zapewnie, szklanej kuli. Co nie działa? Jakie błędy? Gdzie?
david8213
index.php
  1. <a href="delete.php?plik='.$files['filename'].'">usuń</a>




delete.php
  1. <?PHP
  2. $kasowany_plik = $HTTP_GET_VARS ['plik'];
  3. if(!isset($kasowany_plik)) {
  4. unlink("$kasowany_plik");
  5. }
  6.  
  7. ?>
  8.  
  9. <script LANGUAGE="JavaScript">
  10. window.clear;
  11. window.location.href="index.php";
  12. </SCRIPT>


Błędów nie ma poprostu nie usuwa
!*!
Kod
<a href="./delete.php?plik='.$files['filename'].'">usuń</a>


  1. <?PHP
  2. if(isset($_GET['plik']))
  3. {
  4. unlink($_GET['plik']);
  5. }
  6.  
  7. ?>


Zapomnij o $HTTP_GET_VARS, stosuj $_GET, nie przypisuj zmiennych globalnych do zmiennych. I sprawdź czy index.php jest w tym samym katalogu co delete.php (sprawdź ścieżkę do niego). To działa na pewno, jeśli u Ciebie nie możliwe że masz starą wersje PHP.

Edycja, jest róznica między isset($_GET['plik'] a !isset($_GET['plik']... miałeś tą 2, więc chciałeś usunąć plik gdy go nie ma?

Zajrzyj do kursu PHP, bo masz duże braki.
david8213
dalej nie chodzi questionmark.gif jestem na serwerze prv więc powinno działać
!*!
To masz coś źle. Sprawdź jak włączyć błędy w PHP, jaką masz wersje. Kod tu podany jest poprawny i działa.
david8213
OK dzięki. Jeszcze mógłbyś mi pomóc w wkrywaniem plików i pokazywaniem katalogów bo coś nie śmiga

  1. $onlydirectory = !$files -> isDir() and $files != "index.php";



Chcę żeby były widoczne katalogi oraz żeby były ukryte pliki index.php i soft.txt oraz żeby były ukryte wszystkie pliki z rozszerzeniem html
Niktoś
A gdzie masz ten plik który chcesz usunąć-może w jakimś folderze w katalogu głównym?
david8213
jest w tym samym katalogu co index i delete w innym przypadku dałbym

  1. <?PHP
  2. if(!isset($_GET['plik']))
  3. {
  4. unlink($_GET['katalog/plik']);
  5. }
  6.  
  7. ?>
Niktoś
To w powyższym przypadku byłoby to źle.Poprawnie musiałbyś napisać tak:
  1. if(!isset($_GET['plik']))
  2. {
  3. unlink("katalog/".$_GET['plik']);
  4. }
  5.  
  6. ?>
!*!
Niktoś - a jak chcesz usunąć plik skoro get nie istnieje?
david8213
no tak, pomyłka.


Możesz odpowiedziec mi na pytanie 5 posty wyżej? z wyświetlanie katalogów i ukrywanie plików
jak ukrywać rozszerzenia ?
Niktoś
A mógłbyś powiedzieć po co chcesz je ukrywać i to index.php?A jak taka strona będzie pozycjonowana niby?
Cytat
jak ukrywać rozszerzenia ?

http://poradnik-seo.pl/optymalizacja/usuwa...od-rewrite.html
david8213
Skrypt w PHP wyświetlać ma w katalogu pliki graficzne jpg,bmp,tif oraz katalogi . Co należy dodać i gdzie ?
nie ma pokazywać plików php,html
Dostępne ma być też kasowanie danego pliku co narazie mi nie chce działć

index.php
  1. <?PHP
  2.  
  3. $directory = './'; // ścieżka do katalogu
  4.  
  5. $filetab = array();
  6.  
  7. $di = new DirectoryIterator($directory);
  8.  
  9. foreach ($di as $files)
  10.  
  11. {
  12.  
  13. $onlydirectory = !$files -> isDir() and !$files -> isDot();
  14.  
  15. $filename = $files -> getFilename();
  16.  
  17. $date = $files -> getMTime();
  18.  
  19. $date = date("d-m-Y H:i", $date);
  20.  
  21.  
  22. $size = $files -> getSize();
  23.  
  24. $sizeinkb = round($size/1024);
  25.  
  26.  
  27.  
  28. if($onlydirectory) {
  29.  
  30. $filetab[$filename] = array(
  31.  
  32. 'filename' => $files ->getFileName(),
  33.  
  34. 'size' => $files ->getSize(),
  35.  
  36. 'date' => $files ->getMTime()
  37.  
  38. );
  39.  
  40. }
  41.  
  42. }
  43.  
  44. ksort($filetab); // sortowanie według nazwy pliku
  45.  
  46.  
  47.  
  48. // Wyświetlenie plików będących w katalogu
  49.  
  50. foreach ($filetab as $filename => $files) {
  51.  
  52. echo '
  53.  
  54. <table width="900"><tr>
  55.  
  56. <td bgcolor="#FFFFFF" width="10"> <center><a href="'.$files['filename'].'"><img src="'.$files['filename'].'" border="0" width="100" heiht="60"></a></td>
  57.  
  58. <td bgcolor="#F5F5F5" width="300"> <a href="'.$files['filename'].'">'.$files['filename'].'</a> </td>
  59.  
  60. <td bgcolor="#F5F5F5" width="70"><center> '.date('d-m-Y H:i', $files['date']).' </td>
  61.  
  62. <td bgcolor="#F5F5F5" width="70"><center> '.$files['size'].' Kb </td>
  63.  
  64. <td bgcolor="#F5F5F5" width="70"><center> <a href="delete.php?plik='.$files['filename'].'">usuń</a></td>
  65.  
  66. </tr></table> ';
  67.  
  68. }
  69.  
  70. ?>



delete.php
  1. <?PHP
  2. if(!isset($_GET['plik']))
  3. {
  4. unlink($_GET['plik']);
  5. }
  6. ?>
  7.  
  8.  
  9.  
  10. <script LANGUAGE="JavaScript">
  11. window.location.href="index.php";
  12. </SCRIPT>
Niktoś
No to wyszukuj pliki tylko z określonym rozszerzeniem -prosta procedura określenia rozszerzenia w pliku:
  1. $filename = 'mojplik.gif';
  2. $ext = pathinfo($filename, PATHINFO_EXTENSION);
  3. if (($ext=="gif") and ($ext=="jpg")){
  4. //...........dodaj do tabeli widocznych plików.........
  5. }
  6.  
david8213
co to jest mojplik.gif

a jak chcę ukryć pliki o określonych rozszerzeniach questionmark.gif
Niktoś
To był przykład tylko-mojplik.gif-to wymyślona nazwa pliku.
Cytat
a jak chcę ukryć pliki o określonych rozszerzeniach questionmark.gif

A przeanalizowałeś ten przykład choć trochę?
W tej linice określasz rozszerzenia:

if (($ext=="gif") and ($ext=="jpg")){


}
I jeśli spełni wymagania w bloku wykonujesz dalsze instrukcje.
Niktoś
Pobierasz pliki ,sprawdzasz rozszerzenia tych plików, jakie tam chcesz czy to gif,czy jpg i dodajesz do listy(tablicy) plików-resztę plików po prostu pomijasz(dlatego instrukcja warunkowa if).
Naprostuje bo zrobiłem błędzik -powinno być or zamiast and.
  1. if (($ext=="gif") || ($ext=="jpg")){
  2. //tutaj sprawdziłeś rozszerzenia i dodajesz do listy
  3.  
  4. }
david8213
w którym miejscu to wkleić ? Przecież piszę że się nie znam na tyle. Masz kod na górze strony
Niktoś
  1. foreach ($filetab as $filename => $files) {
  2. $ext = pathinfo($files['filename'], PATHINFO_EXTENSION);
  3. if (($ext=="gif") || ($ext=="jpg")){
  4.  
  5. //...........dodaj do tabeli widocznych plików.........
  6.  
  7.  
  8. echo '
  9.  
  10. <table width="900"><tr>
  11.  
  12. <td bgcolor="#FFFFFF" width="10"> <center><a href="'.$files['filename'].'"><img src="'.$files['filename'].'" border="0" width="100" heiht="60"></a></td>
  13.  
  14. <td bgcolor="#F5F5F5" width="300"> <a href="'.$files['filename'].'">'.$files['filename'].'</a> </td>
  15.  
  16. <td bgcolor="#F5F5F5" width="70"><center> '.date('d-m-Y H:i', $files['date']).' </td>
  17.  
  18. <td bgcolor="#F5F5F5" width="70"><center> '.$files['size'].' Kb </td>
  19.  
  20. <td bgcolor="#F5F5F5" width="70"><center> <a href="delete.php?plik='.$files['filename'].'">usu�</a></td>
  21.  
  22. </tr></table> ';
  23. }
  24. }

lepiej byłoby to zrobić już na etapie pobierania do tablicy $filetab , ale tak też może być.
david8213
ok. Chodzi. A dlaczego nie działa mi usuwanie plików??
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.