Autor Zpráva
Kindy
Profil
Zdravím,

Našel jsem na jedné stránce tento zdrojový kód:

<form action="" method="post">
<?php
  if($_POST['send']=="ok" && $_POST['adresa']!="vas@e-mail.cz"){
    Mail("mujemail@mujserver.cz", "Nova registrace", $_POST['adresa']);
    echo "Adresa odeslána";
    }
?>
<input name="send" value="ok" type="hidden" />
<input name="adresa" size="15" id="adresa" value="vas@e-mail.cz" type="text" />
<input name="od" value="Registrovat" type="submit" />
</form>

Všemu rozumím, akorát nechápu význam toho "skrytého inputu", kde se porovnává hodnota "ok".

Proč tam není jenom:
if($_POST['adresa']!="vas@e-mail.cz")

Jak je to v praxi? Používají se ty skryté inputy, neboli to byla jenom taková pojistka autora?

Děkuji :)
rori
Profil *
je to tam kvuli tomu aby se ten script nespustil když na tu stránku jenom vlezeš,ale zajistí aby se ten script pustil při odeslání formuláře.
já to řeším jiným způsobem,a to takovým že do submitu dám value SEND a pak vlastně jen dám podmínku
if(isset($_POST['SEND']))
mimochodec
Profil
Kindy:
V tomto případě je hidden nadbytečný, protože stačí odchytávat $_POST['adresa']. Ne vždycky je to tak jednoduché.

Mnohem horší než nadbytečný hidden mi připadá zpracování toho formuláře uvnitř html. Kdo má v aplikaci takový bordel, ten má s její údržbou podstatně víc práce.
rori
Profil *
a..jen tak pro mě..není náhodou chyba dávat php který zpracovává formulář přímo do formuláře?..
mimochodec
Profil
rori:
A abych nezapomněl: php, které zpracovává hodnoty formuláře, z mnoha dobrých důvodů nepatří do něj.
Kindy
Profil
mimochodec, rori:

Děkuji za odpovědi..

Mimochodec - já bych to udělal spíše přes <form action>, ale tak jsem rád, že vím, že to jde i takhle :)

PS: Zkusím jestli to, co napsal rori je true, neboli zkusím to dát bez toho hidden inputu a uvidím..

Zdravím :)

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: