Poslao: 21 Avg 2007 00:30
|
offline
- Pridružio: 06 Apr 2005
- Poruke: 403
- Gde živiš: Beograd
|
Pa recimo:
if (empty($_POST['nesto']))
{
$error[] = "Sinak popuni trazeno polje nesto";
}
I tako lepo prodjes sva potrebna polja.
Svaki put kad se javi greska ti punis niz $error nekim porukama.
Kad prodjes sve promenjive koje proveravas, onda proveris da li je niz $error prazan.
Ako jeste snimanje u bazu.Ako nije prikazes greske jednim foreach-om npr.
EDIT:Sad sam tek pazljivo procitao celu temu pa da dam malo konkretniji odgovor.
Proveru koji je tip podataka unesen (broj, string...) mozes da radis preko regularnih izraza.Znaci ili preg_match() ili recimo eregi().
Isto vazi i za email.Sam regex pattern nadji na googlu (vrlo je lako).
I jedan tip za kraj:
Nigde ne escapujes promenjive u source-u koji si okacio ovde.
Obavezno bar addslashes() a bolje je mysql_real_escape_string() za stringove.
Za brojeve koristi: $neki_broj = intval($_POST['neki_broj']);
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 21 Avg 2007 05:43
|
offline
- DR

- Legendarni građanin
- Pridružio: 08 Okt 2004
- Poruke: 5450
- Gde živiš: Beograd
|
jok vala, ni ova kombinacija ne radi ...
<body>
<?
//upis u bazu
if ( isset($_POST['potvrdi']) ) {
$drzava = trim($_POST['drzava']);
$naziv = trim($_POST['naziv']);
$adresa = trim($_POST['adresa']);
$mesto = trim($_POST['mesto']);
$telefon = trim($_POST['telefon']);
$fax = trim($_POST['fax']);
$email = trim($_POST['email']);
$upis = "insert into registar (Drzava, Naziv, Adresa, Mesto, Telefon, Fax, Email) values ('$drzava', '$naziv', '$adresa', '$mesto', '$telefon', '$fax', '$email')";
if( mysql_query($upis) ) {
echo("upisano");
}
else {
echo("greska u upisu");
}
} if (empty($_POST['naziv']))
{
$error[] = "Sinak popuni trazeno polje nesto";
}
?>
|
|
|
|
|
Poslao: 21 Avg 2007 10:30
|
offline
- Pridružio: 06 Apr 2005
- Poruke: 403
- Gde živiš: Beograd
|
@DR
Kod ti je lose organizovan (radis proveru posle upisa u bazu?!).
Probaj da ga organizujes ovako nekako:
<body>
<?
//upis u bazu
if ( isset($_POST['potvrdi']) ) {
if (empty($_POST['naziv']))
{
$error[] = "Sinak popuni trazeno polje nesto";
}
$drzava = trim($_POST['drzava']);
$naziv = trim($_POST['naziv']);
$adresa = trim($_POST['adresa']);
$mesto = trim($_POST['mesto']);
$telefon = trim($_POST['telefon']);
$fax = trim($_POST['fax']);
$email = trim($_POST['email']);
if (empty($errors))
{
$upis = "insert into registar (Drzava, Naziv, Adresa,
Mesto, Telefon, Fax, Email) values ('$drzava', '$naziv', '$adresa', '$mesto', '$telefon', '$fax', '$email')";
if( mysql_query($upis) )
{
echo("upisano");
}else {
echo("greska u upisu");
}
}else{
echo "Ispravite sledece greske:";
foreach ($errors as $key=>$value)
{
echo $value."<br />";
}
}
?>
Ovo je katastrofa kod, ali princip je taj.
|
|
|
|
|
Poslao: 21 Avg 2007 20:57
|
offline
- Pridružio: 06 Apr 2005
- Poruke: 403
- Gde živiš: Beograd
|
Sta znaci salje?
Dozvoljava da pretisnes submit ako nisi popunio trazena polja?
Ako je to, to moras da resis sa Java Script-om i to sa PHP-om nema nikakve veze.
|
|
|
|
Poslao: 21 Avg 2007 21:28
|
offline
- Rastafarii

- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3695
- Gde živiš: 127.0.0.1
|
Probaj ovako da proveris imas li gresaka:
umesto:
if (empty($errors))
koristi
$broj = count($errors);
if ($broj != 0)
i gledaj da proveris sva polja, a ne samo naziv
|
|
|
|
Poslao: 22 Avg 2007 04:56
|
offline
- DR

- Legendarni građanin
- Pridružio: 08 Okt 2004
- Poruke: 5450
- Gde živiš: Beograd
|
centaur ::Sta znaci salje?
Dozvoljava da pretisnes submit ako nisi popunio trazena polja?
Ako je to, to moras da resis sa Java Script-om i to sa PHP-om nema nikakve veze.
da ali ne upisuje u bazu sto je ok medjutim sta ako se izostavi neko vazno polje a iskljucen je js a taj podatak npr moze da bude veoma vazan?
rastafari i to vec deluje s tim da imam sledece greske Notice: Undefined variable: errors in c:\program files\easyphp1-7\www\forum\ap14.php on line 68
Ispravite sledece greske:
Warning: Invalid argument supplied for foreach() in c:\program files\easyphp1-7\www\forum\ap14.php on line 81
|
|
|
|
Poslao: 22 Avg 2007 10:25
|
offline
- Pridružio: 06 Apr 2005
- Poruke: 403
- Gde živiš: Beograd
|
DR ::
da ali ne upisuje u bazu sto je ok medjutim sta ako se izostavi neko vazno polje a iskljucen je js a taj podatak npr moze da bude veoma vazan?
Ti ne mozes 100% da sprecis usera da submituje formu nikada (osim ako ne sakrijes submit polje, a i tad ce se snaci )
Ali zato mozes da ne snimis nesipravne podatke, da kreiras poruke o greskama, da mu ih prikazes i omogucios mu da ispravi neispravno unete podatke.
|
|
|
|
Poslao: 22 Avg 2007 13:19
|
offline
- Rastafarii

- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3695
- Gde živiš: 127.0.0.1
|
obrati paznju na typo: kad desinises niz, on se zove $error, a kad proveravas jel ima elemenata u njemu, onda se zove $errors...
dodaj s na pocetku ili ga oduzmi na kraju
Dopuna: 22 Avg 2007 13:19
a za JS, verovatno ti u IE brani, a u FF dozvoljava slanje prazne forme...
non-IE browseri malo drugacije shvataju JS, a IE shvata i jedno i drugo...
probaj da if(document.forma.telefon.value.length
zamenis sa if(document.forms[0].elements[0].value.lenght
s tim sto ti je prvi element u formi broj 0, drugi 1 i tako dalje...
|
|
|
|