Autor | Zpráva | ||
---|---|---|---|
Ondra42 Profil * |
#1 · Zasláno: 30. 10. 2014, 12:21:45
Dobrý den,
vytvořil jsem si v PHP diskuzi. Funguje parádně, ale problém mám, když odešlu formulář tak se příspěvek přidá, nicméně když chci obnovit stránku tak stisknu F5 tak se mi příspěvek ten samý vyplní znova, ikdyž jsem do formuláře nic nezadal. Zkusil jsem po přidání příspěvku přesměrovat echo '<meta http-equiv="refresh" content="1;url=/diskuse/">'; |
||
mimochodec Profil |
#2 · Zasláno: 30. 10. 2014, 12:27:15
Nevím, proč toto přesměrování nestačí, ale určitě bude stačit přesměrování na úrovni php. Tzn. když je formulář odeslán, proveď v php co potřebuješ a pak udělej toto:
header("Location: index.php"); exit(); Případně jakákoliv jiná adresa, jakou potřebuješ. Ale upozorňuji, že před tímto nesmí odejít nic do prohlížeče, tzn. v podstatě žádné echo. |
||
juriad Profil |
#3 · Zasláno: 30. 10. 2014, 12:29:20
Zkus přidat atribut
autocomplete="off" té textarei.
mimochodec: Myslím, že nemá problém s opakováným odesíláním, ale s předvyplnením. |
||
mimochodec Profil |
#4 · Zasláno: 30. 10. 2014, 12:34:09
juriad:
Aha, i to je možné. Záleží na tom, co znamená to "se mi příspěvek ten samý vyplní znova". Pochopil jsem to takhle, tak uvidíme. |
||
Ondra42 Profil * |
#5 · Zasláno: 30. 10. 2014, 12:39:37 · Upravil/a: Ondra42
Jde mi o to, když odešlu příspěvěk a potom stisknu F5, aby se mi už nepřidal.
autocomplete="off" bohužel nefunguje :(
a header("Location: index.php"); exit(); *také asi ne, nebo nevím co stím, mám pdo tím formuláři zobrazovaný příspěvky a nad formulářem nějaký texty |
||
juriad Profil |
#6 · Zasláno: 30. 10. 2014, 12:44:38 · Upravil/a: juriad
Ondra42:
Aha, takže varianta mimochodce Jde o to, že formulář odešleš na nějakou adresu, tam ho přidáš do souboru či databáze (nevíme, co používáš, ale to je jedno). Tak nesmíš okamžitě vypsat stránku s příspěvky. Musíš v tom skriptu toho udělat co nejméně (jen uložit ten příspěvek) a okamžitě přesměrovat pomocí header, jak radí mimochodec. Až po přesměrování (v ukázce: stránka index.php) vypíše příspěvky. Na wiki je o tom článek: http://en.wikipedia.org/wiki/Post/Redirect/Get Prohlédni si ty obrázky na wiki. Lze to udělat i jen pomocí jedné stránky, ale přehlednější (alespoň pro začátek) je mít dva soubory: pridej.php a vypis.php (záměrně zde používám tyto názvy, přestože u tebe to vypis.php bude nejspíš index.php). V pridej.php nic nesmíš vypsat, jen uložíš ten příspěvek a na konci zavoláš: header("Location: vypis.php"); A v vypis.php už se o žádné ukládání nestaráš, jen zobrazíš příspěvky. |
||
Ondra42 Profil * |
#7 · Zasláno: 30. 10. 2014, 12:53:38 · Upravil/a: Ondra42
Aha rozumím, díky moc oběma.
Ještě bych se chtěl zeptat, dá se nějak vypsat že příspěvek byl vložen? Předtím sem to měl v echu, ale teď nevím jak to udělat. |
||
mimochodec Profil |
#8 · Zasláno: 30. 10. 2014, 13:00:42
Ondra42:
header("Location: index.php?novyprispevek=1"); a potom na stránce obyčejný get. |
||
Ondra42 Profil * |
#9 · Zasláno: 30. 10. 2014, 13:07:59
mimochodec:
děkuji, funguje už parádně |
||
Časová prodleva: 9 let
|
0