Autor | Zpráva | ||
---|---|---|---|
holi Profil * |
#1 · Zasláno: 13. 1. 2011, 10:46:34
Dobrý den,
předem se omlouvám, vím, že je toho tady spoustu. Vím to, protože poslední dva dny to tu prohledávám nic méně aji google, ale nenašel sem vysvětlení na mé úrovni. Takže vás prosím můžete mi to nějak polopatě vysvětlit ? Tedy k scriptu(předem upozornuji že toho bude v zaheslované administraci, stránky jsou zatím ve fázy začínání co se PHP týče): <? $projekty = dir("galerie/projekty/thumb"); echo "Soubory ve složce projekty:<br>\n"; while($soubor=$projekty->read()) { if ($soubor=="." || $soubor=="..") continue; echo "<a href=\"galerie/projekty/thumb/$soubor\">".$soubor."</a><input type=\"submit\" name=\"smazat\" Value=\"Smazat\"><br>\n"; unlink("galerie/projekty/thumb".$soubor); header('location: index.php?page=gallery_uploader');} } $projekty->close(); $foto = dir("galerie/foto/thumb"); echo "Soubory ve složce foto:<br>\n"; while($soubor2=$foto->read()) { if ($soubor2=="." || $soubor2=="..") continue; echo "<a href=\"galerie/foto/thumb/$soubor2\">".$soubor2."</a><br>\n"; } $foto->close(); ?> Vyzkoušel jsem všechny možné způsoby ale už nevím jak na to. Děkuji předem za odpověď. |
||
Joker Profil |
#2 · Zasláno: 13. 1. 2011, 10:51:31
holi:
„Vím to, protože poslední dva dny to tu prohledávám nic méně aji google, ale nenašel sem vysvětlení na mé úrovni. Takže vás prosím můžete mi to nějak polopatě vysvětlit ?“ Z toho příspěvku nějak vypadlo to nejpodstatnější, a sice co vlastně máme vysvětlit. Tedy, jak zní dotaz? |
||
holi Profil * |
#3 · Zasláno: 13. 1. 2011, 10:59:17
Omg sem vůl ... no jak je možné si všimnou z kódu, vypisuji adresáře a každý soubor je vlastně odkaz na sama sebe a k tomu je přiděláno tlačítko smazat, a já chci prostě a jednoduše aby to tlačítko fungovalo, našel jsem možnost využití GET ale totálně nechápu jak to funguje(Vím jak funguje GET, ale nechápu to použití v tomto případě) Vyzkoušel jsem hodně metod jak to smazat pomocí GET a kdo ví čeho, ale jediného úspěchu jsem dosáhl a to že se mi po stisknuti jakéhokoliv tlačítka smazat se smazal poslední soubor, což nechci . :)
|
||
xmark Profil |
#4 · Zasláno: 13. 1. 2011, 11:17:36
holi:
A od výše uvedeného skriptu si slibuješ co? Nějak nechápu, jak můžeš mít pod sebou tlačítko a vzápětí unlink. Potřebuješ dvě věci: 1. výpis souborů, kde zobrazíš jejich názvy a u každého budeš mít tlačítko 2. skript, který tím tlačítkem vyvoláš a který smaže daný soubor. Všechna tlačítka budou samozřejmě mířit na jeden mazací skript. O který soubor jde, musíš rozlišit nějakým parametrem tlačítka nebo inputem typu hidden. |
||
holi Profil * |
#5 · Zasláno: 13. 1. 2011, 11:25:20
ano ten unlink je jen zbytek mých pokusu samozřejmě že si od toho nic neslibuji. Děkuji za odpověď a budu trochu otravný, mohl by jste sem dát názornou ukázku? ... Výpis souboru mám i s tlačítkem ale co musím udělat proto aby se mi poslalo jméno souboru a smazalo to když sem to zkoušel přes get tak mi to dosazovalo např background.jpg.php not found.
|
||
xmark Profil |
#6 · Zasláno: 13. 1. 2011, 11:45:45
.. while($soubor=$projekty->read()) { if ($soubor=="." || $soubor=="..") continue; echo $soubor; echo "<form action='smazani.php'>"; echo "<input type='hidden' name='jmeno' value='".$soubor."'>"; echo "<input type='submit' name='smazat' value='Smazat'>"; echo "</form>"; echo "<br>"; } .. v souboru smazani.php: <?php $fn = $_GET['jmeno']; // doplnit k názvu souboru cestu if ( /* ošetření rizik a existence souboru*/ ) { unlink ($fn); } header('location: index.php?page=gallery_uploader');} ?> Principielně asi takto. |
||
holi Profil |
#7 · Zasláno: 13. 1. 2011, 12:15:42
Stále nefunguje při smazání souboru mě to přesměruje na hlavní stránku(ochrana proti naštení neexistujícího php souboru pomoci get) s touto adresou:
"index.php?jmeno=background.jpg&smazat=Smazat" . A soubor se přitom nesmaže. Soubor gallery_uploader.php: $projekty = dir("galerie/projekty/thumb"); echo "Soubory ve složce projekty:<br>\n"; while($soubor=$projekty->read()) { if ($soubor=="." || $soubor=="..") continue; echo $soubor; echo "<form action='delete.php'>"; echo "<input type='hidden' name='jmeno' value='".$soubor."'>"; echo "<input type='submit' name='smazat' value='Smazat'>"; echo "</form>"; echo "<br>"; } Soubor delete.php: <?php $name = $_GET['jmeno']; if (file_exists("galerie/projekty/thumb".$name) && file_exists("galerie/projekty/thumb".$name)) { unlink ("galerie/projekty/thumb".$name); unlink ("galerie/projekty/large".$name); echo "<center>Obrázek ".$name." byl smazán.<br>Budete automaticky přesměrováni zpět.</center>"; sleep(5); header('location: index.php?page=gallery_uploader'); } else { echo "<center>Smazání obrázku ".$name." se nezdařilo.<br>Budete automaticky přesměrováni zpět.<center>"; header('location: index.php?page=gallery_uploader'); } ?> |
||
Taps Profil |
#8 · Zasláno: 13. 1. 2011, 12:47:24 · Upravil/a: Taps
holi:
nechybí ti tam lomítka ? $projekty = dir("galerie/projekty/thumb"); echo "Soubory ve složce projekty:<br>\n"; while($soubor=$projekty->read()) { if ($soubor=="." || $soubor=="..") continue; echo $soubor; echo "<form action='delete.php' method='post'>"; echo "<input type='hidden' name='jmeno' value='".$soubor."'>"; echo "<input type='submit' name='smazat' value='Smazat'>"; echo "</form>"; echo "<br>"; } <?php $name = $_POST['jmeno']; if (file_exists("galerie/projekty/thumb/".$name) && file_exists("galerie/projekty/thumb/".$name)) { unlink ("galerie/projekty/thumb".$name); unlink ("galerie/projekty/large/".$name); echo "<center>Obrázek ".$name." byl smazán.<br>Budete automaticky přesměrováni zpět.</center>"; sleep(5); header('location: index.php?page=gallery_uploader'); } else { echo "<center>Smazání obrázku ".$name." se nezdařilo.<br>Budete automaticky přesměrováni zpět.<center>"; header('location: index.php?page=gallery_uploader'); } ?> |
||
holi Profil |
#9 · Zasláno: 13. 1. 2011, 13:12:16
Mockrát děkuji všem, vše funguje jen se chci zeptat po provedění smazání mám automatické přesměrování jenže to vyhazuje tuto chybu a ic se neprovede
Upozornění : Nelze změnit informace v záhlaví - záhlaví již poslal (produkce začala v C: \ www \ tomasholan.eu \ delete.php: 7) v C: \ www \ tomasholan.eu \ delete.php on line 9 |
||
Taps Profil |
#10 · Zasláno: 13. 1. 2011, 13:40:20
holi:
před header nesmí být žádný výstup. Konkrétně ve tvém případě ve skriptu máš umístěné echo. V rámci testování zkus řádky, kde máš echo zakomentovat a uvidíš zda skript bude fungovat v pořádku. |
||
holi Profil |
#11 · Zasláno: 13. 1. 2011, 13:47:11 · Upravil/a: holi
ano funguje to, ale nedá se to nějak udělat aby se to tam vypsalo byl tam sleep(5) a potom přesměrování ?
|
||
Taps Profil |
#12 · Zasláno: 13. 1. 2011, 14:33:27
holi:
ještě je varianta danou hlášku uložit do session a pak ji vypsat na stránce, kam je uživatel přesměrován viz http://php.vrana.cz/informovani-uzivatele-o-vysledku-operace.php |
||
holi Profil |
#13 · Zasláno: 13. 1. 2011, 14:44:03
Vy jste kouzelník to je to nejlepší řešiný s ohledem na vzhled stránky a funkčnost ... moc krát děkuji.
|
||
Časová prodleva: 13 let
|
0