select insensible à la casse

select insensible à la casse - PHP - Programmation

Marsh Posté le 12-05-2011 à 17:21:56    

Bonjour à tous,
 
Dans le cadre d'une vérification de login et de mot de passe j'effectue la requête suivante:
 

Code :
  1. $query = "SELECT * FROM user WHERE loginUser='".mysql_real_escape_string(htmlentities($_POST['login']))."' AND passwordUser='".salt(mysql_real_escape_string(htmlentities($_POST['password'])))."' ;";


 
Le problème c'est que mon SELECT ne tient pas compte de la casse, si en login je tape 'toto' ou 'ToTO' il me compte comme bon alors que dans ma base de données c'est bien noté sous la forme 'Toto'. (par cela le fait que pour le login et pas pour le mot de passe heureusement)
 
Comment remédier à ce problème?
 
Merci
 

Reply

Marsh Posté le 12-05-2011 à 17:21:56   

Reply

Marsh Posté le 12-05-2011 à 17:27:28    

déclarer ton champ loginUser comme étant case sensitive dans mysql


---------------

Reply

Marsh Posté le 12-05-2011 à 17:42:24    

Ok... heu comment je fais ça exactement? J'ai regardé dans les options de mon champ, je n'ai pas trouvé de 'sensitive case'.
 
-EDIT-
 
J'ai trouvé une solution toute bête :  
 

Code :
  1. $query = "SELECT * FROM user WHERE BINARY loginUser='".mysql_real_escape_string(htmlentities($_POST['login']))."' AND passwordUser='".salt(mysql_real_escape_string(htmlentities($_POST['password'])))."' ;";


 
C'est le BINARY qui change tout.
 
Mais je veux bien connaitre ta technique aussi ^^


Message édité par SV_LVH le 12-05-2011 à 17:49:25

---------------
Quand vous demandez sur un forum comment changer un pneu de voiture peu de gens vous répondent. Et ceux qui le font vous expliquent généralement comment rouler sur 3 roues.
Reply

Marsh Posté le 12-05-2011 à 21:00:14    

http://dev.mysql.com/doc/refman/5. [...] ivity.html
 

If you want a column always to be treated in case-sensitive fashion, declare it with a case sensitive or binary collation. See Section 12.1.10, “CREATE TABLE Syntax”.


---------------

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed