ahoj,
potřeboval bych zjistit, jak se zabrání po odeslání formuláře opětovnému uložení do DB po refreshi stránky (F5).
Díky za rady
Michal
Nejlépe vybráním naposled uloženého údaje (třeba podle času - SELECT * FROM tabulka ORDER BY cas DESC LIMIT 1) a jejich porovnáním s odesílanými.
No tak to je sice pravda, ale domníval jsem se, že to půjde prověst nějak elegantněji. Abych nemusel přidávát sloupec s časem do DB a také abych nemusel porovnávat pole formuláře.
Stejně díky za radu, ale měl by někdo jiný návrh?
přesměrovta přes header location(http://kamchces)
registrace.php:
<form action="save.php">
<input ....
</form>
save.php:
...ulozeni uzivatele...
if ($ulozeni = "povedlo se") header ("Location: registrace.php"); // nebo presmerovat kamkoli jinam
else echo "error";
Asi tak bych to resil ja...
Díky moc za rady, ten header použiji...
Tak jsem použil Header a objevila se mi následující hláška:
Warning: Cannot modify header information - headers already sent by (output started at /srv/www/htdocs/vmail/connect.php:2) in /srv/www/htdocs/vmail/pridej_uzivatele.php on line 38
Přitom si nejsem vědom, že jsem headers poslal uz ve výše zmiňovaném skriptu connect.php.
Pomůžete mi prosím?
michal:
1) >> Abych nemusel přidávát sloupec s časem do DB a také abych nemusel porovnávat pole formuláře.
Já to kontroluju dle posledního vloženýho ID
2) Fci header() musíš použít ještě před samotným výstupem HTML.
Díky Petře....
ta kontrola podle IDecka by mi asi nešla u vkládání záznamu, když tam mám autoincrement fci....
Už jsem myslel, že je to v pohodě, ale ta hláška že už byl Headers poslán se znova objevila. Nikde před použitím Headers by neměl být žádný výstup HTML (echo a tak). Pořád si stěžuje na skript connect.php, který však nyní, po odstranění chybových hlášek (nebyl jste připojen k DB, apod.) obsahuje jen tyto dva řádky:
<?
$connect=mysql_connect("localhost","vmail","ahoj");
mysql_select_db("vmail");
?>
Prosím o pomoc
Uz jsem na to přišel v tom skriptu, kde volám headers nemí být před tímto výrazem ani příkaz include!
Hlavičky se musí poslat před jakýmkoli jiným výstupem.