Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Provera malo komplikovanije forme

[es] :: PHP :: Provera malo komplikovanije forme

[ Pregleda: 976 | Odgovora: 11 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Zlatiborac
Vladimir
Zlatibor

Član broj: 5397
Poruke: 113
*.vdial.verat.net

Sajt: www.dphotonews.com


Profil

icon Provera malo komplikovanije forme10.02.2004. u 20:32

Problem je sledeci:
Naime, potrebno je da uradim jednu povecu formu koja bi podatke prosledjivala dalje,., da li na mail ili u bazu nije bitno za prichu.,., problem sa kojim sam se sreo sad, a i dosada je u proverama.
Naime dosada sam koristio samo proveru da li je u polje upisano bilo shta i ako nije vracala bi nazad da se popuni, ali sa tim da su dotada popunjena polja zadrzavala one vrednosti koje su unete u njih.
To sam radio tako shto bih prvo primio promenjive, proverio polja, i ako neki od uslova nije ispunjen, preshlo bi se na kod prethodne strane.,.,. ,evo kako je to izgledalo.,., uproshteno naravno.,.,., ako me neko ne razume:


Prva strana na kojoj se nalaze polja!!!

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="post" action="">
<p>
<input name="ime" type="text" id="ime">
Ime
</p>
<p>
<input name="prezime" type="text" id="prezime">
Prezime
</p>
<p>
<input type="submit" name="Submit" value="Unesi">
<input type="reset" name="Submit2" value="Reset">
</p>
</form>
</body>
</html>


Druga strana koja proverava i prosledjuje dalje podatke

<?php
$ime = $HTTP_POST_VARS['ime'];
$prezime = $HTTP_POST_VARS['prezime'];

if ( empty ( $ime )|| empty ( $prezime ))
{
?>
<font color=\"#ff0000\">Neko od polja nije uneto!!!</font>
<form name="form1" method="post" action="">
<p>
<input name="ime" type="text" id="ime" value="<?php print "$ime"; ?>">
Ime
<?php if ( empty ( $ime ) ) { print "<font color=\"#ff0000\">*</font>"; } ?>
</p>
<p>
<input name="prezime" type="text" id="prezime" value="<?php print "$prezime"; ?>">
Prezime
<?php if ( empty ( $prezime ) ) { print "<font color=\"#ff0000\">*</font>"; } ?>
</p>
<p>
<input type="submit" name="Submit" value="Unesi">
<input type="reset" name="Submit2" value="Reset">
</p>
</form>
<?php
} else {
$to = "neko@neshto.yu";
$subject = "Forma";
$message = "
Korisnik je uneo sledece podatke\n

Ime klijenta: $ime \n
Prezime klijenta: $prezime \n
";
mail ( $to, $subject, $message);
echo "Mail je poslat!!!";
exit();
}

?>

Kao shto vidite u drugom fajlu ako nije neshto uneto prlazi se na ponovni unos, s'tim da se zadrzavaju vrednosti koje su unete.

I shta je sada problem?!
Pa sve je ovo lako kada se rade male forme i kada se od vas ne zahteva da proveravate da li su u polje ime uneta samo slova, da li je telefon OK, i sve ostalo.,.,.,.
Ali shta se deshava kada je potrebna provera i imena (da li su slova samo u pitanju), i telefona, i soc. broja, lichne karte.,.,.
Pokushavao sam neshto da uradim preko funkcija koje bi proveravale da li su u pitanju samo brojevi ili slova.,.,., ali .,.,., ali je tu shto se sve ovo jako zakomplikuje kada imate formu sa 30ak polja, pa kad morate da kopirate sva polja.,.,,.,

Znachi shta mene interesuje.,., ima li neko prostije reshenje od ovoga koje sam koristio dosada?
Zna li ko koje se funkcije koriste.,., ja sam koristio sledecu npr. za e-mail validaciju

$pattern = '^([._a-zA-Z0-9-]){2,255}@([._a-zA-Z0-9-]){2,255}\.([a-zA-Z]){2,3}$';
if (!ereg ($pattern,$email)) {
echo "bad email";
}
i nije mi se pokazala OK.,.,., i ovu

if (ereg(^([a-zA-Z0-9_-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$, $_POST['email'])) {
echo "<br>Please enter a valid e-mail address.";
}

Nashao sam dosta primera na NETu ovih provera, ali nijedan primer ovoga shto meni treba.
PLS, nemojte mi reci da koristim JAVAu ili sl. Zelim ovo da uradim u PHPu!
Sajt sa dnevnim vestima vezanim za fotografiju, foto aparate i obradu slika
[url]http://www.dphotonews.com[/url]
10.02.2004. u 20:32 

NetworkAdmin
Zoran Knezevic
programer u jednoj X kompaniji, radim na daljinu onli..
Beograd

Član broj: 4445
Poruke: 609
*.access-sa1.lsinter.net

Sajt: www.rentalio.com


Profil

icon Re: Provera malo komplikovanije forme10.02.2004. u 21:35
evo nije bas 100% ono sto trazis ali ima dosta elemenata ustvari provjerava sve elemente forme prije upisa u database:

http://www.phpinsider.com/php/code/SafeSQL/

Tamo imas provjere jeli nesto numericko, mail, samo slova slova i brojevi minimalna/max duzina i mnogo stosta.

Tamo imas objasnjenja sta i kako raditi a ovo je malo starija klasa ali tamo mozes naci trag kuda dalje ici.
10.02.2004. u 21:35 

luka357
Banja Luka

Član broj: 16848
Poruke: 34
*.teleklik.net.



Profil

icon Re: Provera malo komplikovanije forme10.02.2004. u 22:29
Probaj ovo da primjenis, kod mene radi na jednoj veoma velikoj formi, ako ti trebaju neke druge provjere mogu da pregledam neke svoje aplikacije u kojima sam koristio provjere za upise u bazu i na server preko formi.

$validEmailExpr =
"^[0-9a-z~!#$%& -]([.]?[0-9a-z~!#$%& -])*" .
"@[0-9a-z~!#$%& -]([.]?[0-9a-z~!#$%& -])*$";

if (empty($email))

$errors["email"] .= "Elektronska adresa je obavezna kategorija.";

elseif (!eregi($validEmailExpr, $email))
// Adresa poste mora da se poklapa sa regularnim izrazom
$errors["email"] .= "Adresa poste mora da se poklapa sa regularnim izrazom ime@domain.";

elseif (strlen($email) >50)
//Dozvoljeno je najvise 50 znakova
$errors["email"] .= "Dozvoljeno je najvise 50 slovnih znakova.";
10.02.2004. u 22:29 

Zlatiborac
Vladimir
Zlatibor

Član broj: 5397
Poruke: 113
*.vdial.verat.net

Sajt: www.dphotonews.com


Profil

icon Re: Provera malo komplikovanije forme10.02.2004. u 23:26
Hvala vam na pomoci, ali mozda sam ja malo da kazem promashio.,.,., evo na shta mislim.
Naime, ima dosta objashnjenja na NETu kako proveriti ispravnost.,.,. mene za sad vishe interesuje da li je put koji koristim OK. Da li je u redu ovakav nachin "vracanja" nazad uz upozorenje da neshto nije upisano?
Shta vi koristite?
Sajt sa dnevnim vestima vezanim za fotografiju, foto aparate i obradu slika
[url]http://www.dphotonews.com[/url]
10.02.2004. u 23:26 

_owl_
Centar - BG

Član broj: 318
Poruke: 990
*.vdial.verat.net

Sajt: home.drenik.net/~owl


Profil

icon Re: Provera malo komplikovanije forme10.02.2004. u 23:41
Mrzelo me da citam kod koji si poslao, ali pod hitno razmisli o koriscenju nekog templejt sistema. Inace princip koji si opisao je sasvim OK, korisnik popuni formu ti proveris polja i ili ides dalje ili ga vracas na formu sa porukom o gresci. Idealno bi bilo kada bi postojala i JS validacija cisto da se podaci ne salju na server i nazad u slucaju neke trivijalne greske(ne popunjeno polje, neka prostija validacija).

Owl
10.02.2004. u 23:41 

Zlatiborac
Vladimir
Zlatibor

Član broj: 5397
Poruke: 113
*.vdial.verat.net

Sajt: www.dphotonews.com


Profil

icon Re: Provera malo komplikovanije forme11.02.2004. u 00:27
Eto, da si prochitao barem kraj video bi da je bash to reshenje ono shto ne zelim.,.,. jako retko upotrebljavam ono za shta ne znam kako funkcionishe :)
Ipak, hvala ti!
Sajt sa dnevnim vestima vezanim za fotografiju, foto aparate i obradu slika
[url]http://www.dphotonews.com[/url]
11.02.2004. u 00:27 

arsa xx
Srdjan Arsic
Beograd

Član broj: 14203
Poruke: 452
*.air.tehnicom.net

ICQ: 247217004
Sajt: webdizajn.arsic.biz


Profil

icon Re: Provera malo komplikovanije forme11.02.2004. u 01:23
Svakako ces morati zasuci rukave
evo male pomoci: http://www.thewebmasters.net/php/Validator.phtml
Flash komponenta za atraktivan prikaz vesti na sajtu:
www.flash-news-ticker.com
11.02.2004. u 01:23 

noviKorisnik

Član broj: 13216
Poruke: 4516
*.bankmeridian.com



Profil

icon Re: Provera malo komplikovanije forme11.02.2004. u 08:26
Citat:
Zlatiborac:
...
PLS, nemojte mi reci da koristim JAVAu ili sl. Zelim ovo da uradim u PHPu!
Citat:
_owl_:
Idealno bi bilo kada bi postojala i JS validacija cisto da se podaci ne salju na server i nazad u slucaju neke trivijalne greske(ne popunjeno polje, neka prostija validacija).

Eto, da si prochitao barem kraj video bi da je bash to reshenje ono shto ne zelim.,.,. jako retko upotrebljavam ono za shta ne znam kako funkcionishe :)
Ipak, hvala ti!

_owl_ je predložio da se koristi JS validacija, što nije Java a nije ni slično.

Princip validacije u JS je prilično sličan opisanom u PHP-u. Postoje regularni izrazi za određene oblike traženog unosa i radi se provera da li vrednost nekog polja u formularu zadovoljava pretpostavljenu šemu. Ako je neko polje neispravno popunjeno, formular se ne prosleđuje već se, na primer, daje poruka o grešci i selektuje neispravno popunjeno polje. Formular se prosleđuje tek kada su sva polja uspešno postavljena.

Zašto cela ova priča? Dva su razloga - izbegava se maltretiranje korisnika u čekanju nove stranice koja javlja grešku i izbegavaju se suvišni zahtevi serveru.

Opet, što se tiče provere - stoji preporuka da se izvrši JS validacija formulara pre slanja (za to JS isključivo i služi), a takođe stoji i preporuka da se i pored toga radi validacija i na PHP strani. Znači - dupla validacija.

Evo samo primer validacije u JS, da vidiš da to nije nešto strašno:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
function proveri (formular)
{
if (formular.ime.value == '')
{
alert ('ime mora biti popunjeno');
formular.ime.focus ();
return false;
}
if (formular.prezime.value == '')
{
alert ('prezime mora biti popunjeno');
formular.prezime.focus ();
return false;
}
return true;
}
</script>

</head>

<body>
<form name="form1" method="post" action="">
<p>
<input name="ime" type="text" id="ime">
Ime
</p>
<p>
<input name="prezime" type="text" id="prezime">
Prezime
</p>
<p>
<input type="submit" name="Submit" value="Unesi" onclick="return proveri (this.form);">
<input type="reset" name="Submit2" value="Reset">
</p>
</form>
</body>
</html>
11.02.2004. u 08:26 

Zlatiborac
Vladimir
Zlatibor

Član broj: 5397
Poruke: 113
*.ptt.yu.

Sajt: www.dphotonews.com


Profil

icon Re: Provera malo komplikovanije forme11.02.2004. u 12:55
Hmm.,.,., ovaj kod koji si dao radi proveru da li je ishta upisano .,.,., to mi je ferceralo i samo sa PHPom. Kako sada izvesti proveru ispravnosti upisanog polja, tj. da li se u imenu nalaze samo slova.,.,. u broju telefona samo brojevi i sl.???
Sajt sa dnevnim vestima vezanim za fotografiju, foto aparate i obradu slika
[url]http://www.dphotonews.com[/url]
11.02.2004. u 12:55 

noviKorisnik

Član broj: 13216
Poruke: 4516
*.bankmeridian.com



Profil

icon Re: Provera malo komplikovanije forme11.02.2004. u 14:21
Izvini, krenuo sam po prvom primeru koji je bio baš takav. Nije stvar u tome da ćeš u JS uraditi nešto što ne možeš u PHP-u. Za provere različitih oblika unosa koriste se takođe regularni izrazi, baš kao što bi se izvelo u PHP-u. Primer
Code:
function check_numeric (value)
{
  var r = /^\d+$/;
  return r.test (value);
}

Za proveru e-maila ne znam jer i nisam našao koji je opšti oblik dozvoljene e-mail adrese, a vidim da je to veći problem. U praksi je verovatno dovoljno nešto od ovih predloženih šema.

Sama ideja provere u JS je iz razloga da se spreči nepotrebno višestruko prosleđivanje formulara. Pored ove provere neophodna je i PHP provera jer korisnik može i da isključi JS u svom browseru (kada se formular prosleđuje u svakom slučaju).
11.02.2004. u 14:21 

NetworkAdmin
Zoran Knezevic
programer u jednoj X kompaniji, radim na daljinu onli..
Beograd

Član broj: 4445
Poruke: 609
*.bbone.utic.net.ba.

Sajt: www.rentalio.com


Profil

icon Re: Provera malo komplikovanije forme11.02.2004. u 14:56
Evo ovdje imas masu php form validatora

http://php.resourceindex.com/F...e_Development/Data_Validation/
11.02.2004. u 14:56 

Zlatiborac
Vladimir
Zlatibor

Član broj: 5397
Poruke: 113
*.vdial.verat.net

Sajt: www.dphotonews.com


Profil

icon Re: Provera malo komplikovanije forme11.02.2004. u 16:02
OK.,., pogledacu sve to. Malopre sam nashao jedan JS primerchic, pa ako ne stignem da zavrshim ono shto sam planirao moracu da koristim JS :(
Sajt sa dnevnim vestima vezanim za fotografiju, foto aparate i obradu slika
[url]http://www.dphotonews.com[/url]
11.02.2004. u 16:02 

[es] :: PHP :: Provera malo komplikovanije forme

[ Pregleda: 976 | Odgovora: 11 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.