Autor Zpráva
folker
Profil *
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> &nbsp;'.$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
Té složce nastav chmod 777
folker
Profil *
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
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
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 *
Ten test jsem zkusil a soubor se smazal. V tom problém asi nebude.
Davex
Profil
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 *
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 *
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 *
PS: díky za vaše typy. Přivedli mě na správnou cestu :-).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: