Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Jak usunąc plik?
Twist
post 31.10.2008, 15:16:29
Post #1





Grupa: Zarejestrowani
Postów: 174
Pomógł: 11
Dołączył: 12.10.2008
Skąd: Dublin

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


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?


Ten post edytował Twist 31.10.2008, 15:17:16
Go to the top of the page
+Quote Post
sowiq
post 31.10.2008, 15:18:34
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


unlink("/uploaded_files/$delete_plik");
Go to the top of the page
+Quote Post
Twist
post 31.10.2008, 15:23:42
Post #3





Grupa: Zarejestrowani
Postów: 174
Pomógł: 11
Dołączył: 12.10.2008
Skąd: Dublin

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


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?

Ten post edytował Twist 31.10.2008, 15:24:16
Go to the top of the page
+Quote Post
webdice
post 31.10.2008, 15:25:46
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




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


Plik delete.php musi być w tym samym katalog co katalog uploaded_files.
Go to the top of the page
+Quote Post
empathon
post 31.10.2008, 15:27:06
Post #5





Grupa: Zarejestrowani
Postów: 246
Pomógł: 31
Dołączył: 13.11.2006
Skąd: się znamy?

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


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


--------------------
Goldenline: Łukasz Rodziewicz
Go to the top of the page
+Quote Post
Quapil
post 31.10.2008, 15:27:59
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 30.10.2008

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


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.
Go to the top of the page
+Quote Post
Twist
post 31.10.2008, 15:32:32
Post #7





Grupa: Zarejestrowani
Postów: 174
Pomógł: 11
Dołączył: 12.10.2008
Skąd: Dublin

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


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?
Go to the top of the page
+Quote Post
sowiq
post 31.10.2008, 15:36:08
Post #8





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


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. ?>


Ten post edytował sowiq 31.10.2008, 15:37:20
Go to the top of the page
+Quote Post
Quapil
post 31.10.2008, 15:38:50
Post #9





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 30.10.2008

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


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.
Go to the top of the page
+Quote Post
Twist
post 31.10.2008, 15:44:07
Post #10





Grupa: Zarejestrowani
Postów: 174
Pomógł: 11
Dołączył: 12.10.2008
Skąd: Dublin

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


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. ?>
Go to the top of the page
+Quote Post
golaod
post 31.10.2008, 15:54:12
Post #11





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


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) ;]

Ten post edytował golaod 31.10.2008, 15:54:38
Go to the top of the page
+Quote Post
Twist
post 31.10.2008, 16:02:33
Post #12





Grupa: Zarejestrowani
Postów: 174
Pomógł: 11
Dołączył: 12.10.2008
Skąd: Dublin

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




Ten post edytował Twist 31.10.2008, 16:04:04
Go to the top of the page
+Quote Post
golaod
post 31.10.2008, 16:04:55
Post #13





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


OMG....
przecież dupa.php masz W TYM SAMYM FOLDERZE czyli bez uploaded_costam
Go to the top of the page
+Quote Post
sowiq
post 31.10.2008, 16:05:30
Post #14





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


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

Czytaj uważniej co Ci piszą (mowa o empathon).

Ten post edytował sowiq 31.10.2008, 16:06:23
Go to the top of the page
+Quote Post
golaod
post 31.10.2008, 16:06:14
Post #15





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


sowiq,a może popatrz najpierw na screena co ?
Go to the top of the page
+Quote Post
webdice
post 31.10.2008, 16:10:19
Post #16


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




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. ?>
Go to the top of the page
+Quote Post
Twist
post 31.10.2008, 16:13:33
Post #17





Grupa: Zarejestrowani
Postów: 174
Pomógł: 11
Dołączył: 12.10.2008
Skąd: Dublin

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


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!

Ten post edytował Twist 31.10.2008, 16:20:00
Go to the top of the page
+Quote Post
sowiq
post 31.10.2008, 17:07:45
Post #18





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


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.

Ten post edytował sowiq 31.10.2008, 17:09:20
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 14.06.2024 - 06:55