Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Usuwanie plikó przy pomocy php
Forum PHP.pl > Forum > Przedszkole
viamarimar
Wiem, że forum to nie zaden kompilator ani nic, ale co tu jest nie tak? Kod wykonał sie x razy (nascie) i nagle przestal. Nic nie zmienialem. Zadnych sesji, headerow i tak dalej. Gdy czyszcze folder upload i baze wykonuje sie znow kilka razy i znow pauza? O co tu chodzi?
  1. if(isset($_GET['s']) && $_GET['s']=='pliki' && isset($_GET['a']) && $_GET['a']=='usun' && isset($_GET['id'])){
  2. $id=$_GET['id'];
  3.  
  4. $zap3=mysql_query("SELECT * FROM pliki ") or die(mysql_error());
  5. $wiersz=mysql_fetch_array($zap3);
  6. $katalog = "./upload/";
  7. if (file_exists($katalog.$wiersz['kodowanazwa'])){
  8. unlink($katalog.$wiersz['kodowanazwa']);
  9. $zap2 = ("DELETE FROM pliki WHERE id='$id'") or die(mysql_error());
  10. $result=mysql_query($zap2);
  11. header("location: mod.php?mk=usunp");
  12.  
  13. }
  14. }


Sciezka dziala tylko po x razach nie przekierowuje juz na komunikat tylko stoi tak jakby bez zadnego bledu

http://localhost/zaliczenie/mod.php?s=plik...=usun&id=66 - wiec jest ok

Teraz sprawdzam czyms takim


  1. if (file_exists($sciezka)){
  2. if ($wiersz['kodowanazwa'] != "." && $wiersz['kodowanazwa'] != "..") {
  3. // #unlink($katalog.$wiersz['kodowanazwa']);
  4.  
  5. echo ' plik jest';
  6. }
  7. }
  8. else {
  9. echo ' nie ma ';
  10. }


Bo mysle ze to chodzi o te glupie kropki

to zwraca nie ma?! jak skoro dzialalo?
mozliwe ze dzialalo n 1-2-3 plikach a potem kropki sie skonczyly i koniec? Jak to poprawic?

$wiersz['kodowanazwa'] - trzyma nazwe pliku
katalog upload - trzyma pliki
KsaR
file_exists(); cache'uje wynik działania.
Używaj clearstatcache(); do czyszczenia tego cache.

Poza tym:
  1. $zap2 = ("DELETE FROM pliki WHERE id='$id'") or die(mysql_error());
  2. $result=mysql_query($zap2);

[...].
viamarimar
co z tym nie tak? nie rozumiem?
//uzycie clearstatcache(); nic nie zmienilo

// kawalek ktory wskazales ma kasowac informacje o pliku z bazy, co w nim nie tak

  1. $filename = $katalog.$wiersz['kodowanazwa'];
  2. if (file_exists($filename)) {
  3. unlink($filename);
  4. echo "The file $filename exists";
  5. $zap2 = ("DELETE FROM pliki WHERE id='$id'") or die(mysql_error());
  6. $result=mysql_query($zap2);
  7. header("location: mod.php?mk=usunp");
  8. } else {
  9. echo "The file $filename does not exist";
  10. }


ale cos z tym odswiezaniem jest baza nie nadaza za katalogiem i potem pisze ze pliku juz nie ma, dobrze dalem to odswiezanie?
KsaR
Cytat(viamarimar @ 13.12.2014, 01:56:50 ) *
co z tym nie tak? nie rozumiem?
//uzycie clearstatcache(); nic nie zmienilo

// kawalek ktory wskazales ma kasowac informacje o pliku z bazy, co w nim nie tak

Być może to ja czegoś nie rozumiem ale ja widze ten kawałek tak:
$zm = ("") or...
viamarimar
Serio nie wiem o co ci chodzi ;< jakies nawiazanie do sql injection?
fate
Zła kolejność, najpierw usuwaj z bazy a potem unlink i nie musisz uzywac tu
clearstatcache();
swoja droga masz to wstawione bez sensu
viamarimar
Tzn jak powinno byc? I ze co jest bezsensu?(pomijajac kolejnosc) tego clear ma nie byc wcale?
fate
  1. $filename = $katalog.$wiersz['kodowanazwa'];
  2. if (file_exists($filename)) {
  3. $zap2 = ("DELETE FROM pliki WHERE id='$id'") or die(mysql_error());
  4. $result=mysql_query($zap2);
  5. unlink($filename);
  6. echo "The file $filename exists";
  7. header("location: mod.php?mk=usunp");
  8. } else {
  9. echo "The file $filename does not exist";
  10. }

za rączkę.. dostal.gif
viamarimar
za drugim razem plik juz z bazy sie nie skaskowal i jest blad.. wiem jak odwrocic kolejnosc jesli by tylko o to chodzilo ;(
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.