Autor Zpráva
Ondra42
Profil *
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/">';
ale bohužel dělá to i po tomto. Nevíte někdo jak se tohle řeší? Děkuji.
mimochodec
Profil
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
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
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 *
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, ma po tom formuláří zobrazovaný příspěvky a nad formulářem nějaký texty


*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
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 *
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
Ondra42:
header("Location: index.php?novyprispevek=1");

a potom na stránce obyčejný get.
Ondra42
Profil *
mimochodec:
děkuji, funguje už parádně

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: