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
| function verifFieldsLenght($p)
{
$error_lenght_field_message = "";
$lenght_error = false; //Variable indiquant si une ou plusieurs erreur ont eut lieu et si donc un ou plusieurs champs sont trop long.
switch($p)//En fonction de la page et donc l'objet en cours d'ajout, les champs a vérifier sont différent et leur taille maximum aussi, on crée donc un tableau associatif associant nom du champ a sa longueur maxi.
{
case "l" : $fieldsLenght = array("titre" => "50", "application"=>"50", "version"=>"15", "societe"=>"75","url"=>"200","numero"=>"100","clef"=>"100","date"=>"10", "nom"=>"100", "mail"=>"150");
break;
case "s" : $fieldsLenght = array("titre" => "50", "utilisateur"=>"35", "password"=>"50", "url"=>"200");
break;
case "cb" : $fieldsLenght = array("titre" => "50", "titulaire"=>"75", "numero"=>"50", "date_expiration"=>"10", "type_cb"=>"25");
break;
case "cp" : $fieldsLenght = array("titre" => "50", "banque_name"=>"50", "numero"=>"50", "type_compte"=>"50");
break;
}
//Création d'un tableau pour donner la "traduction" des champs n'ayant pas le meme nom ds la base et ds les formulaires d'ajout/d'affichage
$fieldsLocalized = array("url"=>"site web","numero"=>"numéro", "password"=>"mot de passe", "date_expiration"=>"date d'expiration", "type_cb"=>"type", "banque_name"=>"Banque", "type_compte"=>"type");
foreach($_POST as $key=>$var) //Parcours du tableau $_POST contenant les champs remplis
{
if(in_array($key, $fieldsLenght)) //Si le champs testé se trouve dans le tableau contenant tout les champs et leur taille repsective alors on test (les champs description et notes sont illimités et ne sont donc pas testés)
{
echo $key;
if(strlen($var) > $fieldLenght[''.$key.'']) //Si la longueur de la valeur du champ est plus longue que la longueur maxi indiquée ds le tableau on passe la variabl d'erreur a vrai et on stocke le nom du champ trop long
{
$lenght_error = true;
$name_wrong_field[] = $key;
}
}
else
{echo "nop";}
}
if($lenght_error) //S'il y a eut une erreur
{
echo "ERREUR";
$nb_wrong_field = sizeof($name_wrong_field); //On récupère le nombre d'élément ds le tableau pour savoir combien de champ sont trop long et adapter le emssage d'erreur en fonction de ca.
if($nb_wrong_field == 1)//Cas où seul 1 champ est trop long
{
if(in_array($name_wrong_field[0], $fieldsLocalized)) //Si le champ trop long se trouvent aussi ds le tableau des champs "traduit" on récupère sa "traduction"
{
$name_field = $fieldsLocalized["".$name_wrong_field[0].""];
}
else
{
$name_field = $name_wrong_field[0];
}
$error_lenght_field_message = "<span class='error'>Le champ <span onClick=\"setFocus('".$name_wrong_field[0]."')\">".$name_field."</span> est trop long, il doit faire ".$fieldsLengt[$name_wrong_field[0]]." caractères maximum.";
}
elseif($length_tab > 1)
{
$error_lenght_field_message = "Les champs ";
for($i = 0; $i <= $length_tab; $i++)
{
//TRAITEMENT A VENIR
}
}
}
unset($fieldsLengt);
unset($name_too_long_field);
return($error_lenght_field_message);
} |
Partager