hodte do nejakyho FORMu tohle:
<input type="hidden" name="soubor" value="12345;
?>">
(aji s tim odradkovanim)
... a pak v PHP formular vyhodnotte a vytvorte soubor s nazvem $soubor... ja ted nevim jak to smazat, zkousel sem uz 3 ftp klienty i primo PHP prikaz, ale furt nic.
zkus si spustit ftp konzoli (prikaz ftp):
ftp> o donny.wz.cz
Connected to donny.wz.cz.
220 ftp server ready
Name (donny.wz.cz:donny): donny.wz.cz
331 Password required for donny.wz.cz.
Password:
230-Access granted for donny.wz.cz.
Last login on 2006-09-28 21:59:39 from 88.101.120.155.
230 Quotas: using 2876.00 of 50000 KB (5.75% used)
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quote dele \$soubor
250 DELE command successful.
ftp> bye
221 Goodbye.
mne to teda fungovalo bez problemu...
pane boze, ten soubor se nema jmenovat "$soubor", ale to, co ti odeslal ten formular
sakra, sorry :D. A co ti vrati ftp prikaz ls ? jako myslim, jakej nazev souboru?
no, když si nazveš soubor jako "12345;\n?>" tak se nediv, že s tím mají std prostředky trochu problémy. Je to čirý nerozum, takhle nazvat soubor. ;-) Ale předpokládám, že to byl úklep.
Pokud ho vidíš v TC, není problém ho smazat, ne? Max na 2x (přejmenovat, smazat). Schválně to zkusím.
ehe:
<body>
<form action="" method='post'><div>
<input type="hidden" name="soubor" value="12345;
?>">
<input type="submit" name="sub" value="wr">
<input type="submit" name="sub" value="del">
</div>
</form>
</body>
<?php
echo "zmacknuto ".$_POST['sub'];
if ( $_POST['sub']=='wr' ) {
$f=fopen('./'.$soubor, 'w');
echo "zapis";
fputs($f, 'obsah');
fclose($f);
} else {
echo "nezapis";
}
if ( $_POST['sub'] == 'del' ) {
if ( unlink('./'.$_POST['soubor']) ) {
echo "unlink ok";
} else {
echo 'unlink err';
}
}
?>
když to jde zapsat, jde to i smazat. Tohle jsem vyzkoušel a funguje to.
U jiného mazání jak tohoto může dojít k tomu, že si \n nevyloží jako &x0d + &x13, ale jenom jako &x0d a už je problém. Což si myslím, že všechny FTP klienti std dělají. Proto to asi nešlo.