webForumDet fria alternativet

låta användare plocka bort uppladdade filer

PHP

4 svar · 324 visningar · startad av Prime_66

Medlem sedan aug. 2004290 inlägg
Frågan#1

Hur gör man det på bästa sätt utan att användarna kan ta bort varandras filer? Vilket chmod ska man ha på filerna?

Medlem sedan juni 20034 013 inlägg
#2

Jag antar att du vill göra det genom Php? Du får göra en log med vilka filer som tillhör vem som du kollar i innan du verkställer borttagningen. Lätt gjort med Mysql exempelvis. En tabell med filID, userID och filnamn. Vill man ta bort filen med filID 4 så kollar man bara vad det står för userID där filID = 4 och jämför med vem som är inloggad.

Medlem sedan aug. 2004290 inlägg
#3

ok så även om jag har chmod 777 kan inte någon utifrån ta bort filen?..alltså det krävs att php-scriptet körs ifrån servern där filerna ligger? tänkte att någon skulle kunna skriva unlink(adressen till min sajt/filnamn) o på så sätt ta bort en fil..men så är det inte va?

Medlem sedan dec. 1999757 inlägg
#4

Normalt går webbservern som en helt annan användare så vill man via webbläsaren ta bort en fil som laddats upp med en ftp-klient måste filen ha 777.

Sker även uppladdningen av filer via webbläsaren så finns ingen anledning att ge annan behörighet än vad som ges när webbservern lägger filen på plats. Mappen där du sparar filerna som ska laddas upp måste dock ha 777 om du själv skapat den via ftp.

Prime_66 skrev:

?..alltså det krävs att php-scriptet körs ifrån servern där filerna ligger?

Ja, det kan man generellt säga om alla php-skript men en del undantag finns då php har många verktyg i lådan. Har jag ditt ftp-konto så är det möjligt skriva ett skript på min server som loggar in till din server för att radera filer men i det läget fungerar php som vilken annan ftp-klient som helst.

Gör som tydal skrev så fungerar det :)

Medlem sedan sep. 200436 inlägg
#5

Jag har gjort så här att jag döper om alla mina bilder när de laddas upp. Namnet blir då bild_<användar id>_<bildnamn>.
Sedan har jag 2 fält i en databas, antal_bilder och bilder.
I bilder sparar jag alla bilder i en sträng så här: <bild1namn>|<bild2namn> . Hur som helst så om användaren vill tabort sin bild hejhej.jpg så tar scriptet bort bilden bild_<userid>_hejhej.jpg. Ingen risk för att man tar bort varandras bilder altså.

250 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)