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
| <?php
class FilterTest
{
public static function _call($a,$b)
{
switch ($b)
{
case "STRING_IDENT":
$string = self::check_space($a);
$string = preg_match('#^[a-z0-9àáâãäçèéêëìíîïñðòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝ ._\'-]{3,20}$#i', $string) ? $string : false;
if($string == false){
$error='Cet identifiant est déjà utilisé ou ne correspond pas aux exigences de l\'administrateur.';
}
else if(strlen($string)<3 ){
$string = false;
$erreur = 'Votre identifiant doit contenir plus de 3 caractères';
}
else if(strlen($string)>20 ){
$string = false;
$erreur = 'Votre identifiant doit contenir moins de 20 caractères';
}
break;
case "STRING_PASSWORD":
$string = $a;
if(strlen($string)<3 ){
$string = false;
$erreur = 'Votre mot de passe doit contenir plus 3 caractères';
}
else{
$string= sha1('Gr@1n2s3l1' . md5($string) . 'gRaIn2$eL2');
}
break;
}
return array('value'=>$string,'erreur'=>$erreur);
}
public static function check_space($string){
$temp=trim($string);
$string="";
for ( $i = 1 ; $i < strlen($temp) +1 ; $i ++ ){
if ( $temp[$i-1]==" " && $temp[$i]==" "){
}
else{
$string.= $temp[$i-1] ;
}
}
return $string;
}
}
$options = array(
'Identifiant' => array(
'filter' => FILTER_CALLBACK,//on crée un filtre.
'options' =>create_function('$a','return FilterTest::_call($a,"STRING_IDENT");')
),
'Password' => array (
'filter' => FILTER_CALLBACK, //on crée un filtre.
'options' => create_function('$a','return FilterTest::_call($a,"STRING_PASSWORD");')
),
'Email' => FILTER_VALIDATE_EMAIL //Valider l'adresse e-mail.
);
$resultat = filter_input_array(INPUT_POST, $options);
if($resultat != null)//Si le formulaire a bien été posté.
{ //Enregistrer des messages d'erreur perso.
$messageErreur = array(
'Identifiant' => $resultat['Identifiant']['erreur'] ,
'Email' => 'Vous avez inséré une adresse email non valide.',
'Password' => 'Le mot de passe n\'est pas valide, il doit comporter au minimum 3 caractères.'
);
$nbrErreurs = 0;
?>
<p>Les erreurs suivantes se sont produites pendant votre inscription :</p>
<ul>
<?php
foreach($options as $cle => $valeur) //Parcourir tous les champs voulus.
{
if(empty($_POST[$cle])) //Si le champ est vide.
{
echo '<li> Veuillez compléter le champ requis « ' . $cle . ' ».</li><br/>';
$nbrErreurs++;
}
elseif($resultat[$cle] == false) //S'il n'est pas valide.
{
echo '<li>' .$messageErreur[$cle] . '</li><br/>';
$nbrErreurs++;
}
}
?> </ul>
<?php if($nbrErreurs == 0)
{
echo 'Bonjour ' . $resultat['Identifiant']['value'] . ' !<br/> ';
echo 'Ton adresse de messagerie est bien ' . $resultat['Email'] . '.<br/>';
echo 'Ton mot de passe est ' . $resultat['Identifiant']['value'] . '.<br/>';
}
}
else
{
echo 'Vous n\'avez rien posté.';
}
?> |
Partager