8791 sujets

Développement web côté serveur, CMS

Bonjour,

Je réalise actuellement un moteur de recherche dans ma base de données, et j'aimerais éviter que les gens ne tapent qu'un caractère.

en fait j'ai donc au début de ma page : $search = $_GET['q'];

et j'aimerais que le &search fasse au moins 2 caractères, donc mettre :

if &search >= 2 caractères echo '';

Merci beaucoup pour votre aide

++
Salut,

il y a 2 facons de le faire, soit en php soit en javascript.

En javascript :


function verifChamp(){
	if (document.nom_du_formulaire.nom_du_input.value.length > 0 && document.nom_du_formulaire.nom_du_input.value.length < 3){
		alert("Veuillez saisir 2 caractères au minimum pour le champ Nom");
		return false;
	}else{
		return true;
	}
}


ou en php :



if(strlen($_POST["search"]) >= 2){
	echo "Veuillez saisir 2 caractères au minimum pour le champ Nom";
}



La fonction strlen compte le nombre de caractère en php.

Voila
Hello crashb et bienvenue Smiley cligne ,

polak25 a écrit :
il y a 2 facons de le faire, soit en php soit en javascript.
A noter que le Javascript pouvant être désactivé la vérification en PHP est obligatoire. Celle en Javascript peut être également effectuée (en plus) pour éviter une requête au serveur inutile.

D'autre part, strlen ne fonctionnera pas pour une chaîne de caractères multi-octets (typiquement : si la page est encodée en utf-8). Dans ce cas il faudra utiliser mb_strlen.

Ce petit exemple effectué dans une page en utf-8 :
<?php
$str = "åèö";
echo $str."<br />";
echo strlen($str)."<br />";
echo mb_strlen($str, 'UTF-8');
?>
va retourner
a écrit :
åèö
6
3

Pour finir, une petite erreur s'est glissée dans le code proposé Smiley langue :
if(strlen(trim($_POST["search"])) [#blue][b]<[/b][/#] 2) {
	echo "Veuillez saisir 2 caractères au minimum";
}

A+
Heyoan a écrit :
D'autre part, strlen ne fonctionnera pas pour une chaîne de caractères multi-octets (typiquement : si la page est encodée en utf-8). Dans ce cas il faudra utiliser mb_strlen.


strlen peut très bien fonctionner en utf-8, à condition de bien indiquer à PHP comment se comporter.
setlocale(LC_CTYPE, 'C');


Pour en revenir au sujet, la vérification coté PHP est indispensable, le coté javascript n'est qu'un petit plus.
Merci pour l'info Smiley cligne !

Même si ça ne fonctionne pas pour l'instant ni en local ni sur serveur... je ferai d'autres tests...

Edit: d'ailleurs après moult tests ça ne fonctionne toujours pas... tu aurais un lien intéressant à ce sujet ?
Modifié par Heyoan (05 Aug 2008 - 16:42)