Autor | Zpráva | ||
---|---|---|---|
Pepinko Profil * |
#1 · Zasláno: 14. 4. 2010, 20:57:07
Ahoj,
Používám formulář pro uploud souboru do adresáře download na servru. A potřeboval bych ještě udělat funkci na smazání tohoto souboru z adresáře. Používám odkaz pro smazání nazvu z databáze: $odstran = "odstranit_soubor.php?id=".$zaznam["id"]; odstranit_soubor.php: <?php $id=$_GET["id"]; $vysledek=mysql_query("delete from download_soubor where id = $id"); $path = 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/download.php'; Header("Location:".$path); exit; ?> Jak ale udělat odkaz aby mi to smazalo i ten soubor z adresáře? Našel jsem tento script ale vůbec nevím jak ho použít: $file = $_GET['file']; if(strpos($file, "../") === false && strpos($file, __FILE__) === false && is_file($file)) { unlink($file); } else { echo "Pokus o smazani selhal"; } |
||
mckay Profil |
#2 · Zasláno: 14. 4. 2010, 21:09:29
Pepinko:
Ještě před tím, než vymažeš záznam z databáze si ten soubor z databáze vyber a smaž ho. Ošetři to proti sql injection. Mimo to je také nutné aby adresář (tuším i soubor) který mažeš měl chmod (777). |
||
Pepinko Profil * |
#3 · Zasláno: 14. 4. 2010, 21:43:11
Aha ale jak přesně tu funkci mám použít abych ho vymazal, když soubor je třeba: pokus.zip a je v adresáři download?
chmod mám 777, protože do něj ty soubory nahrávám. |
||
Pepinko Profil * |
#4 · Zasláno: 14. 4. 2010, 22:33:19
Takto zkousim takto ale vypise mi to echo: Pokus o smazani selhal
odstranit_soubor.php: <?php $id=$_GET["id"]; $query = "SELECT * FROM download_soubor WHERE id = '$id'"; $detail = mysql_query($query, $link) or die("SQL dotaz nešlo provézt"); while ($zaznam = mysql_fetch_array($detail)) { $file=$zaznam["soubor"]; if(strpos($file, "../download") === false && strpos($file, __FILE__) === false && is_file($file)) { unlink($file); } else { echo "Pokus o smazani selhal"; } $vysledek=mysql_query("delete from download_soubor where id = $id"); $path = 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/download.php'; Header("Location:".$path); exit; ?> Mám to zapsané správně? |
||
AM_ Profil |
#5 · Zasláno: 15. 4. 2010, 09:15:24
Pepinko:
„Takto zkousim takto ale vypise mi to echo: Pokus o smazani selhal“ „Mám to zapsané správně?“ Těžko říct, ladit to za tebe nebudeme. Zkus si sám, která z těch tří podmínek na řádku 9 neplatí, a zjisti proč. |
||
Časová prodleva: 14 let
|
0