Autor Zpráva
PuGR
Profil
Dobrý den,
jsem úplný začátečník a nevim si rady s funkcí unlink.
Na server se mi nahraje nějaký soubor (obrázek) a když ho chci vymazat,tak mi to vypíše tuto chybu :
Warning: unlink(./foto/): Is a directory in /3w/unas.cz/f/free-hry/delete.php on line 2


<?php  

if (unlink ("./foto/$name")) {
echo "<font color=green><b>Soubor byl úspěšně vymazán</b></font>";
} else {
echo "<br><font color=green><b>Soubor se nepodařilo vymazat</b></font></br>";
}
?>


Děkuji za radu.
Dero
Profil
$name je prázdné.
nightfish
Profil
PuGR
tedy pokud náhodou přebírá stránka proměnnou $name jako parametr stránky, bude lepší použít
$_GET['name'] nebo $_POST['name'], v závislosti na použité metodě předávání parametrů
PuGR
Profil
Prosím,mohli by jste mi to vysvětlit lépe(začátečníkovi)?
Mám tři soubory.

První je upload.html který obsahuje kód pro odeslání souboru,druhý je upload.php,který obsahuje zatim tento kód :

<?php

if (is_uploaded_file($_FILES["jmeno_souboru"]["tmp_name"])) {
$name = $_FILES["jmeno_souboru"]["name"];
move_uploaded_file($_FILES["jmeno_souboru"]["tmp_name"], "./foto/$name");
echo "<font color=green>Soubor byl úspěšně nahrán na server.</font>";
} else {
echo "<font color=red><b>!!!</b> Při nahrávání došlo k chybě <b>!!!</b></font>";
}
echo "<div><font color=red>Náhled :</font></div>";
echo "<div><img src=http://www.free-hry.unas.cz/foto/$name></div>";
echo "<br><font color=red>URL obrázku :</font>";
echo "<div>http://www.free-hry.unas.cz/foto/$name</div>";
$velikost = $jmeno_souboru_size / 1000;
echo "<br><font color=red>Velikost souboru: </font>";
echo "$velikost kB</br>";
echo "<font color=red>Typ souboru: </font>";
echo "$jmeno_souboru_type";
echo "<div><a href=http://www.free-hry.unas.cz/delete.php>Smazat</a></div>";
?>


No a třetí je delete.php viz výše.

Pořádně jsem nepochopil kde přesně mam chybu.
Špatně zapsaná proměnná?
nightfish
Profil
Pořádně jsem nepochopil kde přesně mam chybu.
problém je v tom, že skript delete.php neví, který soubor má smazat, protože mu tuto informaci nijak nesděluješ
PuGR
Profil
A jakym způsobem mu tuto informaci mám sdělit?
Pracovat v PHP jsem začal teprve včera,tak snad chápete,že tomu moc nerozumim.
nightfish
Profil
Pracovat v PHP jsem začal teprve včera,tak snad chápete,že tomu moc nerozumim.
ano, to chápu
a proto vám doporučím seriál na linuxsoftu
PuGR
Profil
Seriál na linuxsoftu znám,ale to je na dlouhé hodiny čtení(+porozumění).
Rád bych,kdyby mi někdo pomohl s kódem,jak mám skriptu sdělit,že chci smazat ten a ten soubor.
Myslel jsem,že mu to sděluji cestou k souboru (tzn. unlink ("./foto/$name")),ale proměnná není funkční.
pokud ale vypíši absolutní cestu k danému souboru (tzn. unlink ("./foto/jmeno.xxx")) soubor se smaže.
Můžete mi někdo poradit popřípadě dát názornou ukázku?
Děkuji.
Beduin
Profil *
Místo delete.php dej delete.php?name=$name a místo ./foto/$name dej ./foto/$_GET['name']

Teď jsem to vymyslel z hlavy, takže to možná bude trochu jinak, ale zkus to takhle.
PuGR
Profil
Místo delete.php dej delete.php?name=$name

To mám přejmenovat soubor delete.php na delete.php?name=$name ?
Nebo v souboru upload.php mám místo
echo "<div><a href=http://www.free-hry.unas.cz/delete.php>Smazat</a></div>";

dát
echo "<div><a href=http://www.free-hry.unas.cz/delete.php?name=$name>Smazat</a></div>";


Já jsem přepsal kód v upload.php a ve skriptu delete.php jsem místo ./foto/$name dal ./foto/$_GET['name'] a napsalo mi to tohle :

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /3w/unas.cz/f/free-hry/delete.php on line 2
PuGR
Profil
Tak už sem na to přišel.
Všem moc děkuji za pomoc.
Toto téma je uzamčeno. Odpověď nelze zaslat.