Forum Clubic

Probleme MD5

Bonjour

J’ai créé un formulaire d’inscription avec la fonction MD5 pour les mots de passe (stockage dans une base de donnee mysql) :

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO clients (ID, nom, prenom, adresse, ville, cp, tel, email, pass) 
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, MD5(%s))",
                       GetSQLValueString($_POST['ID'], "int"),
                       GetSQLValueString($_POST['nom'], "text"),
                       GetSQLValueString($_POST['prenom'], "text"),
                       GetSQLValueString($_POST['adresse'], "text"),
                       GetSQLValueString($_POST['ville'], "text"),
                       GetSQLValueString($_POST['cp'], "text"),
                       GetSQLValueString($_POST['tel'], "text"),
                       GetSQLValueString($_POST['email'], "text"),
                       GetSQLValueString($_POST['pass'], "text"));

Le mots de passe est bien enregistré haché dans ma base de donnée, mais je n’arrive pas à authentifier l’utilisateur lors de son identification.
J’utilise le comportement ‘connecter l’utilisateur’ de dreamweaver cs3 en ajoutant la fonction MD5 au mots de passe (voir code ci-dessous):

En ajoutant MD5(), dreamweaver m’ajoute un 2eme comportement connecter l’utilisateur et ca ne fonctionne pas.

Si quelqu’un à une idee, je debute ?
Merci d’avance
fanny

<?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['email'])) {
  $loginUsername=$_POST['email'];
  $password=$_POST['pass'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "../moi/commande_confirmation.php";
  $MM_redirectLoginFailed = "login.php";
  $MM_redirecttoReferrer = true;
  mysql_select_db($database_Connexion, $Connexion);
  
  $LoginRS__query=sprintf("SELECT email, pass FROM clients WHERE email=%s AND pass=MD5(%s)",
    GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 
   
  $LoginRS = mysql_query($LoginRS__query, $Connexion) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
     $loginStrGroup = "";
    
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;

Edité le 17/03/2008 à 10:41

un coup de echo $LoginRS__query pour afficher la requête peut-être?

merci pour ton aide

j’ai tester ton code mais rien ne passe, je debute je ne sais pas si je l’ai inserer au bon endroit.
mon probleme pour les deux comportements connecter l’utilisateur a l’air d’etre resolu par contre un mesage s’affichage lors de l’authentification de l’utilisateur :

Fatal error: Call to undefined function GetSQLValueString() in D:\wamp\www\Copie de test\mdpprotege\login.php on line 22

voici mon formulaire de connexion :

<form name="form1" method="POST" action="<?php echo $loginFormAction; ?>">
            <input name="email" type="text" id="email" size="17">
                                        <br>
                                        <input name="pass" type="password" id="pass" size="17"/>                                       
                                        <input type="hidden" name="MD5pass" value="" />
                                        <input type="submit" name="button" id="button" value="ok">
          </form>

Edité le 12/03/2008 à 13:27

Fatal error: Call to undefined function GetSQLValueString() in D:\wamp\www\Copie de test\mdpprotege\login.php on line 22

Lis le message d’erreur.

comment lire le message d’erreur STP?

merci

fanny

Saluton,
Va s’facher le Sans-Nom, là.:wink:
Tu utilises, à la ligne 22 de ton script D:\wamp\www\Copie de test\mdpprotege\login.php, une fonction GetSQLValueString() qui n’ait définie nulle part.

Il trouve pas ta fonction, elle n’est pas déclaré.
Edité le 12/03/2008 à 14:21

desole ,

J’ai declaré ma fonction, mais mon probleme perciste je n’ai plus le message d’erreur par contre la connexion de l’utilisateur ne marche pas.
des que j’ajoute MD5 devant la valeur pour le mots de passe (code ci-dessous de la page authentification), dreamweaver me signale une erreur, j’ai un 2eme comportement connecter l’utilisateur. Si je supprime un comportement, il me supprime la declaration de la fonction getsqlvaluestring()

$LoginRS__query=sprintf("SELECT email, pass FROM clients WHERE email=%s AND pass=MD5(%s)",
    GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 

Je ne comprends pas :frowning:

affiche ta requête: echo $LoginRS__query et teste là dans phpMyAdmin

j’ai ajouté <?php echo $LoginRS__query ?> dans ma page d’dentification entre la balise body, mais rien ne s’affiche, où l’inserer ?

merci de m’aider à resoudre mon probleme, je bloque, que pense tu de mon code ?
Edité le 12/03/2008 à 18:34

J’ai besoin d’aide, c’est urgent

Je ne comprends pas pourquoi je n’arrive pas à inserer la fonction MD5 dans cette page d’identification du client.
Si j’enleve MD5 j’arrive à me connecter avec un mots de passe non ashé mais des que je l’ajoute, ma page se comporte
comme si le mots de passe était incorrect.

merci d’avance :wink:

<?php require_once('../Connections/ConnexionMa.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
?>
<?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['email'])) {
  $loginUsername=$_POST['email'];
  $password=$_POST['pass'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "../moi/commande_confirmation.php";
  $MM_redirectLoginFailed = "login.php";
  $MM_redirecttoReferrer = true;
  mysql_select_db($database_ConnexionMa, $ConnexionMa);
  
  $LoginRS__query=sprintf("SELECT email, pass FROM clients WHERE email=%s AND pass=MD5(%s)",
    GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 
   
  $LoginRS = mysql_query($LoginRS__query, $ConnexionMa) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
     $loginStrGroup = "";
    
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;	      

    if (isset($_SESSION['PrevUrl']) && true) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];	
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>
<html><!-- InstanceBegin template="/Templates/ModelePublic.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>

</head>
<body>
<form name="form1" method="POST" action="<?php echo $loginFormAction; ?>">
            <input name="email" type="text" id="email" size="17">
                                        <br>
                                        <input name="pass" type="password" id="pass" size="17"/>                                       
                                        <input type="hidden" name="MD5pass" value="" />
                                        <input type="submit" name="button" id="button" value="ok">
          </form>
          
      </table><?php echo $LoginRS__query; ?>
      
    </body>

Edité le 12/03/2008 à 18:37

Fais ton echo JUSTE après le “sprintf”. Pas à la fin, là tu as une redirection HTTP…

merci pour ton aide
j’ai resolu mon probleme, je n’avais pas mis 32 caracteres pour le champs mots de passe dans bdd. Ce que je ne comprends pas c’est que j’ai toujours deux comportement connecter l’utilisateur que je n’arrive pas à resoudre

bonne soiree

fanny
Edité le 12/03/2008 à 23:04

En même temps c’est dreamweaver qui te ponds des comportements ou je ne sais quoi, il faut se fier au code, pas à ce que te racconte le programme qui n’est même pas conçu pour développer en PHP…

merci insiderz
je debute, je ne comprends pas suffisamment le code pour est sur de ce que j’ai fait.

Moi je ne vois pas d’erreur, et vous qu’est ce que vous en pensez de mon code ?
C’est important , merci

fanny

Tu l’as testé ? Il fonctionne correctement et sans erreurs ?

oui j’ai teste tout fonctionne correctement, aucun message d’erreur

Et beh ne te prends pas la tête avec ce que te dit dreamweaver, comme je disais plus haut, ce n’est pas un outil dédié au PHP :wink:

c’est bon j’ai reussi j’ai ajoute la fonction md5 a cette endroit $password= md5 ($_POST[‘pass’]);
dreamweaver ne m’afffiche plus le probleme
merci

fanny