Autor | Zpráva | ||
---|---|---|---|
bazz Profil |
#1 · Zasláno: 28. 11. 2015, 14:51:53
ahoj, mám tokovou hlášku
Warning: unlink(./uploads/): Is a directory in /home/www/gastroservis/html_doc/mec/uloz/delete.php on line 17 a takový skript <?php $slozka = dir("./uploads"); chmod("uploads", 0777); while($soubor=$slozka->read()) if (!isset($_GET['soubor'])){$_GET['soubor']='';} { if ($soubor=="." || $soubor=="..") continue; echo " <span><a href=\"?soubor=$soubor\">$soubor</a></span><br>\n"; } $slozka->close(); ?> <?php $soubor = $_GET["soubor"]; unlink ("./uploads/$soubor"); ?> nevíte proč nelze nastavit 0777 na tu složku, předpokládám že ta chyba je o tom |
||
han5vk Profil |
#2 · Zasláno: 28. 11. 2015, 15:26:20
Podľa chybovej hlášky by som skôr tipoval, že premenná
$soubor je prázdny string, kedže chybu ti hádže funkcia unlink ktorá dostane parameter iba "./uploads/", bez mena súboru za tým.
|
||
bazz Profil |
#3 · Zasláno: 28. 11. 2015, 15:33:55
no tak u toho unlik by měla být přece prázdná než ji nastavím výběrem nějakého souboru ne?
|
||
Radek9 Profil |
#4 · Zasláno: 28. 11. 2015, 16:06:27
bazz:
Jenže ty ten unlink voláš i když je prázdná. Proto to hází chybu. if (isset($soubor) && file_exists("./uploads/" . $soubor)) { unlink("./uploads/" . $soubor); } |
||
bazz Profil |
To je úplně ta samá chyba...
<?php if (!isset($_GET['soubor'])){$_GET['soubor']='';} $soubor = $_GET["soubor"]; if (empty($soubor)) { echo "vyberte soubor k odstranění:<br>"; } else { if (isset($soubor) && file_exists("./uploads/" . $soubor)) { unlink("./uploads/" . $soubor); } } ?> takhle mi to fachčí... asi to není úplně elegantní ale neháže mi to chybu.. Díky opravdu to nebylo v nastavení práv. |
||
Tomáš2 Profil * |
#6 · Zasláno: 29. 11. 2015, 14:00:22
jen malinká poznámka, prosím, nepoužívejte
chmod 0777 , ale alespoň chmod 0666 . Nic s tím nerozbijete, sedmičky nikdy nepotřebujete, je to systémová věc.
Ty sedmičky jsou velký bezpečnostní průser, dávají právo, aby takový soubor mohl být na linuxu považovaný za aplikaci a spuštěný, poté stačí, aby vám někdo nahrál spustitelný soubor a jinou zranitelností ho nechal spustit. Řada chyb na WP je právě kvůli tomuhle. Na linuxu se narozdíl od windowsu dá spustit jakýkoliv soubor a právě tímhle systému řikáme, že daný soubor lze spustit jako aplikaci, na windows musí mít určitou koncovku (exe např.) |
||
nethor Profil |
.. jinak použil bych raději
$soubor = basename($_GET["soubor"]);
|
||
Časová prodleva: 8 let
|
0