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

PHP & Base de données Discussion :

[SQL] Problème de majuscule dans ma requête SQL


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut [SQL] Problème de majuscule dans ma requête SQL
    Bonjour, mon pbme est le suivant. J'ai une page "login" qui permet de se connecter à une session personnalisée avec un identifiant. Il fait appel à la base de donnée phpMyAdmin sur OVH, où j'ai crée un champ "nom" avec l'attribut "text". Normalement cet attribut est sensé ignorer la casse saisie, mais chez moi si je mets majuscule au lieu de minuscule (et inversement) ça ne fonctionne plus. Vu que je débute, je pense que dans mon code "login" il y a un truc qui ne va pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
     
    $db = mysql_connect('****', '****', '****');  // on se connecte à MySQL
    mysql_select_db('****',$db); // on sélectionne la base
     
    if(isset($_POST) && !empty($_POST['identifiant'])) {
      extract($_POST);
      // on recupère le password de la table qui correspond au login du visiteur
      $sql = "select nom, lien, passe from ReT where nom='".$identifiant."'";
      $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
      $data = mysql_fetch_assoc($req);
     
      if($data['nom'] != $identifiant) {
      	$url_erreur="../index.php?page=erreur";
       	header("Location:$url_erreur");
    	exit;
    	}
     
      else {
        session_start();
        $_SESSION['nom'] = $identifiant; // si l'invité est bien logué
     
    	$destination=mysql_result($req,$i,"lien");
    	{
    	header("Location:$destination"); // on le redirige vers la page correspondant à son identifiant
    	}	
     
      }   
    }
    Si quelqu'un a une idée, merci d'avance.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    dans ta table tu peux définir un champ sensible à la casse...
    Si c'est le cas identifiant est différent de IDENTIFIANT.
    PhpMyadmin est une interface graphique ce n'est pas un type de Bdd.
    De mémoire (à vérifier ! les champs de type BLOB sont sensibles)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    oui mais apparemment dans ma table l'option pour prendre en compte la casse est de mettre "binary", ce qui n'est pas fait chez moi ! Donc vu que ça ne vient pas de la table, ça doit venir de mon code ...

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Salut.
    Je viens de relire ton code.
    En fait tu fais le test en PHP donc si l'identifiant posté n'est pas dans la même casse que l'identifiant de la base ca ne marchera pas.
    Tu peux faire afficher ton test pour débugger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo $data['nom']." != ".$identifiant;
    pour voir si les deux sont effectivement différents ou les mêmes mais avec une casse différente

Discussions similaires

  1. Problème de variable dans une requête SQL
    Par Namzicos dans le forum SQL
    Réponses: 2
    Dernier message: 27/01/2010, 14h38
  2. Problème de variable dans une Requête SQl
    Par steph77 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 28/08/2009, 15h16
  3. Problème d'espaces dans une requête SQL
    Par Wonesek dans le forum SQL
    Réponses: 9
    Dernier message: 22/04/2008, 16h46
  4. Problème de cumul dans une requête SQL
    Par soso78 dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 13/09/2007, 05h56
  5. Problème avec like dans une requête SQL
    Par Boublou dans le forum SQL
    Réponses: 2
    Dernier message: 16/08/2007, 15h46

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