Autor Zpráva
Káčer
Profil
Ahoj, potřeboval bych pomoc s kontrolou vypsání malého formuláře, aby mě nebyl poslán prázdný, ale kontrola aby proběhla před odesláním.
if ($_POST)  {  
  $to = "tvorba@webkacer.eu";  
  $email = $_POST['mailodes']; 
  $extra = "From: $email\r\nReply-To: $email\r\n";  
  $subject = "Objednávka od $email";  
  $mess = "Jméno: ".$_POST['jmeno']
          . "\nPříjmení ".$_POST['prijmeni']."\nEmail: ".$email."\n Web: ".$_POST['web']
          . "\nTyp stránek ".$_POST['typ']
          . "\nPopis stránek ".$_POST['popis']                 
          . "\nDatum vyplnění ".$_POST['datum'];
 if(!cs_mail ($to, $subject, $mess, $extra))
     echo('<div id="result">Vaše objednávka nebyla odeslána!</div>');
     else echo('<div id="result">Vaše objednávka byla odeslána!</div>');
  }
  ?>


Díky za pomoc
Joker
Profil
Káčer:
Javascriptovou validací, ukázka například zde
Rellik
Profil
Joker:
A co když vypnu javascript? JS validace je pak fuč... Raděj bych to řešil přímo scriptem.

Káčer:
v php zkontroluj odeslané pole zda jsou nebo nejsou prázdné a podle toho pak formulář odešli nebo vrať k doplnění..
např. takto nějak to řeším já:
<?php
//nějaký kód
if($jmeno & $prijmeni & $ulice & $mesto)
	{
	if(!is_numeric($psc & $telefon))
		{
			echo "<span class='red'>PSČ a telefon musí být pouze čísla!</span>";
		} else {
				if (!preg_match ("/^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,6}+$/", $email))
					{
						echo "<span class='red'>Emailová adresa nebyla vyplněna správně!</span>"; 
					} else { 
							// tady je script na odeslání 
						}
					}
		} else { 
				echo "<span class='red'>Formulář není správně vyplněn!</span>"; 
			}
?>


Chtělo by to ještě ošetřit odeslání pouhých "prázdných" znaků (vyplnění formuláře jedním klikem na merezník), ale tohle jako malá inspirace snad stačí.. ;)
Joker
Profil
Rellik:
A co když vypnu javascript?
Tak se mu to před odesláním nezkontroluje a zkontroluje to až server po odeslání.

Pravda, zapomněl jsem pro jistotu zdůraznit, že je samozřejmě potřeba i validace na serveru.

Jinak is_numeric není úplně vhodná kontrola na PSČ a telefon, protože pak kontrolou PSČ neprojde třeba "110 00", zatímco projde třeba "0", "0.e0" nebo "0xBADF00D".
Daf
Profil
Diky. A nevíte jak by to mělo vypadat, kdybych chtěl mít i kontrolu zda email existuje? Kde bych to mohl popřípadě najít?
okolojdouci
Profil *
Ověřit existenci emailu nelze. Ověřit to, jestli mail je uveden smysluplně, tzn. znaky@domena.tld, lze např. pomocí regulárů, hledej tady v diskusi.
Majkl578
Profil
Pomocí kontroly MX záznamů jde ověřit, jestli doména může e-maily mít (funkce getmxrr). Existenci konkrétního e-mailu bezpečně ověříš jen tak, že na něj zašleš nějaký kontrolní klíč/odkaz (jako se to dělává při registracích).

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0