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>
   &nbsp;<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>&nbsp;</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>
    &nbsp;<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
Třeba pomocí session. Po prvním odeslání si to uložte a příště to kontrolujte.
Fry
Profil
Alphard:
díky, já furt kombinoval header nebo cookies...ale session s pomoci include pomohlo... :)

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: