WampServer

Apache, PHP, MySQL on Windows 

 
  • Accueil forum
  • Retour à WampServer
  • presentation
  • Download
  • Addons
  • Formations
  • Alter Way

 
Voir le sujet: Précédent•Suivant
Aller à : Liste des Forums•Liste des messages•Nouvelle discussion•Recherche•Connexion•Imprimer la vue
Résolu - Problème de mot de passe case_sensitive
Envoyé par: Dopey (193.253.141.---)
Date: 16 October 2008 à 12:22

Bonjour,

j'ai créé une table simple pour controler l'accès des utilisateurs. La structure est la suivante :

--
-- Structure de la table `MyTable`
--

CREATE TABLE `MyTable` (
`id` int(10) unsigned NOT NULL auto_increment,
`nom` varchar(32) NOT NULL,
`prenom` varchar(32) NOT NULL,
`identifiant` varchar(32) NOT NULL,
`password` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Contenu de la table `MyTable`
--

INSERT INTO `MyTable` (`id`, 'nom', 'prenon', `identifiant`, `password') VALUES
(1, 'Smith', 'John', ''MyIdent', 'MyPassword-01'),

Je précise que l'interclassement des champs est défini à "latin1_swedish_ci"

Quelque soit la combinaison majuscule/minuscule utilisée pour le mot de passe, l'accès fonctionne toujours (si le mot de passe est correct) même lorsque j'utilise l'argument BINARY devant la variable %s !

Le scipt complet fait avec Dreamweaver CS3 est celui-ci (coupé-collé depuis Dreamweaver) :

<?php
// *** Validate request to login to this site.
if (!isset($_SESSION))
{
session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck']))
{
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['identifiant']))
{
$loginUsername=$_POST['identifiant'];
$password=$_POST['password'];
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "menu.php";
$MM_redirectLoginFailed = "index.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_localhost, $localhost);

$LoginRS__query=sprintf("SELECT identifiant, password FROM administrateur WHERE identifiant=%s AND password=BINARY %s",
GetSQLValueString($loginUsername, "text"winking smiley, GetSQLValueString($password, "text"winking smiley);

$LoginRS = mysql_query($LoginRS__query, $localhost) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser)
{

$LoginName__query=sprintf("SELECT nom, prenom FROM administrateur WHERE identifiant=%s AND password = BINARY %s",
GetSQLValueString($loginUsername, "text"winking smiley, GetSQLValueString($password, "text"winking smiley);
$LoginFirstName = mysql_query($LoginName__query, $localhost) ;
$result = mysql_fetch_array($LoginFirstName);
$firstName = $result['prenom'] ." " .$result['nom'];
$loginStrGroup = "";

//declare three session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
$_SESSION['MM_FirstName'] = $firstName;

if (isset($_SESSION['PrevUrl']) && false)
{
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else
{
header("Location: ". $MM_redirectLoginFailed );
}
}
?>


Où me suis-je trompé bien que j'ai bien spécifié "password = BINARY %s" pour forcer la recherche avec case sentitive ?

Merci d'avance de votre aide.

PS : J'utilise Dreamweaver CS3 avec WampServer2 (Apache 2.2.8, Php 5.2.6, MySQL 5.0.51b) et Vista 32 Ulltimate.

-----------------
Après avoir vidé les caches et le cookies d'IE et de Firefox, tout est rentré dans l'ordrewinking smiley



Modifie 1 fois. Derniere modification le 22/10/2008 à 02:27 par Dopey.

Options: Répondre•Citer ce Message


Aller à : Liste des Forums•Liste des messages•Recherche•Connexion
Désolé, seuls les utilisateurs connectés peuvent envoyer des messages dans ce forum.
Cliquer ici pour se connecter

design by jidePowered by Alter Way get firefoxget PHP