[ bakinjo @ 29.12.2010. 17:39 ] @
$str = $_POST['telefon'];
if ( !eregi( "^[-+()/0-9 ]+$", $str ))
{
$response="Unesite ispravan broj ili ostavite prazno polje!";
$form_success = FALSE;
}
else
....

Znaci imam polje za unos tel. broja i stavio sam koji su dozvoljeni znakovi...
Kako cu napravit da mogu unjet broj ili da može ostat prazno polje, jer tel. broj nije neophodan?

Kako stavit minimalan broj znakova 6?
[ beep @ 29.12.2010. 20:06 ] @
npr ...

Code:

if ($str=="" ||  eregi( "^[-+()/0-9 ]{6,}$", $str )) echo"TRUE";
else echo"FALSE";
[ ka-ching @ 29.12.2010. 20:20 ] @
Pa, da bi omogucio prazno polje dovoljno je samo da + zamenis * (mislim na + koji se nalazi pored $ znaka a ne unutar karakter klase). A sto se tice minimalnog broja znakova... mislim da ti je pristup pogresan (dozvoljavas kombinacije tipa ++++-----9832712). Ne znam koje sve kombinacije odgovaraju tebi, pa ti ne mogu ponuditi precizan odgovor ali obrati paznju na ovaj sablon:

\(?\b[0-9]{3}\)?[-. ]?[0-9]{3}[-. ]?[0-9]{4}\b

On ce ti pokriti sledece kombinacije:
3334445555, 333.444.5555, 333-444-5555, 333 444 5555, (333) 444 5555 and all combinations thereof, like 333 4445555, (333)4445555 or 333444-5555.
[ bakinjo @ 29.12.2010. 21:02 ] @
Nisam programer, kao sto je i ocito, ali uspijem se snaci s gotovim skriptama, zdravom logikom i google-om...

@beep
Rijesio sam problem na drugi nacin i rekao bi da mi radi...

Code:
$validPhoneExpr = "^[-+()/0-9 ]+$";
if (!empty($telefon) && !ereg($validPhoneExpr, $telefon)){  
    $response="Unesite ispravan broj ili ostavite prazno polje!";
       $form_success   = FALSE;}
else bla, bla...  


Pretpostavljam (probat cu) da i tvoje radi... Ovo {6,} radi kao {min,max}?
Idem nekom logikom, to tvoje bi trebalo znacit: ako je ispunjeno jedno ili drugo onda idi dalje, ako nije javi gresku...
Znaci ovo je prazano ==""
Hvala!

@ka-ching
Ja imam gotovu mail skriptu koju malo prilagodjavam... Telefon je opcionalan, ali mi je palo na pamet da (kad sam se vec sekao s prepravljanjem) blokiram unos slova u telefon... Znaci nisam isao na kombinacije, vec sam samo htio dozvolit znakove koji se eventualno koriste za pisanje broja (znaci nesto kao +xxx (xx) xxx xxx). Mislio sam staviti i minimalan broj znakova 6, sad bi stavio 9 jer nema telefonskog broja ispod 9 znakova. Znam da mi to ne sprijecava upisivanje gluposti, ali eto...

Sto se tice ovog plusa... znaci da stavim:
Code:
if ( !eregi( "^[-+()/0-9 ]*$", $str ))
onda bi radila i ova moja original funkcija kad nema unosa?

Jos bi vas pitao, ako slucajno znate... Koliko su uopste sigurne od spama kontakt forme bez captcha-e?!


[ taksistaZR @ 30.12.2010. 13:26 ] @
Samo jedna napomena da se od verzije PHP 5.3.0. ereg() i eregi() vise ne koriste pa je mozda pametnije da kad vec prepravljas nadjes neku zamenu.

Pogledaj preg_match()
[ ka-ching @ 30.12.2010. 14:07 ] @
@bakinjo
Da, zvezdica je bila sve sto je potrebno da dozvolis prazan unos.

I kao sto rece taksistaZR, radi buduce kompatibilnosti bolje je da koristis PCRE regex i njegove funkcije.
[ beep @ 30.12.2010. 20:12 ] @
Ako stavis * ili + onda ne mozes da definises mininalan unos.
[ ka-ching @ 30.12.2010. 22:56 ] @
Citat:
beep: Ako stavis * ili + onda ne mozes da definises mininalan unos.

Mozes sa PCRE regexom:
Code:
(^$)?(?(1)^$|^[-+()\\/0-9]{6,}$)

Ali kao sto sam rekao ovaj regex je "nedovoljan". On trazi minimum 6 karaktera, koji mogu biti tipa "--35+(".