Erreur sur Filtre PHP (filter_input_array())
Posté : 24 mai 2011, 14:27
Bien le bonjour,
Je fais des testes sur un formulaire basique. Mon objectif est vérifier les données saisies par un utilisateur dans un formulaire, par le biais de filtre PHP
J'utilise notamment la fonction "Filter_input_array()" qui grâce à un tableau établit la correspondance entre le nom des champs et leurs options. Malgré mes recherches, je n'arrive pas à saisir pour quelles raisons précises, j'ai cette erreur.
Voici l'erreur affiché sur ma page PHP :
Warning: filter_input_array() [function.filter-input-array]: First argument is expected to be a valid callback in C:\xampp\htdocs\test_portail\Projet\bibfonct.php on line 51
Voici mon codage :
Je fais des testes sur un formulaire basique. Mon objectif est vérifier les données saisies par un utilisateur dans un formulaire, par le biais de filtre PHP
J'utilise notamment la fonction "Filter_input_array()" qui grâce à un tableau établit la correspondance entre le nom des champs et leurs options. Malgré mes recherches, je n'arrive pas à saisir pour quelles raisons précises, j'ai cette erreur.
Voici l'erreur affiché sur ma page PHP :
Warning: filter_input_array() [function.filter-input-array]: First argument is expected to be a valid callback in C:\xampp\htdocs\test_portail\Projet\bibfonct.php on line 51
Voici mon codage :
class controle{
function _syntaxe($messageErreur, $options){
$resultat = filter_input_array(INPUT_POST, $options);
if($resultat != null) { //Si le formulaire a bien été posté.
foreach($options as $cle => $valeur) { //Parcourir tous les champs voulus.
if(empty($_POST[$cle])) { //Si le champ est vide.
$messageErreur[$cle]= "WAR";
}
elseif($resultat[$cle] === false) { //S'il n'est pas valide.
$messageErreur[$cle]= "ERR";
}
else{// S'il est valide
$messageErreur[$cle]= "OK";
}
echo $messageErreur[$cle];
}
return $messageErreur;
}
else {
return "ERR";
}
}
}
class filtre{
/** fonction de validation d'un numéro **/
function _validerNumero($telATester) {
//Retourne le numéro s'il est valide, sinon false.
return preg_match('`^0[1-9]([-. ]?[0-9]{2}){4}$`', $telATester) ? $telATester : false;
}
/** Fonction pour nettoyer un numero **/
function _nettoyerNumero($telANettoyer) {
//Enlever tous les caractères non numériques.
$telANettoyer = preg_replace('`[^0-9]`', '', $telANettoyer);
//Ajout de zéros si besoin.
$telANettoyer = str_pad($telANettoyer, 10, '0', STR_PAD_LEFT);
return $telANettoyer;
}
function client(){
$options = array(
'prenom' => FILTER_SANITIZE_STRING, //Enlever les balises.
'nom' => FILTER_SANITIZE_STRING, //Enlever les balises.
'email' => FILTER_VALIDATE_EMAIL, //Valider l'adresse de messagerie.
'age' => array(
'filter' => FILTER_VALIDATE_INT, //Valider l'entier.
'options' => array(
'min_range' => 0 //Minimum 0.
)
),
'numero' => array( // Valider un numéro de téléphone
'filter' => FILTER_CALLBACK,
'options' => 'validerNumero'
)
);
return $options;
}
}
?>
<form action="bibfonct.php" method="post">
Prénom : <input type="text" name="prenom"/><br/>
nom : <input type="text" name="nom"/><br/>
Adresse de messagerie : <input type="text" name="email"/><br/>
Âge : <input type="text" name="age"/><br/>
Téléphone : <input type="text" name="numero"/><br/>
<input type="submit" value="Envoyer"/>
</form>
<?php
$messageErreur = array();
$filtre = new filtre;
$options = $filtre-> client();
$controle = new controle;
$controle -> _syntaxe($messageErreur, $options);
?>