Autor Zpráva
Monkeys
Profil *
Ahoj neviete mi prosim poradit pozeram nato uz hodinu a neviem najst chybu.
Chyba je ze ak nezadam do pola email nic tak vyhodi hlasku co je OK ale ak tam napisem napr len zavinac bez podky tak vyhodi chybovu hlasku ale formular sa odosle ako tomu zabranit aby to odoslalo az ked bude napisana spravna adresa.

Tu je kod:

if (strlen($_POST['email']) > 0) {
	$email=true;	
	 if(ereg('.+@.+\..+', $_POST['email'])) {
	$email=true;
	}else{
	$email=false;
	$i .="<span class=\"vystraha\">Váš E-mail nemá správny formát!</span><br>";							
	}
	}else{
	$email=false;	  
	$i .="<span class=\"vystraha\">Nezadali ste svoj email!</span><br>";	  
	}
__construct
Profil
Monkeys:
• Za prvé ereg je zastaralá funkcia, ktorá je v novších verziách PHP zavrhnutá - nahraď ju za preg_match
• Ten regulár nie je moc, šťastné riešenie - prejdú cez neho aj nevalídne adresy.
Myslím, že dobrým riešením by v tvojom prípade bolo použitie vstavaných filtrov - filter_var - tu máš aj príklad ako na emailovú adresu.
Monkeys
Profil *
takze ak to napisem takto je to spravne?

if (strlen($_POST['email']) > 0) {
    $email=true;    
    if (!filter_var($_POST['email']) , FILTER_VALIDATE_EMAIL)) {
	$email=true;
	  }else{
    $email=false;
    $i .="<span class=\"vystraha\">Váš E-mail nemá správny formát!</span><br>";                            
    }
    }else{
    $email=false;      
    $i .="<span class=\"vystraha\">Nezadali ste svoj email!</span><br>";      
    }[/b]


Teraz neviem filter -
filter_var
dokaze rozoznat aj ked je formularove pole prazdne(v tom pripade by sa mi zuzil kod co by bolo fajn), alebo sluzi len ako porovnanie adresy podla neakeho vzoru? V rom pripade mi tam asi chyba neaky vzor podla ktoreho sa to bude porovnavat! Neviem s touto funkciou robim prvy krat.

Alebo opravit regularny vyraz takto.
preg_match("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$", $_POST['email']))

----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Este som sa chcel opytat mam pole telefon a chcem aby sa tam zapisovali len cisla, mozem regularny vyraz napisat neako takto?
preg_match("^[0-9]$", $_POST['telefon'])


Vdaka
__construct
Profil
Monkeys:
Riadok 3 si oprav
if (!filter_var($_POST['email']/* ) Táto zátvorka tu nemá byť */ , FILTER_VALIDATE_EMAIL)) {

dokaze rozoznat aj ked je formularove pole prazdne
Bráni Ti niečo to vyskúšať?

mam pole telefon a chcem aby sa tam zapisovali len cisla, mozem regularny vyraz napisat neako takto
Môžeš, ale cez ten prejde aj telefónne číslo v tvare 112 :-)
Na kontrolu telefónneho čísla používam tento regulár ^(((\+|00)42\d)? ?\d{3} ?\d{3} ?\d{3})$.
Monkeys
Profil *
__construct:

Dakujem pomohol si mi.

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: