PB d'espace blanc dans un sélect

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PB d'espace blanc dans un sélect

Re: PB d'espace blanc dans un sélect

par niuxe » 08 oct. 2013, 17:22

Salut,

As tu essayé de taper la requête dans un terminal ? Est ce que tu obtiens la même chose ?

perso, j'aurai tendance à écrire comme ceci :
$sql = "SELECT * FROM routage WHERE routage.nature ='$letri'"; //guillemets simples

Re: PB d'espace blanc dans un sélect

par moogli » 08 oct. 2013, 17:21

salut,

1/ en SQL le délimiteur de chaine de caractères est le ' est pas le " ;)
2/ à priori $letri n'existe pas a moins que tu n'ai du code qui traite la valeur du formulaire.
3/ ton code semble sensible à l'injection SQL.

je te conseil de mettre la requete sql dans une variable et de l'afficher pour la tester avec un client SQL voir ce que cela donne.

parce que la, sauf si la donnée n'est pas dans la colonne nature il n'y as pas de raison qu'un simple sélect ne retourne pas d'info si elle existe dans la base.


@+

PB d'espace blanc dans un sélect

par Invité » 08 oct. 2013, 16:53

Bonjour,
Désolé, mais le titre n'est pas très explicite.
J'essaie de construire une interface qui me donne accès à différents éléments d'une base de données. Tout va bien sauf quand je mets en place des filtres par menu déroulant.
Les filtres fonctionnent sauf quand il y a un espace dans l'intitulé du filtre.

Pour exemple voici mon code :

Code : Tout sélectionner

echo "<select name=\"letri\" id=\"letri\">"; while ($donroutage = $verif_routage->fetch()){ echo "<option value=\"".$donroutage['routage_element']."\">".$donroutage['routage_element']."</option>"; } echo "</select>";
Quand la variable $donroutage['routage_element'] correspond à un intitulé comportant un espace blanc (par exemple "IP fixe") et que je m'en sers pour afficher mes éléments :

Code : Tout sélectionner

$verification = $bdd->query("SELECT * FROM routage WHERE routage.nature =\"$letri\"");
Je ne ressors aucun résultat alors qu'avec le même code et un élément qui ne porte pas d'espace blanc (par exemple "VPN") les résultats sortent bien.

Ce n'est donc pas mon script qui ne fonctionne pas mais quelque chose qui bloque quand il y a un espace blanc.

J'ai regardé dans le code html résultant en affichant ma variable $letri (correspondant au sélect) et il n'y a pas de %20 comme parfois en html. Et comme je n'arrive pas bien à exprimer le problème, Google ne m'a été d'aucune aide.

Si quelqu'un a une idée, je suis preneur.
Merci d'avance.
D.