Autor | Zpráva | ||
---|---|---|---|
folker Profil * |
#1 · Zasláno: 30. 10. 2009, 19:27:35
Ahoj, pokouším se vytvořit tlačítko, které by mi smazalo soubor z adresáře, ale pořád to nějak nefunguje. Tentokrát mi to hlásí toto:
Warning: unlink(soubory/) [function.unlink]: Permission denied in C:\Program Files\VertrigoServ\www\administrace2\galerie.php on line 32 Ten, co to provádí vypadá asi takto: $handle=opendir('soubory'); while (false!==($file = readdir($handle))) { if ($file != "." && $file != ".." &&$file!=="Thumbs.db") { echo '<a href="soubory/'.$file.'"><img src="soubory/'.$file.'" width="100"></a> '.$file; ?> <form action=" <?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <input type="submit" name="submit" value="smazat" /> </form> <hr> <?php } } closedir($handle); if (isset($_POST['submit'])) { chmod ($cil, 0777); unlink ("soubory/".$file); } Prosím poraďte, kde dělám chybu. |
||
Enyeus Profil |
#2 · Zasláno: 30. 10. 2009, 19:35:10
Té složce nastav chmod 777
|
||
folker Profil * |
#3 · Zasláno: 30. 10. 2009, 19:40:56
Složka je na lokálním serveru u mě v pc. Tady se mi možnost nastavení chmodu neukazuje jako na externím serveru. Jak se to dá jinak nastavit?
|
||
AM_ Profil |
#4 · Zasláno: 30. 10. 2009, 21:24:18
možná máš soubor v něčem otevřený, je read only nebo tak něco.
Mimochodem, máš to trošku divné, jestli to dobře čtu, tak pokud někdo klikne na submit, smaže se poslední soubor v adresáři (z poslední iterace $file=readdir($dh); |
||
MagicPowa Profil |
#5 · Zasláno: 30. 10. 2009, 22:05:05
Vytvoř si soubor třeba test.txt ve složce test a na nějaké stránce (musí sedět cesty) spusť na localhostu tento script:
$soubor = "test/test.txt"; unlink($soubor); 1. pokud to napíše Permission denied in... tak máš problém s nastavením práv 2. pokud to ten soubor smaže, a nehodí žádnou chybu, tak máš chybu ve scriptu co jsi poslal sem do diskuze a ne problém s nastavením práv Není to výsledné řešení, tvého problému ale aspoň budeš vědět na čem jsi. |
||
folker Profil * |
#6 · Zasláno: 31. 10. 2009, 12:22:33
Ten test jsem zkusil a soubor se smazal. V tom problém asi nebude.
|
||
Davex Profil |
#7 · Zasláno: 31. 10. 2009, 12:47:10
Cyklus while je ukončen druhou složenou závorkou na řádku 15, a proto je na řádku 20 obsahem proměnné $file hodnota (bool) FALSE. Pokud chceš smazat adresář soubory, tak použij funkci rmdir().
|
||
folker Profil * |
#8 · Zasláno: 31. 10. 2009, 12:56:55
Já vím, ale spíše podtřebuji mazat jednotlivé obrázky, které jsou v tomto adresáři uložené. Myšlenka je taková, že při čtení obrázků z tohoto adresáře se zároveň u každého obrázku vytvoří tlačítko smazat a uživatel podle potřeby může tímto tlačítkem nepotřebné obrázky odstranit. Jenomže mi to nějak nefunguje.
|
||
folker Profil * |
#9 · Zasláno: 31. 10. 2009, 14:39:25
Už to mám!!! Funkci unlink jsem poupravil...
$smazat = $_POST['smazat']; unlink ("soubory/".$smazat); ... a uložil jí do jiného souboru. Poté jsem do formuláře přidal jeden řádek... <input type="hidden" name="smazat" value="<?php echo $file; ?>" /> ... a je to. U každého obrázku mám tlačítko smazat a když na něj kliknu, tak se smaže. Jenom zbývá "header", aby se mi stránka po smazání vracela zpět na přehled obrázků. |
||
folker Profil * |
#10 · Zasláno: 31. 10. 2009, 14:40:58
PS: díky za vaše typy. Přivedli mě na správnou cestu :-).
|
||
Časová prodleva: 16 let
|
0