At slette en fil fra serveren

Tags:    php mysql

Er der nogen som kan hjælpe mig med lidt kode til at slette en fil fra serveren?

Jeg har en database med en tabel "billeder". Heri er gemt oplysninger om billeder som er uploadet til en bestemt mappe på min server.

Jeg vil så gerne på en side hvor jeg udskriver alle billeder med et bestemt id lave et link "slet billede" som så skal slette det pågældende billede fra serveren samt fra databasen.

Henter billederne fra databasen:
Fold kodeboks ind/udPHP kode 






Indlæg senest redigeret d. 21.07.2013 17:54 af Bruger #17644
36 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Men den sletter jo så kun det som hedder det samme som billedfilen.

Hvor er det lige der er brugt .. ??
Kan ikke få øje på det?

Men hvad kan man ellers gøre - tilføje et eller andet til koden som tjekker at det er en billedfil f.eks.?



Indlæg senest redigeret d. 24.07.2013 10:08 af Bruger #17644

Hvor er det lige der er brugt .. ??
Kan ikke få øje på det?

du har ikke brugt det nogle steder, men en hacker ville nemt kunne slette andre filer


jeg sender lige en pb med konkret eks




Men hvad kan man ellers gøre - tilføje et eller andet til koden som tjekker at det er en billedfil f.eks.?

det du skal gøre er tilføje noget rettigheds validering

som jeg skrev 22.07.13 18:01

den rigtige løsning er dog kun at tage billed id'en med over og så slå op over i deletephoto.php url og rettigheder

url: er billedts url
rettigheder: hvem ejer billed
ejerid skal så sammenlignes med session[userid]
så din billed tabel mangler et felt med id på hvem der ejer billedet

med udgangs punkt i den code jeg viste 21.07.13 18:47 i delete.php (første indlæg)
(utested)
Fold kodeboks ind/udKode 





Men hvad nu hvis jeg IKKE vil have en ejer af billedet i databasen.
Jeg kan sagtens have poster i databasen som skal kunne opdateres af flere forskellige.
Kan jeg ikke gøre det på en måde hvor jeg ikke skal have et brugerID tilknyttet?

Kan man måske hente billedeURL i noget session eller row istedet for med GET?

Spørgsmål:
Hvis jeg nu lægger en lille kode ala denne ind i toppen af den side jeg bruger til at slette et billede:

Fold kodeboks ind/udPHP kode 


Hvis så det så er at brugeren skal sendes videre til en af de to sider - vil den så stadig udføre sletningen af billedet?


UPDATE:
Har prøvet denne kode:
Fold kodeboks ind/udPHP kode 

Og den virker. På den måde taget jeg jo IMGurl fra row istedet for get.
Jeg er klar over at det så vil slette det som ligger i tabellen, men jeg henter jo fra tabellen hvor billed id er noget bestemt. + at jeg har et stykke kode som gør at hvis brugeren ikke er logget ind, så bliver brugeren sendt videre til login.
Så kan det vel ikke være helt galt?



Indlæg senest redigeret d. 30.07.2013 18:18 af Bruger #17644

Jeg kan sagtens have poster i databasen som skal kunne opdateres af flere forskellige.

tilføj et gruppe_id til billed
eller omdøb ejerid til gruppe_id

overvej om en person kan være med i flere grupper

hvis du har både ejer_id og gruppe_id på et billed, vil ejer og gruppe kunne slette, brugeren er jo ikke nødvendigvis med i gruppen der kan slette andres billeder.

det du påtænker at lave er, at alle medlemmer kan slette alle medlemmers billeder, er det smart ?? (nej)
du er nød til at have kontrol med hvem der kan slette hvis billeder. det eneste du har sikret nu er at man ikke kan andet end de bileder der ligger i db, hvilke er en start




Jo, men når en bruger er logget ind, så kan han/ hun kun få de heste frem hvor de står som ejer af disse heste.
Står de ikke som ejer af hesten, så sendes de væk fra den side de har forsøgt at åbne.

Jeg tjekker altså, at de er logget ind, at de har den rette bruger-rang OG at de står som ejer af den hest de forsøger at rette (uploade/ slette billede).





Jeg skriver det for at teste, så bliver jeg sendt videre til en fejlside - så det er jo godt nok



t