Jeg har lavet denne klasse som jeg bruger til PHP5.
Håber du kan bruge den.
<?php
define('FV_TYPE_EMAIL', 1);
define('FV_TYPE_PASSWORD', 2);
define('FV_TYPE_PASSWORD_STRONG', 3);
define('FV_TYPE_PHONENUMBER', 4);
define('FV_TYPE_ZIPCODE', 5);
define('FV_TYPE_FIELD', 6);
define('FV_TYPE_USERNAME', 7);
class CFormValidator
{
function ValidateInput($sInput, $iType, $sDescription = '')
{
// Tjekker om parameter 2 er valid
if(!is_numeric($iType))
{
return 'Parameter skal være et tal';
}
switch($iType)
{
case FV_TYPE_EMAIL:
{
$this->ValidateEmail($sInput);
break;
}
case FV_TYPE_PASSWORD:
{
$this->ValidatePassword($sInput);
break;
}
case FV_TYPE_PASSWORD_STRONG:
{
$this->ValidateStrongPassword($sInput);
break;
}
case FV_TYPE_PHONENUMBER:
{
$this->ValidatePhoneNumber($sInput);
break;
}
case FV_TYPE_ZIPCODE:
{
$this->ValidateZipcode($sInput);
break;
}
case FV_TYPE_FIELD:
{
$this->ValidateField($sInput,$sDescription);
break;
}
case FV_TYPE_USERNAME:
{
$this->ValidateUsername($sInput);
break;
}
}
}
/*
Validerer en emailadresse baseret ud fra RFC 2822 (
http://www.ietf.org/rfc/rfc2822.txt)
*/
function ValidateEmail($sEmail)
{
// Validerer syntaxen på email adressen med et regulært udtryk
if(!eregi('^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$', $sEmail))
{
return 'Email ikke gyldig';
}
list($sUsername,$sDomainTLD) = split('@',$sEmail);
// Slår domainet op på DNS serveren
if(!getmxrr($sDomainTLD,$aMXRecords))
{
return 'Domainet findes ikke';
}
return TRUE;
}
/*
<functiondescription>
Validerer kodeordet, ser om det er 6 karakterer langt, eller længere
</functiondescription>
*/
function ValidatePassword($sPassword)
{
// Passwordet er for kort
if(strlen($sPassword) < 6)
{
return 'Kodeord er for kort. Det skal være mindst 6 karakter';
}
return TRUE;
}
/*
<functiondescription>
Validerer kodeordet, tjekker om det også indeholder numre
</functiondescription>
*/
function ValidateStrongPassword($sPassword)
{
$this->ValidatePassword($sPassword);
// Passwordet indeholder kune numre
if(is_numeric($sPassword))
{
return 'Kodeord kan ikke kun indeholde tal';
}
if(!eregi('^[a-z0-9]{6,}$', $sPassword))
{
return 'Kodeord skal indeholde både tal og bogstaver';
}
return TRUE;
}
/*
<functiondescription>
Validerer et telefonnummer
</functiondescription>
*/
function ValidatePhoneNumber($iPhone)
{
if(!is_numeric($iPhone))
{
return 'Telefon nr. skal være et tal';
}
return TRUE;
}
/*
<functiondescription>
Validerer om et post nr er et tal
</functiondescription>
*/
function ValidateZipcode($iZipCode)
{
if(!is_numeric($iZipCode))
{
return 'Post nr. skal være et tal';
}
return TRUE;
}
/*
<functiondescription>
Kontrollerer om et felt er tomt
</functiondescription>
*/
function ValidateField($sInput,$sDescription)
{
if(empty($sInput))
{
return 'Feltet "'.$sDescription.'" må ikke være tomt';
}
return TRUE;
}
function ValidateUsername($sInput)
{
if(empty($sInput))
{
return 'Brugernavnet skal udfyldes.';
}
if(strlen($sInput>=13))
{
return 'Brugernavnet må max være 12 karaktere lang.';
}
return TRUE;
}
}
?>