Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/04/2007, 16h46   #1
Membre régulier
 
Inscription : décembre 2006
Messages : 493
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 493
Points : 90
Points : 90
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 :
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.
nicolas2603 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 20h14   #2
Invité régulier
 
Inscription : mai 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 9
Points : 6
Points : 6
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)
poulping est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 09h43   #3
Membre régulier
 
Inscription : décembre 2006
Messages : 493
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 493
Points : 90
Points : 90
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 ...
nicolas2603 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 14h25   #4
Invité régulier
 
Inscription : mai 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 9
Points : 6
Points : 6
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 :
 echo $data['nom']." != ".$identifiant;
pour voir si les deux sont effectivement différents ou les mêmes mais avec une casse différente
poulping est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h02.


 
 
 
 
Partenaires

Hébergement Web