Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak usunąc plik?
Forum PHP.pl > Forum > Przedszkole
Twist
delete.php
  1. <?
  2. if (isset($_POST['delete_plik'])){
  3. $delete_plik = $_POST['delete_plik'];
  4. unlink(/uploaded_files/$delete_plik);
  5. }
  6. else{
  7.  
  8.    echo"
  9.           <form action=browser.php method=POST>
  10.           <input type='text' name=delete_plik>
  11.           <input type='submit' value=Usun>
  12.        
  13.                    </form>
  14.    
  15.    ";
  16.    
  17. }
  18. ?>


browser.php

  1. <?php
  2. $kat = upload_files;
  3. if (empty($kat))
  4.   $kat = ".";
  5.  else
  6.   $kat = realpath($kat);
  7. echo "Zawartosc katalogu : " . $kat . "<br>";
  8. echo "<hr><br>";
  9. $katalog = dir($kat);
  10.  
  11. while($plik = $katalog->read()){
  12.  if (is_dir($kat . "/" . $plik)) {
  13.  echo "<A HREF='kat.php?katalog=$kat/$plik'>[" . $plik . "]</A><BR>";
  14.  }
  15.  else
  16. {
  17.  echo "<A HREF='" . $plik . "'>" . $plik . "</A><BR>";
  18. }
  19. }
  20.  
  21. $katalog->close();
  22. require('upload_files/delete.php');
  23. ?>


Odpalam browser.php wpisuje nazwe pliku i wyskakuej błąd

Parse error: syntax error, unexpected '/', expecting ')' in (...)\upload_files\delete.php on line 4

a gdy daje

unlink(uploaded_files\$delete_plik);

to bład dzielenia przez 0 =/

Jak to zrobić prawidłowo?
sowiq
unlink("/uploaded_files/$delete_plik");
Twist
OK. dzięki. Teraz dostaje cos takiego:

Warning: unlink(/upload_files/plik.php) [function.unlink]: No such file or directory

plik.php istnieje. Skopiowałem adres, wkleiłem do paska adresu i sie wyswietlił. O co chodzi?
webdice
  1. <?php
  2. unlink ('uploaded_files/$delete_plik');
  3. ?>


Plik delete.php musi być w tym samym katalog co katalog uploaded_files.
empathon
Cytat(webdice @ 31.10.2008, 15:25:46 ) *
  1. <?php
  2. unlink ('uploaded_files/$delete_plik');
  3. ?>


Plik delete.php musi być w tym samym katalog co katalog uploaded_files.

  1. <?php
  2. unlink ("uploaded_files/$delete_plik");
  3. ?>

Bo inaczej wstawi mu $delete_plik winksmiley.jpg
Quapil
Jak zaczynasz ścieżkę od / to schodzisz z katalogu głównego. Musisz podać poprawną ścieżkę do pliku, który chcesz usunąć. Raczej użyj względnej ścieżki.
Twist
delete.php znajduje sie w upload_files
browser.php zanjduje sie katalog wyzej i robi

  1. <?php
  2. require('upload_files/delete.php');
  3. ?>


Założmy, że wsadze plik browser.php do katalogu upload_files i w zrobie require('browser.php'') na stronie glownej (x katalogow wyzej) to nie bedzie działało?
sowiq
Cytat
Założmy, że wsadze plik browser.php do katalogu upload_files i w zrobie require('browser.php') na stronie glownej (x katalogow wyzej) to nie bedzie działało?


Nie. Nie ma prawa zadziałać.

Robisz:
  1. <?php
  2. require_once("../../../../browser.php"); // jedna podwójna kropka to jeden katalog w górę.
  3. ?>
Quapil
Nie będzie, bo jak dasz require("browser.php") to php będzie szukało pliku browser.php w tym samym katalogu, co plik strony głównej. Musiałbyś dać require("x/katalogów/niżej/browser.php") w pliku strony głównej.

Najlepiej popróbuj sobie na prostych przykładach, a poznasz zasadę działania include/require itp. Zawsze liczysz od pliku, w który wcielasz dany plik.
Twist
Ja wiem, ze musze podac dokaldna sciezke do require(); napisalem w skrocie. Zrobilem tak jak pisaliscie tj.

1. browser.php i delete.php sa w tym samym folderze. Oprócz tych plików jest tam folder upload_files
2. Dodałem cudzysłów: unlink("/upload_files/$delete_plik");

I dalej ten sam bład:

Warning: unlink(/upload_files/dupa.php) [function.unlink]: No such file or directory

Napisze jak teraz wygląda kod

delete.php
  1. <?
  2. if (isset($_POST['delete_plik'])){
  3. $delete_plik = $_POST['delete_plik'];
  4. unlink("/upload_files/$delete_plik");
  5. }
  6. else{
  7.  
  8.    echo"
  9.           <form action=browser.php method=POST>
  10.           <input type='text' name=delete_plik>
  11.           <input type='submit' value=Usun>
  12.        
  13.                    </form>
  14.    
  15.    ";
  16.    
  17. }
  18. ?>


browser.php

  1. <?php
  2. $kat = upload_files;
  3. if (empty($kat))
  4.   $kat = ".";
  5.  else
  6.   $kat = realpath($kat);
  7. echo "Zawartosc katalogu : " . $kat . "<br>";
  8. echo "<hr><br>";
  9. $katalog = dir($kat);
  10.  
  11. while($plik = $katalog->read()){
  12.  if (is_dir($kat . "/" . $plik)) {
  13.  echo "<A HREF='kat.php?katalog=$kat/$plik'>[" . $plik . "]</A><BR>";
  14.  }
  15.  else
  16. {
  17.  echo "<A HREF='" . $plik . "'>" . $plik . "</A><BR>";
  18. }
  19. }
  20.  
  21. $katalog->close();
  22. require('delete.php');
  23. ?>
golaod
A ty na pewno wpisujesz nazwę pliku który istnieje ;] ? Zrób screena folderu ze skryptami i tego niby wyżej (ale tak żeby też było widać pasek adresu explorera) bo może dalej nie rozumiesz o co nam chodzi (a raczej tym panom co się wcześniej wypowiadali) ;]
Twist
golaod
OMG....
przecież dupa.php masz W TYM SAMYM FOLDERZE czyli bez uploaded_costam
sowiq
  1. <?php
  2. unlink("upload_files/$delete_plik");
  3. ?>

Czytaj uważniej co Ci piszą (mowa o empathon).
golaod
sowiq,a może popatrz najpierw na screena co ?
webdice
Cytat(empathon @ 31.10.2008, 15:27:06 ) *
  1. <?php
  2. unlink ("uploaded_files/$delete_plik");
  3. ?>

Bo inaczej wstawi mu $delete_plik winksmiley.jpg


Łeee, rzeczywiście winksmiley.jpg, ale i tak ładniej:

  1. <?php
  2. unlink ('uploaded_files/' . $delete_plik);
  3. ?>
Twist
Cytat(golaod @ 31.10.2008, 16:04:55 ) *
OMG....
przecież dupa.php masz W TYM SAMYM FOLDERZE czyli bez uploaded_costam



Nie. Po prostu w upload_files jest kopia browser.php i delete.php bo testowalem czy skrypt bedzie działał jak dam go do upload_files


Mam błąd już smile.gif Skopiowałem linijkę z nazwą folderu 'uploaded_files' a u mnie nazywa sie 'upload_files' - i wszystko jasne! Dzięki wszystkim!
sowiq
Cytat(golaod @ 31.10.2008, 16:06:14 ) *
sowiq,a może popatrz najpierw na screena co ?


A może Ty czytaj uważniej?

Cytat(Twist @ 31.10.2008, 15:44:07 ) *
1. browser.php i delete.php sa w tym samym folderze. Oprócz tych plików jest tam folder upload_files


Ps. przyznaję - nie patrzyłam na screena, ale jak się okazało, pliki były równorzędne w katalogiem, a w katalogu w jakimś celu były ich kopie. Autor uruchamiał pliki równorzędne, czyli tak jak pisałem.
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.