EcliptuX Posté 1 Juillet 2005 Posté 1 Juillet 2005 (modifié) Bonjour, J'ai un petit soucis dont je ne parviens pas à venir à bout. Dans un formulaire de recherche, je demande à l'utilisateur de taper un ou plusieurs mots clés, et facultativement, de sélectionner un département (le cas échéant, la recherche se fera dans tous les département). Voici le code PHP qui teste si le département a été renseigné, ou non : $departement = $_REQUEST["departement"];if ($departement == "Tous") { $req_departement = "";}else { $req_departement = "AND s.departement = $departement";} En fait, et c'est peut-être maladroit de ma part, je mets dans la variable $req_departement le bout de requête à ajouter à la requête globale que voici : $sql_sites = "SELECT s.* FROM annuaire_adresses AS s $req_departement AND s.activation = 1"; Si le département n'est pas renseigné, la requête globale ne filtre pas sur le département en ajoutant une chaîne vide. Si par contre le département est 75 par ex., la chaîne "AND s.departement = 75" est ajouté à la requête globale. Le problème, c'est que j'ai des erreurs pas forcément explicites et surtout, ça me met en vrac la fonction recherche... Je me doute bien que cette méthode n'est pas très élégante mais débutant en php/mysql, je n'ai pas été fichu de trouver mieux ! Merci pour vos bonnes idées Modifié 1 Juillet 2005 par EcliptuX
MS-DOS_1991 Posté 1 Juillet 2005 Posté 1 Juillet 2005 (modifié) Salut EcliptuX $departement = $_REQUEST["departement"];if ($departement == "Tous") { $req_departement = "";}else { $req_departement = "AND s.departement = $departement";} Tu devrais éviter d'utiliser $_REQUEST['...'] qui crée une faille dans ton script... Utilise plutôt $_GET['...'] si ton formulaire est en GET ou $_POST['...'] s'il est en POST et n'oublie pas: qu'est-ce qui empêche un utilisateur malveillant de taper <script>function code_malveillant() {......}</script> dans ton formulaire ?? Sans protection, ça devient une porte ouverte aux pirates Modifié 2 Juillet 2005 par MS-DOS_1991
EcliptuX Posté 1 Juillet 2005 Auteur Posté 1 Juillet 2005 Merci pour le conseil, je vais voir ce que je peux faire Sinon pas d'idée pour mon problème ?
WewEB Posté 1 Juillet 2005 Posté 1 Juillet 2005 (modifié) Essaye de remplacer $req_departement par ceci, je pense que cela devrait régler le problème: $req_departement = "AND `s.departement` = '{$departement}'"; (le probléme vient à mon avis du fait que tu n'as pas entouré la valeur $departement de ' et ') Et puis c'est aussi plus propre N'oublie pas de protéger un petit peu tes variables récupérées depuis un formulaire ! Modifié 1 Juillet 2005 par WewEB
EcliptuX Posté 1 Juillet 2005 Auteur Posté 1 Juillet 2005 Ca à l'air de marche Je dis que ça à l'air, car j'ai d'autres erreurs maintenant Merci en attendant pour votre aide
MS-DOS_1991 Posté 2 Juillet 2005 Posté 2 Juillet 2005 Je dis que ça à l'air, car j'ai d'autres erreurs maintenant met ton code ici si tu as besoin d'aide
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant