Tutoriel PHP [Site de A à Z ] Bug validates

Par Bahamut45, il y a 13 ans


Bonjour,

Je me retrouve confronté à un bug que je n'arrive pas à résoudre :

Quand je poste un formulaire par exemple une inscription mais que je ne mets aucune donnée dans les champs de ce dit formulaire, il ne me retourne pas l'erreur notEmpty :

[code]
var $register_validate = array(
'login' => array(
'rule' => 'notEmpty',
'message' => 'Vous devez préciser un identifiant',
'rule' => 'notFreeLogin',
'message' => 'Votre identifiant est déjà utilisé',
'rule' => 'notSpecial',
'message' => 'Votre identifiant ne peut pas contenir de caractères spéciaux'
),
'password' => array(
'rule' => 'notEmpty',
'message' => 'Vous devez préciser un mot de passe',
'rule' => 'notLenght',
'message' => 'Votre mot de passe est trop court'
),
'confirm' => array(
'rule' => 'notEmpty',
'message' => 'Vous devez confirmer votre mot de passe'
),
'mail' => array(
'rule' => 'notEmpty',
'message' => 'Vous devez préciser un email',
'rule' => 'notValid',
'message' => 'L\'adresse email n\'est pas valide',
'rule' => 'notFreeMail',
'message' => 'L\'adresse email est déjà utilisée'
),
);
[/code]

[code]
function register_validates(data){ $errors = array(); foreach (this->register_validate as k => $v) { if(!isset(data->k)){ $errors[k] = v['message']; }else{ if(v['rule'] == 'notEmpty'){
if(empty(data->k)){
errors[k] = v['message']; } }elseif(v['rule'] == 'notValid'){
if(!filter_var(data->k, FILTER_VALIDATE_EMAIL)){
errors[k] = v['message']; } }elseif(v['rule'] == 'notFreeLogin') {
user = $this->check_pseudo(data->k); if(!empty(user)){
errors[k] = v['message']; } }elseif(v['rule'] == 'notLenght') {
if(strlen(data->k) < 6){
errors[k] = v['message']; } }elseif (v['rule'] == 'notSpecial') {
if(preg_match('/[^a-z0-9]/i', data->k) !== 0){
errors[k] = v['message']; } }elseif(v['rule'] == 'notFreeMail') {
mail= $this->check_mail(data->k); if(!empty(mail)){
errors[k] = v['message']; } } } } $this->errors = $errors; if(isset(this->Form)){
this->Form->errors = $errors; } if(empty(errors)){
return true;
}
return false;
}
[/code]

Je pense que le problème vient du fait qu'il y est plusieurs rules pour un même champ mais je ne vois pas comment le corriger ?

Aucune réponse