Bonsoir!
J'ai un problème dans mon formulaire avec la fonction trim(), j'aimerais que les espaces rentré par l'utilisateur dans les textes de saisies soit supprimés avant que j'effectue les tests mais sans résultat..
Quand je rentre par exemple comme identifiant " R" sachant que l'identifiant doit comporter 3 caractères au minimum, grâce à la fonction trim() ce dernier ne devrait pas être valide et pourtant si..

Voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?php
function validerPassword($PasswordATester)
{
	return (strlen($PasswordATester) >= 3) ? sha1('Gr@1n2s3l1' . md5($PasswordATester) . 'gRaIn2$eL2') : false;
 
}
function fonctionErrorIdentifiant($identifiantATester)
{
	if(strlen($identifiantATester) < 3)
	{
		$error='Votre identifiant doit être égale ou plus grand que 3 caractères';
	}
	elseif(strlen($identifiantATester) > 20)
	{
		$error='Votre identifiant ne doit pas excédé plus de  20 caractères';
	}
	else
	{
		$error='Cet identifiant comporte des caractères non autorisés.';
	}
	return $error;
}
function trim_value($value) 
{ 
    $value = trim($value); 
}
 
$options = array(
			'Identifiant' => array(
							  'filter' => FILTER_VALIDATE_REGEXP, //fait un preg_match() en arrière plan.
							  'options' =>array(
										   'regexp' => ('#^[a-z0-9àáâãäçèéêëìíîïñðòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜŽÝ._ \'-]{3,20}$#i')
											   )
								  ),
			'Password' => array (
						   'filter' => FILTER_CALLBACK, //on crée un filtre. 
						   'options' => 'validerPassword'//On appelle la fonction "validerPassword" pour tester si le mot de passe à le bon format.
						        ),
			'Email' => FILTER_VALIDATE_EMAIL //Valider l'adresse e-mail.
);
 
array_walk($_POST, 'trim_value');
 
$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' => fonctionErrorIdentifiant($_POST['Identifiant']),
						  '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; 
?>		
 
	<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'] . ' !<br/> ';
			echo 'Ton adresse de messagerie est bien ' . $resultat['Email'] . '.<br/>';
			echo 'Ton mot de passe est ' . $resultat['Password'] . '.<br/>';
		}
}	
else
{
	echo 'Vous n\'avez rien posté.';
}
?>
Si vous avez une idée je suis preneur

Merci d'avance pour votre aide