evo ti moja klasa dole.... naravno dodaj odgovarajuce formate ako se razlikuju od ovih u klasi
poenta je da imas tri niza prvi je sa vrednostima posta, drugi koji format unosa treba da bude i treci da li je obavezno ili nije za unos...
evo primera:
Code:
// niz sa vrednostima iz forme $post
$tip_unosa=array('txt','mail','telefon','mix');
$obavezno=array(1,1,0,1);
$forma = new proveraforme();
$forma -> kreiraj_matricu($post,$tip_unosa,$obavezno);
$forma -> proveri_tip_unosa();
$forma -> proveri_null();
$forma -> proveri_greske();
// printanje rezultata
echo '<pre>':
print_r($forma->rezultati_forme);
Code:
// KLASA PROVERA FORME---------------------------------
class proveraforme
{
var $niz;
var $rezultati_forme;
var $duplikat;
var $proveri;
var $napomena;
function kreiraj_matricu($niz, $tip_unosa,$obavezno)
{
$rezultati_forme=array();
$i=0;
foreach ($niz as $indeks=> $vrednost)
{
$rezultati_forme[$i][0]=$indeks;
$rezultati_forme[$i][1]=addslashes($vrednost);
$rezultati_forme[$i][2]=$tip_unosa[$i];
$rezultati_forme[$i][3]=$obavezno[$i];
$rezultati_forme[$i][4]=0;
$i++;
};
$this->rezultati_forme=$rezultati_forme;
}
function proveri_null()
{
$rezultati_forme=$this->rezultati_forme;
for ($i=0; $i<=count($rezultati_forme)-1; $i++)
{
if( $rezultati_forme[$i][1]==NULL & $rezultati_forme[$i][2]!='ID' & $rezultati_forme[$i][3]==1) {$rezultati_forme[$i][4]=1;};
};
$this->rezultati_forme=$rezultati_forme;
}
//--- PROVERA UNOSA
function proveri_tip_unosa()
{
$rezultati_forme=$this->rezultati_forme;
for ($i=0; $i<=count($rezultati_forme)-1; $i++)
{
// samo slova i space--------------------
if( $rezultati_forme[$i][2]=='txt' & !eregi("^[a-zžšèæðŠŽÈÆÐ,[:blank:]]{3,60}$", $rezultati_forme[$i][1]))
{$rezultati_forme[$i][1]=NULL;};
//-----------------------------------------
// slova, cifre, space i crtica--------------------
if( $rezultati_forme[$i][2]=='txt2' & !eregi("^[a-zžšèæðŠŽÈÆÐ0-9,[:blank:],-]{3,60}$", $rezultati_forme[$i][1]))
{$rezultati_forme[$i][1]=NULL;};
//-----------------------------------------
// nedozvoljeni znaci <, >, ", ' --------------------
if( $rezultati_forme[$i][2]=='mix' & eregi("[<>\"\']", $rezultati_forme[$i][1]))
{if($rezultati_forme[$i][1]!=NULL & $rezultati_forme[$i][3]==0) {$rezultati_forme[$i][4]=1;}; $rezultati_forme[$i][1]=NULL;};
//-----------------------------------------
// samo cifre------------------------
if( $rezultati_forme[$i][2]=='broj' & !eregi("^[0-9]{1,13}$", $rezultati_forme[$i][1]))
{$rezultati_forme[$i][1]=NULL;};
//-----------------------------------
//godiste do 4 cifre------------------------
if( $rezultati_forme[$i][2]=='4cifre' & !eregi("^[0-9]{1,4}$", $rezultati_forme[$i][1]))
{$rezultati_forme[$i][1]=NULL;};
//-----------------------------------
// datum format----------------------
if($rezultati_forme[$i][2]=='datum' &!eregi("^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$", $rezultati_forme[$i][1]))
{$rezultati_forme[$i][1]=NULL;};
//-----------------------------------
//samo cifre i slova bez blank------
if( $rezultati_forme[$i][2]=='user_pass' & !eregi("^[0-9,a-z]{1,26}$", $rezultati_forme[$i][1]))
{$rezultati_forme[$i][1]=NULL;};
//----------------------------------
// mail format----------------------
if( $rezultati_forme[$i][2]=='mail' & !eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,3}$", $rezultati_forme[$i][1]))
{ if($rezultati_forme[$i][1]!=NULL & $rezultati_forme[$i][3]==0) {$rezultati_forme[$i][4]=1;}; $rezultati_forme[$i][1]=NULL;};
//----------------------------------
// telefon format-------------------
if( $rezultati_forme[$i][2]=='telefon' & eregi("[a-z,A-Z,!\"#$;<>{}[%&'*,ŠÐÈÆŽžðæèš@^|]",$rezultati_forme[$i][1]))
{ if($rezultati_forme[$i][1]!=NULL & $rezultati_forme[$i][3]==0) {$rezultati_forme[$i][4]=1;};$rezultati_forme[$i][1]=NULL;};
//----------------------------------
};
$this->rezultati_forme=$rezultati_forme;
}
//-----------------------------------------------
function proveri_greske()
{
$rezultati_forme=$this->rezultati_forme;
$napomena=$this->napomena;
$broj_gresaka=0;
for ($i=0; $i<=count($rezultati_forme)-1; $i++)
{
if ($rezultati_forme[$i][4]==1) {$broj_gresaka++;};
};
if($broj_gresaka >0) { $napomena.=' Pogrešno popunjenih polja:'.$broj_gresaka; } else { $napomena=NULL;};
$this->napomena=$napomena;
}
//------------------------------------------
};
[code]