IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Information non disponible


Sujet :

Langage SQL

  1. #1
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut Information non disponible
    Bonjour,

    J'ai une table member où est stocké l'id, le nom, le mot de passe, et le grade du membre, respectivement sur me_id, me_name,me_pass et me_whois.
    J'essaie désespérement de reprendre l'utilisateur ayant comme mot de passe 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 et pour nom test.
    Je fais donc une requete SQL select * from member where me_name='test' and me_pass='9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'
    Je lance ma requête : résultat regarder pourtant je fais le nécessaire
    la première requete histoire de vérifier qu'est ce qui est présent dans ma base

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql> select * from member;
    et le résultat qui me parait assez logique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    +-------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+
    | me_id | me_name | me_pass                                                                                                                                                                                                  | me_code |
    +-------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+
    |     1 | test    | 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08                                                                                                                                         |       3 | 
    +-------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+
    1 row in set (0.00 sec)
    la seconde, histoire de réduire le champ de visibilité
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql> select * from member where me_name='test';
    et le résultat est le même (je n'en attendais pas moins)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    +-------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+
    | me_id | me_name | me_pass                                                                                                                                                                                                  | me_code |
    +-------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+
    |     1 | test    | 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08                                                                                                                                         |       3 | 
    +-------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+
    1 row in set (0.00 sec)
    enfin, la dernière. celle que je veux vraiemenet affiché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql> select * from member where me_name='test' and me_pass='9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08';
    mais le résultat est quelques peut différents
    PS : La requete est générée par PHP

  2. #2
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 576
    Points
    576
    Par défaut
    Quel est le type de la colonne "me_pass" ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    c'est une colonne avec un champs de type binairies
    et j'ai essayé de les caster (fonction CAST (... AS BINARY)) mais cela ne fonctionne pas

  4. #4
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 576
    Points
    576
    Par défaut
    Citation Envoyé par sliderman Voir le message
    c'est une colonne avec un champs de type binairies
    Je m'en doutais un peu, comme une colonne BLOB (binaire) peut contenir des choux et des carottes, ça serait bien difficile pour MySQL de faire le tri dedans; Tu devrais la convertir en un type "caractère", c'est plus pratique.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 904
    Points : 51 649
    Points
    51 649
    Billets dans le blog
    6
    Par défaut
    La norme SQL impose le préfixe B pour des données binaires (suite de zero et un) et X pour des données exadécimales. Cela se trouve dans mon livre sur SQL à la page : 36

    Extrait "SQL", collection Synthex, Pearson education :

    2.3.4 Expression des chaînes binaires

    Les chaînes binaires sont délimitées par des apostrophes et se composent soit d'une suite de zéro préfixée B, soit d'une suite de symboles hexadécimaux préfixée X. Toute chaîne binaire est implicitement typée sous forme de VARBINARY.

    Exemples :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    X'FF3A00'	valeur hexadécimale du binaire du chiffre décimal16726528
    B'111111110011101000000000'	valeur binaire du chiffre décimal16726528
    A +

  6. #6
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    La norme SQL impose le préfixe B pour des données binaires (suite de zero et un) et X pour des données exadécimales. Cela se trouve dans mon livre sur SQL à la page : 36

    Extrait "SQL", collection Synthex, Pearson education :

    2.3.4 Expression des chaînes binaires

    Les chaînes binaires sont délimitées par des apostrophes et se composent soit d'une suite de zéro préfixée B, soit d'une suite de symboles hexadécimaux préfixée X. Toute chaîne binaire est implicitement typée sous forme de VARBINARY.

    Exemples :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    X'FF3A00'	valeur hexadécimale du binaire du chiffre décimal16726528
    B'111111110011101000000000'	valeur binaire du chiffre décimal16726528
    A +
    oki si j'ai bien compri je doit mettre X devant les héxadécimaux et B devant les binaires (varbinbary et binary). mais que sont précisement les hexadécimaux ? en toiut cas par les char et varchar, parce que pas besoin de X.

  7. #7
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    Citation Envoyé par sliderman Voir le message
    oki si j'ai bien compri je doit mettre X devant les héxadécimaux et B devant les binaires (varbinbary et binary). mais que sont précisement les hexadécimaux ? en toiut cas par les char et varchar, parce que pas besoin de X.
    quand tu comptes, tu es le plus souvent en base décimale (0,1,2,3,4,5,6,7,8,9)
    mais il existe d'autres systèmes comme le binaire (0,1) ou l'hexadecimal (0,1,2,3,4,5,6,7,8,9,AB,C,D,E,F)

    une petite recherche sur google pour plus de précisions

Discussions similaires

  1. [2005] Composants de Delphi 7 non disponibles dans 2005
    Par dacid dans le forum Bases de données
    Réponses: 5
    Dernier message: 04/08/2005, 17h18
  2. Projet/Options non disponible
    Par Duan dans le forum EDI
    Réponses: 2
    Dernier message: 31/05/2005, 21h32
  3. Imprimante non disponible dans QuickReport 3.0
    Par Writer dans le forum EDI
    Réponses: 1
    Dernier message: 23/05/2005, 10h30
  4. [TOMCAT] ressource non disponible
    Par mousstik dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 12/10/2004, 12h45
  5. [D8] Application serveur non disponible
    Par Keke des Iles dans le forum EDI
    Réponses: 4
    Dernier message: 27/09/2004, 12h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo