Pour effectuer une bonne recherche

Eléphanteau du PHP | 35 Messages

05 avr. 2007, 23:24

Bonsoir les gens,

Voilà lorsque j'effectue une recherche vias mon formulaire j'aimerai que lorsque je rentre &é"(-è_çà ou autre au moment de la vérification il m'envoye une erreur.

Merci d'avance de votre aide
Déborah

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

05 avr. 2007, 23:27

Algo à suivre :

Code : Tout sélectionner

Si chaine contient tel caractère Alors Erreur Sinon Recherche FinSi
Pour tester la présence de certains caractères dans une chaîne, regarde les fonctions de manipulation de chaînes de caractères : http://fr.php.net/manual/fr/ref.strings.php

Ou celles pour les expressions régulières : http://www.phpfrance.com/tutoriaux/inde ... regulieres
Modifié en dernier par ouckileou le 05 avr. 2007, 23:30, modifié 1 fois.

Eléphanteau du PHP | 35 Messages

05 avr. 2007, 23:28

tu ne pourrais pas plus m'aiguiller stp
car j'avais commencer à faire

Code : Tout sélectionner

$carac_interdits = array( '@' , '\'' , '/' , '"' , '#' , '{' , '}' , '[' , ']' , '|' , '`' , '^' , '¤' , ':' , '!' ); for($i=0,$nbc=count($carac_interdits);$i<$nbc;$i++) { if(caracteres_interdits($search)) echo 'Il y a un caractère interdit dans le texte'; else echo 'Le texte est ok';
mais je ne comprends pa ce qui ne marche pas
Merci
:oops: :priere: :priere: [/code]

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

05 avr. 2007, 23:43

Ben déjà dans ton code, elle sort d'où la fonction $caracteres_interdits() ?

À ta place, je parcourrais mon tableau de caractère grâce à foreach() (ton for() marche bien aussi, sauf que tu ferais mieux de n'utiliser count() qu'une fois et de stocker le résultat dans le variable, plutôt que de rappeller cette fonction à chaque tour) et j'utiliserais une fonction de recherche de position, comme strpos().
$carac_interdits = 
array( '@' , '\'' , '/' , '"' , '#' , '{' , '}' , '[' , ']' , '|' , '`' , '^' , '¤' , ':' , '!' );

$isTexteOk=true;

foreach($carac_interdits as $caractere) {
	if (strpos($recherche,$caractere)) {
		$isTexteOk=false;
	}
}
Une fois que tu auras fais marcher ta propre méthode, renseigne toi survl'utilisation des expressions régulières (sur ce forum par exemple) qui font ça très bien, et permettent des vérifications encore plus puissantes.