Autor | Zpráva | ||
---|---|---|---|
Fry Profil |
Potřeboval bych zabránit znovu odeslání dat při reloadu stránky jinak než pomocí header, pač to porušuje pravidlo s výstupem, a nevím jak toho dosáhnout, protože zároveň potřebuju aby se mi při špatném vyplnění formuláře, vrátil s předvyplněnýma údajema. Takže budu vděčný za každou radu.
<? $zobrazeni=true; if (!empty($_POST)) { $mdhe = htmlspecialchars($_POST['heslo'], ENT_QUOTES); $mdhz = htmlspecialchars($_POST['hesloznovu'], ENT_QUOTES); $mdlo = htmlspecialchars($_POST['login'], ENT_QUOTES); $mdem = htmlspecialchars($_POST['mail'], ENT_QUOTES); $mdjm = htmlspecialchars($_POST['jmeno'], ENT_QUOTES); $mdpr = htmlspecialchars($_POST['prijmeni'], ENT_QUOTES); $mdni = htmlspecialchars($_POST['prezdivka'], ENT_QUOTES); if ($mdhe=="" AND $mdlo=="") echo "<br>Nezadali jste všechny povinné údaje.<br><br>"; elseif (!mailok($mdem)) echo "<br>Nezadal jsi platný e-mail.<br><br>"; elseif (loginok ($mdlo)){ echo "<br>Login už používá jiné Jelito.<br><br>";} elseif ($mdhe!=$mdhz) echo "<br>Heslo a heslo pro ovìøení jsi nezadal shodné.<br><br>"; elseif ((strlen ($mdlo)>24) | strlen ($mdlo)<3)echo "<br>Login musí mít 3-24 znakù<br><br>"; elseif ((strlen ($mdhe)>24) | strlen ($mdhe)<3)echo "<br>Heslo musí mít 3-24 znakù<br><br>"; else { $zobrazeni=false; $result = NaseQuery("SELECT Max(id) AS 'Max' FROM uzivatele "); $rowmax = MySQL_Fetch_Row($result); $rowmaxa = $rowmax[0]+1; MySQL_Query("INSERT INTO uzivatele VALUES ($rowmaxa,'$mdlo','$mdhe','$mdem','$mdjm','$mdpr','".$_POST['pohlavi']."','$mdni','$PHPSESSID','NE','NE','')"); header("Location: index.php?akc=potvrzeni"); } } if ($zobrazeni):?> <br> <form action="index.php?akc=registrace" method="post" name="reg" title="Registraèní formuláø" onSubmit="return Validate(this);"> <fieldset> <legend>Registraèní údaje - povinné (3-24 znakù)</legend> <table> <tr><td> <label for="login">Login</label> </td><td> <input tabindex="5" accesskey="l" type="text" name="login" id="login" value='<?php echo htmlspecialchars($_POST['login'], ENT_QUOTES); ?>' > <br> </td></tr> <tr><td> <label for="heslo">Heslo</label> </td><td> <input tabindex="6" accesskey="h" type="password" name="heslo" id="heslo"> <br> </td></tr> <tr><td> <label for="hesloznovu">Heslo znovu</label> </td><td> <input tabindex="7" accesskey="a" type="password" name="hesloznovu" id="hesloznovu"> <br> </td></tr> <tr><td> <label for="mail">E-mail</label> </td><td> <input tabindex="8" accesskey="e" type="text" name="mail" id="mail" value='<?php echo htmlspecialchars($_POST['mail'], ENT_QUOTES); ?>' > <br> </td></tr> </table> </fieldset> <br> <fieldset> <legend>Osobní údaje</legend> <table> <tr><td> <label for="jmeno">Jméno</label> </td><td> <input tabindex="1" accesskey="j" type="text" name="jmeno" id="jmeno" value='<?php echo htmlspecialchars($_POST['jmeno'], ENT_QUOTES); ?>' > <br> </td></tr> <tr><td> <label for="prijmeni">Pøíjmení</label> </td><td> <input tabindex="2" accesskey="p" type="text" name="prijmeni" id="prijmeni" value='<?php echo htmlspecialchars($_POST['prijmeni'], ENT_QUOTES); ?>' > <br> </td></tr> <tr><td> <label for="prezdivka">Pøezdívka</label> </td><td> <input tabindex="3" accesskey="n" type="text" name="prezdivka" id="prezdivka" value='<?php echo htmlspecialchars($_POST['prezdivka'], ENT_QUOTES); ?>' > <br> </td></tr> <tr><td> </td></tr> <tr><td> <label for="pohlavi">Muž</label> </td><td class=tpo> <input tabindex="4" accesskey="m" type="radio" name="pohlavi" value="muz" <?php echo ($_POST['pohlavi'] == "zena") ? "checked" : "checked" ?> id="pohlavi"> <br> </td></tr> <tr><td> <label>Žena</label> </td><td class=tpo> <input tabindex="5" accesskey="z" type="radio" name="pohlavi" value="zena" <?php echo ($_POST['pohlavi'] == "zena") ? "checked" : "" ?>> </td></tr> </table> </fieldset> <br> <p> <input type="submit" name="novyClen" value="Potvrdit"> </p> </form> <script language="JavaScript" type="text/javascript"> if(document.getElementById) { document.write('<br><p id="requiredtext" style="visibility:hidden;">'); } </script> <?endif;?> Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
Alphard Profil |
#2 · Zasláno: 10. 1. 2010, 09:32:42
Třeba pomocí session. Po prvním odeslání si to uložte a příště to kontrolujte.
|
||
Fry Profil |
#3 · Zasláno: 10. 1. 2010, 10:34:24
Alphard:
díky, já furt kombinoval header nebo cookies...ale session s pomoci include pomohlo... :) |
||
Časová prodleva: 14 let
|
0