[php] Contrôle majuscules/minuscules
Résolu
chedev
Messages postés
50
Statut
Membre
-
chedev Messages postés 50 Statut Membre -
chedev Messages postés 50 Statut Membre -
Bonjour à tous
Je fais saisir un pseudo dans un formulaire avec le code PHP suivant:
Dans le fichier connexion_ok.php appelé par "form", j'ai:
Je constate que mon contrôle de pseudo ne tient pas compte du fait que l'on saisisse des majuscules ou des minuscules:
Si la base "membres" contient un enregistrement où membre_pseudo vaut "Toto", ce contrôle laisse passer "toto", "Toto", "TOTO", ...
Merci à qui peut me dire pourquoi, et surtout comment je dois procéder pour n'accepter que la saisie conforme aux majuscules/minuscules figurant dans la base.
Je fais saisir un pseudo dans un formulaire avec le code PHP suivant:
<form method="post" action="connexion_ok.php">
<label for="pseudo"> Pseudo</label><br />
<input name="pseudo" type="text"
onFocus="javascript:this.value=''"
value= <?php echo $pseudoF;?> size=16 maxlength=15 />
<br />
<label for="mdp">Mot de Passe </label><br />
<input name="mdp" type = password id="mdp" onFocus="javascript:this.value=''"
value= <?php echo 'xxxxx';?> size=16 maxlength=15 />
<br />
<br />
<input type="submit" value="Ok" />
</form>
Dans le fichier connexion_ok.php appelé par "form", j'ai:
if (empty($_POST['pseudo']) || empty($_POST['mdp']) ) {//Oubli d'un champ
$message = $Non_Connex . $champs_vide . $retour;
} else {
include("../Admin/acces_xxx.php");
//On enlève les balises html éventuelles
$pseudo = htmlspecialchars($_POST['pseudo'], ENT_QUOTES);
$mdp = htmlspecialchars($_POST['mdp'], ENT_QUOTES);
//Vérification du pseudo
$nombrepseudo = mysql_result(mysql_query("SELECT COUNT(*) FROM membres WHERE membre_pseudo = '".$pseudo."'"), 0);
if($nombrepseudo == 0) {
Je constate que mon contrôle de pseudo ne tient pas compte du fait que l'on saisisse des majuscules ou des minuscules:
Si la base "membres" contient un enregistrement où membre_pseudo vaut "Toto", ce contrôle laisse passer "toto", "Toto", "TOTO", ...
Merci à qui peut me dire pourquoi, et surtout comment je dois procéder pour n'accepter que la saisie conforme aux majuscules/minuscules figurant dans la base.
Configuration: Windows 2000 Firefox 2.0.0.6
1 réponse
-
Un petit up pour signaler à ceux qui pourraient avoir le même problème à résoudre.
J'ai trouvé la solution ici http://dev.mysql.com/doc/refman/5.0/fr/char.html
En résumé:
L'attribut BINARY signifie que les valeurs sont classées et triées en tenant compte de la casse, suivant l'ordre des caractères ASCII de la machine ou est installé le serveur MySQL.