| 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: 16 let
|
|||
0