1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
|
<?php
class Check{
var $error;
function NoData($name,$val){
if(empty($val)) $this->error = '<p>Le champs <b>'.$name.'</b> ne doit pas êre vide.</p>';
echo $this->error;
$this->error =''; #Vide la variable, dans le cas ou la fonction suivante, est appelé sans que des valeurs sont entrées. Dans ce cas la valeur cette variable sera réaffichée lorque la func suivante sera appelé..
}
# Check that the field contain texactely the amount of caracter
function Nb($name,$val,$nb){
$val = strlen($val);
if($val != $nb) $result = 1;
else $result = 0;
if ($result) $this->error = '<p>Le champs <b>'.$name.'</b> doit contenir exactement '.$nb.' caractères.</p>';
echo $this->error;
$this->error ='';
}
#Must have at least $nb caracter
function Nb_min($name,$val,$nb){
$val = strlen($val);
if($val < $nb) $result = 1;
else $result = 0;
if ($result) $this->error = '<p>Le champs <b>'.$name.'</b> doit contenir au moins '.$nb.' caractères.</p>';
echo $this->error;
$this->error ='';
}
#Must not have more $nb than
function Nb_max($name,$val,$nb){
$val = strlen($val);
if($val > $nb) $result = 1;
else $result = 0;
if($result) $this->error = '<p>Le champs <b>'.$name.'</b> ne doit pas contenir plus de '.$nb.' caractères.</p>';
echo $this->error;
$this->error ='';
}
# Check if the field contains only number
function NumberNoSpace($name,$val){
if(!preg_match("/^[0-9][0-9]*$/",$val)) $this->error = '<p>Le champ <b>'.$name.'</b> doit contenir que des nombres</p>';
echo $this->error;
$this->error ='';
}
#E-mail format
function Email($name,$email){
##### Chack la validité du format de l'email
//(http://atranchant.developpez.com/code/validation/)
// Le code suivant est la version du 2 mai 2005 qui respecte les RFC 2822 et 1035
// http://www.faqs.org/rfcs/rfc2822.html
// http://www.faqs.org/rfcs/rfc1035.html
$atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // caractères autorisés avant l'arobase
$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine)
$regex = '/^' . $atom . '+' . // Une ou plusieurs fois les caractères autorisés avant l'arobase
'(\.' . $atom . '+)*' . // Suivis par zéro point ou plus
// séparés par des caractères autorisés avant l'arobase
'@' . // Suivis d'un arobase
'(' . $domain . '{1,63}\.)+' . // Suivis par 1 à 63 caractères autorisés pour le nom de domaine
// séparés par des points
$domain . '{2,63}$/i'; // Suivi de 2 à 63 caractères autorisés pour le nom de domaine
if (preg_match($regex, $email)) $email_format = 0;
else $email_format = 1;
if($email_format) $this->error = '<p>Le format de l\'e-mail "'.$email.'", rempli dans le champs <b>'.$name.'</b>, n\'est pas valide.</p>';
echo $this->error;
$this->error ='';
}
///CHECK DOMAIN
function Domain($name,$val){
if(ereg("@",$val)){
$ls_domaine = str_replace("@","",strstr($val,"@"));
}else{
$ls_domaine = str_replace("www.","",$val);
if(ereg("/",$ls_domaine)){
$nb_str = strpos($ls_domaine, "/");
$ls_domaine = substr($ls_domaine, 0, $nb_str);
}
}
//Inscrivez dans ce tableau les serveurs de noms de votre FAI.
$la_serveur_de_nom=array(
'ns10.domain.com',
'ns11.domain.com'
#'212.27.32.177' //Adresse IP du serveur de noms tertiaire de mon FAI (Free)
);
//Appel de la bibliothèque PEAR : Net DNS
require_once 'Net/DNS.php';
//Les fonctions ne peuvent pas s'appeler de façon statitique cette fois
//On crée donc une instance de classe Net_DNS_Resolver
$lo_resolver = new Net_DNS_Resolver();
//Décommentez cette ligne pour afficher le debuggage
//$lo_resolver->debug=1;
//On précise nos noms de serveurs
$lo_resolver->nameservers=$la_serveur_de_nom;
//On lance une requête, on précise MX pour identifier un éventuel serveur de mail
$lo_response = $lo_resolver->query($ls_domaine,'MX');
//on teste la réponse
if ($lo_response) {
foreach ($lo_response->answer as $lo_rr) {
//On affiche le résultat pour l'exemple, mais c'est inutile dans l'aboslu
$lo_rr->display();
#echo "Nom de serveur de mail $ls_domaine valide";
}
} else {
echo 'Le nom de domaine <b>'.$ls_domaine.'</b> que vous avez rempli dans le champs <b>'.$name.'</b>, est inconnu';
}
}
}
class Label{
function Label($title,$class){
echo '<label class="'.$class.'">'.$title.' :</label><br />';
}
}
class Field extends Check{
var $field;
var $att;
function Field($id,$name,$class,$value){
$this->field = '<input id="'.$id.'" name="'.$name.'" class="'.$class.'" value="'.$value.'" />';
}
function Add_attribut($att, $val){
$this->att = $att.'="'.$val.'"';
$this->field = str_replace('input', 'input '.$this->att,$this->field);
}
function Display(){
echo $this->field;
}
}
?> |
Partager