Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> [php] unlink problem
elnino17
post
Post #21





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 2.10.2012

Ostrzeżenie: (10%)
X----


Witam, co jest nie tak w tym kodzie, że plik nie chce sięusunąć ?
  1. <?php
  2. $dir = dir('../app-disc/upload files');
  3. while ($file = $dir->read())
  4. if ($file != '.' && $file != '..')
  5. echo '<br/><table><tr><td class="file_list">' . $file . '</td>' .
  6. '<td class="file_list"><a href="../app-disc/upload files/' . $file . '">Pobierz</a></td>' .
  7. '<td class="file_list"><a href="'. unlink('$DOCUMENT_ROOT/../app-disc/upload files/'. $file) . '">Usuń</a><br /></td>'
  8. . '</tr></table>';
  9. $dir->close();
  10. ?>
Go to the top of the page
+Quote Post
Turson
post
Post #22





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


<a href="'. unlink('$DOCUMENT_ROOT/../app-disc/upload files/'. $file) . '">Usuń</a>
o matko
albo usuwasz od razu, albo tworzysz link do usunięcia i po wejściu na link usuwasz
Go to the top of the page
+Quote Post
elnino17
post
Post #23





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 2.10.2012

Ostrzeżenie: (10%)
X----


Zrobiłem tak i też nie działa,
  1. <a href="$DOCUMENT_ROOT/../app-disc/upload files/'.unlink($file).'">

Chce żeby wszystkie operacje, dodawania(działa), pobierania(działa) i usuwania(nie działa) pliku(.img), były wykonywane na jednym pliku php. To usuwanie zrobiłem analogicznie do dwóch poprzednich funkcjonalności i nie wiem co jest nie tak.

Ten post edytował elnino17 15.04.2014, 06:21:01
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #24





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Jak to co jest nie tak? Wszystko. Atrybut href nie może być funkcją PHP. Zastosowanie czegoś takiego jak Ty napisałeś powoduje odpalenie funkcji unlink za każdym razem, gdy kod jest wykonywany, nie w momencie kliknięcia w link. No i skoro mówisz że nie działa, to i tak masz coś nie tak z tą funkcją. Włącz wyświetlanie błędów.

Poza tym, w pojedyńczych ciapkach nie otrzymujesz wartości zmiennej, tylko tekst. Musisz poprawić:

  1. unlink($DOCUMENT_ROOT . '/../app-disc/upload files/'. $file)


Ten post edytował b4rt3kk 15.04.2014, 08:54:20
Go to the top of the page
+Quote Post
elnino17
post
Post #25





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 2.10.2012

Ostrzeżenie: (10%)
X----


Zrobiłem to inaczej, zmienna się prawidłowo przesyła(prawidłowa nazwa i rozszrzenie) ale nie usuwa pliku do niej przypisanego.

  1. <?php
  2. ...
  3. .'<form action="delete_file.php" method="post">'
  4. . '<input type="hidden" name="file" value="' . $file . '">'
  5. . '<input type="submit" value="usuń">'
  6. . '</form>'
  7. ...
  8. ?>


  1. <?php
  2. $file = $_POST['file'];
  3. unlink($file);
  4. if (!$file) {
  5. echo 'zmienna ' . $file . ' została usunięta';
  6. } else {
  7. echo 'zmianna ' . $file . ' nie została usunięta';
  8. }
  9. ?>


Ten post edytował elnino17 15.04.2014, 17:42:17
Go to the top of the page
+Quote Post
Turson
post
Post #26





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


wcześniej podawałeś ścieżkę $DOCUMENT_ROOT/../app-disc/upload files/ a tu jej nie ma
Go to the top of the page
+Quote Post
elnino17
post
Post #27





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 2.10.2012

Ostrzeżenie: (10%)
X----


Poprawiłem lecz dalej nie usuwa

delete_file.php
  1. <?php
  2. $file = $_POST['file'];
  3. unlink($DOCUMENT_ROOT.'/../app-disc/upload files/'.$file);
  4. if(!$file){
  5. echo 'zmienna '.$file.' została usunięta';
  6. }else{
  7. echo 'zmianna '.$file.' nie została usunięta';
  8. }
  9. ?>


Podnosze (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Turson
post
Post #28





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Źle sprawdzasz czy usunięto. Sprawdzaj unlink a nie $file, który jest zmienną (IMG:style_emoticons/default/facepalmxd.gif)
  1. $file = $_POST['file'];
  2. if(unlink($DOCUMENT_ROOT.'/../app-disc/upload files/'.$file)){
  3. echo 'zmienna '.$file.' została usunięta';
  4. }else{
  5. echo 'zmianna '.$file.' nie została usunięta';
  6. }
Go to the top of the page
+Quote Post
b_chmura
post
Post #29





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


  1.  
  2. // Ścieżka do katalogu z plikami
  3. $dir = "{$DOCUMENT_ROOT}/../app-disc/upload files/";
  4.  
  5. // Nazwa pliku pobrana z POST. Koniecznie przefiltruj odbierane dane.
  6. $fileName = $_POST['file'];
  7.  
  8. // Sprawdzasz czy plik istnieje.
  9. if (file_exists($dir . $fileName)) {
  10. // Jeśli tak:
  11. // Usuwasz plik i sprawdzasz czy wszystko w porządku.
  12.  
  13. if (unlink($dir . $fileName)) {
  14. //Jeśli tak:
  15.  
  16. echo "Plik '{$fileName}' został usunięty";
  17. } else {
  18. //Jeśli nie:
  19.  
  20. echo "Wystąpił błąd podczas usuwania pliku '{$fileName}'!";
  21. }
  22.  
  23. } else {
  24. // Jeśli plik nie istnieje na serwerze
  25.  
  26. echo "Plik '{$fileName}' nie istnieje!";
  27. }
Go to the top of the page
+Quote Post
elnino17
post
Post #30





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 2.10.2012

Ostrzeżenie: (10%)
X----


Dzięki za pomoc ale sam rozwiązałem problem (IMG:style_emoticons/default/smile.gif)
  1. $file = '../app-disc/upload files/'.filter_input(INPUT_POST, 'file');
  2. unlink($file);
  3. ...

Go to the top of the page
+Quote Post
nospor
post
Post #31





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Pozbycie sie IFa, ktory generowal info o poprawnym lub niepoprawnym skasowaniu, ciezko nazwac rozwiązaniem problemu.... No, ale każdy ma inne gusta.
Go to the top of the page
+Quote Post
elnino17
post
Post #32





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 2.10.2012

Ostrzeżenie: (10%)
X----


Nie chodzi o if'a, chodzi o ten:
  1. .filter_input(INPUT_POST, 'file')

kawałek kodu, bez niego nie odnajdywało pliku a co za tym idzie nie mogło go usunąć, z if'ami jest wszystko ok i wszystko działa poprawnie (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #33





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




No jesli zostawiles IFy jak na poczatku:
if (!$file) {

echo 'zmienna ' . $file . ' została usunięta';

} else {

echo 'zmianna ' . $file . ' nie została usunięta';

}

To nie, z IFami nie jest wszystko wporządku (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
elnino17
post
Post #34





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 2.10.2012

Ostrzeżenie: (10%)
X----


Mam nadzieje, że teraz wszystkich zadowoliłem (IMG:style_emoticons/default/wink.gif)
  1. $file = '../app-disc/upload files/'.filter_input(INPUT_POST, 'file');
  2. $delfile = unlink($file);
  3. if($delfile){
  4. echo 'Plik '.$file.' został usunięty';
  5. }else{
  6. echo 'Plik '.$file.' nie został usunięty';
  7. }
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.12.2025 - 20:17