Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Usuwanie pliku przez użytkownika
tosiek
post
Post #1





Grupa: Zarejestrowani
Postów: 142
Pomógł: 0
Dołączył: 7.07.2008

Ostrzeżenie: (0%)
-----


Witam. Mam prosty zamiar dać użytkownikowi możliwość usunięcia pliku.

Aktualnie zapisuję sobie:
  1. <?php
  2. $czas = time();
  3. $nazwa = $czas . $_FILES['userfile']['name'];
  4. file_put_contents(dirname(__FILE__) . "/../../../../wynikowe/" . $nazwa, $plik);
  5. ?>


No i podaję bezpośredni link do pobrania. I link do usunięcia który działa w ten sposób:
  1. <?php
  2. if(isset($_GET['usun']))
  3. {
  4. unlink(dirname(__FILE__) . "/../../../../wynikowe/" . urldecode($_GET['usun']));
  5. echo "plik usuniety";
  6. }
  7. echo '<a href="http://tosiek.pl/converter/?usun=' . urlencode($nazwa) . '">Usuń plik: ' . $_FILES['userfile']['name'] . '</a>';
  8. ?>


I teraz pytanie czy przez to unlink da się usunąć inne pliki, poza katalogiem wynikowe ? I jak to zabezpieczyć ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tosiek
post
Post #2





Grupa: Zarejestrowani
Postów: 142
Pomógł: 0
Dołączył: 7.07.2008

Ostrzeżenie: (0%)
-----


Niestety nigdzie nie przechowuje listy plików, jest to mi zbędne (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

użycia basename() wystarcza, przynajmniej tak mi się wydaje ;P

  1. <?php
  2. if (isset($_GET["usun"]))
  3. {
  4.    $usun = "/home/tosiek/domains/tosiek.pl/public_html/wynikowe/" . basename(urldecode($_GET['usun']));
  5.    if(!file_exists($usun))
  6.    {
  7.        echo "<h2><span style=\"color:red;\">Plik nie istnieje lub został już usunięty</span></h2>";
  8.    }
  9.    else
  10.    {
  11.        $usun2 = basename($usun);
  12.        if($usun2 === ".htaccess" || $usun2 === "index.htm")
  13.        {
  14.            echo "<h2><span style=\"color:red;\">Zabraniam Ci usuwania...</span></h2>";
  15.        }
  16.        else
  17.        {
  18.            if (unlink($usun))
  19.            {
  20.                echo"<h2><span style=\"color:green;\">Usunięto plik $usun2</span></h2>";
  21.            }
  22.            else
  23.            {
  24.                echo"<h2><span style=\"color:red;\">Błąd usuwania {$usun2}</span></h2> <p>$php_errormsg</p>";
  25.            }
  26.        }
  27.    }
  28. }
  29. ?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 00:56