[Résolu] Mot de passe et Mysql


Ron56
WRInaute impliqué
WRInaute impliqué
 
Messages: 708
Inscription: 20 Nov 2005

Message le Jeu Mar 23, 2006 16:51

Voila le script d'enregistrement !

Code: Tout sélectionner
<?php # Listing 5.10 - enregistrer-2.php

// Définir le titre de la page
$titre_page = "Enregistrement";


if (isset($_POST['submit']))
{ // Traiter le formulaire

  // Créer une fonction pour échapper les données.
  function echappement ($data)
  { global $bd;                  // connexion nécessaire
    if (ini_get('magic_quotes_gpc'))
    { $data = stripslashes($data);
    }
    return mysql_escape_string($data);
  } // fin de la fonction

  include('../fonctions/sql_connect.php');
  $message = NULL;                            // créer une variable vide

  // Vérifier la présence d'un prénom
  if (empty($_POST['prenom']))
  { $p = FALSE;
    $message .= '<p>Vous avez oublié d\'indiquer votre prénom</p>';
  }
  else
  { $p = echappement($_POST['prenom']);
  }

  // Vérifier la présence d'un nom
  if (empty($_POST['nom']))
  { $n = FALSE;
    $message .= '<p>Vous avez oublié d\'indiquer votre nom</p>';
}
  else
  { $n = echappement($_POST['nom']);
  }

  // Vérifier l'existence d'une adresse e-mail
  if (empty($_POST['email']))
  { $e = FALSE;
    $message .= '<p>Vous avez oublié d\'indiquer votre adresse e-mail</p>';
  }
  else
  { $e = echappement($_POST['email']);
  }

  // Vérifier la présence d'un nom d'utilisateur
  if (empty($_POST['nom_utilisateur']))
  { $u = FALSE;
    $message .= '<p>Vous avez oublié d\'indiquer votre nom d\'utilisateur</p>';
  }
  else
  { $u = echappement($_POST['nom_utilisateur']);
  }

  // Vérifier l'existence et l'exactitude du mot de passe
  if (empty($_POST['mot_de_passe1']))
  { $mp = FALSE;
    $message .= '<p>Vous avez oublié d\'indiquer votre mot de passe</p>';
  }
  else
   { if ($_POST['mot_de_passe1'] == $_POST['mot_de_passe2'])
     { $mp = echappement($_POST['mot_de_passe1']);
     }
     else
     { $mp = FALSE;
       $message .= '<p>Votre mot de passe est différent de celui que vous avez précédemment déclaré</p>';
     }
  }

  if ($p && $n && $e && $u && $mp)                // Si tout est correct
  { // Voir si l'utilisateur existe déjà
$ver=mysql_query("SELECT id_utilisateur FROM utilisateurs where nom_utilisateur='$u'");
$verif=mysql_num_rows($ver);
if($verif=='0')
      { // créer une nouvelle requête
      $rq = "INSERT INTO utilisateurs (nom_utilisateur, prenom, nom, email,
            mot_de_passe, date_enreg) VALUES ('$u', '$p', '$n', '$e',
            SHA1('$mp'), NOW())";
      // lancer la requête d'enregistrement
      $result = mysql_query($rq);
      if ($result)                      // Si l'enregistrement est correct
      { // Envoyer éventuellement un e-mail
        echo "<p><b>Merci de vous être enregistré sur notre site.</b></p>";
        exit();                             // terminer le script
      }
      else
      { echo "<p>Vous n'avez pas pu être enregistré à cause d'une erreur système".
             "<p></p>" . mysql_error() . "<p></p>";
      }
    }
    else
    { $message .= "<p>Nom d'utilisateur déjà utilisé</p>"; 
    }
    mysql_close();           // refermer la connexion avec la base de données
  }
  else
  { // Quelque chose n'est pas correct
    $message .= "<p>Veuillez avoir l'obligeance de recommencer</p>";
  }
}

// Afficher éventuellement un ou plusieurs messages d'erreur
if (isset($message))
{ echo "<font color='red'>$message</font>";
}
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<fieldset>
<legend>Veuillez renseigner le formulaire ci-dessous :</legend>

<p><b>Prénom :</b>
<input type="text" name="prenom" size="15" maxlength="15"
       value="<?php if (isset($_POST['prenom'])) echo $_POST['prenom']; ?>"/>
</p>

<p><b>Nom :</b>
<input type="text" name="nom" size="30" maxlength="30"
       value="<?php if (isset($_POST['nom'])) echo $_POST['nom']; ?>"/>
</p>

<p><b>Adresse e-mail :</b>
<input type="text" name="email" size="40" maxlength="40"
       value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>"/>
</p>

<p><b>Nom d'utilisateur :</b>
<input type="text" name="nom_utilisateur" size="10" maxlength="20"
       value="<?php if (isset($_POST['nom_utilisateur']))
              echo $_POST['nom_utilisateur']; ?>"/>
</p>

<p><b>Mot de passe :</b>
<input type="password" name="mot_de_passe1" size="20" maxlength="20" />
</p>

<p><b>Confirmez votre mot de passe :</b>
<input type="password" name="mot_de_passe2" size="20" maxlength="20" />
</p>
</fieldset>

<div align="center">
<input type="submit" name="submit" value="Envoyer les informations" />
</div>

</form><!-- Fin du formulaire -->

<?php
// Fin de l'instruction conditionnelle principale

?>


spidetra
WRInaute passionné
WRInaute passionné
 
Messages: 1500
Inscription: 7 Juil 2003

Message le Jeu Mar 23, 2006 16:58

Essaye SHA1($mp) à la place de SHA1('$mp')

PHP
<? echo( sha1("tutu") ?>
=> 32a89bdcec2d50f9dc9747cd47ecfc14cf9c3dbe

mySQL
SELECT SHA1("tutu");
=> 32a89bdcec2d50f9dc9747cd47ecfc14cf9c3dbe

la comparaison entre les 2 chaines doit marcher


Ron56
WRInaute impliqué
WRInaute impliqué
 
Messages: 708
Inscription: 20 Nov 2005

Message le Jeu Mar 23, 2006 17:05

Une erreur est survenue, veuillez réessayer !


:cry: :cry: :cry:


Ron56
WRInaute impliqué
WRInaute impliqué
 
Messages: 708
Inscription: 20 Nov 2005

Message le Jeu Mar 23, 2006 17:06

Alors :) , Il reconnait le mot de passe , car le message suivant s'affiche :

mot de passe correct!


Mais :oops: , j'ai quand meme un bug car j'ai aussi ce méssage

Une erreur est survenue, veuillez réessayer !
Dernière édition par Ron56 le Jeu Mar 23, 2006 17:12, édité 1 fois.

spidetra
WRInaute passionné
WRInaute passionné
 
Messages: 1500
Inscription: 7 Juil 2003

Message le Jeu Mar 23, 2006 17:10

c'est quoi la taille de ton champ mot_de_passe ?


Ron56
WRInaute impliqué
WRInaute impliqué
 
Messages: 708
Inscription: 20 Nov 2005

Message le Jeu Mar 23, 2006 17:14

spidetra a écrit:c'est quoi la taille de ton champ mot_de_passe ?



C'était ca qui buggait :oops: , je l'ai mis a 100 , je suis trankil ! :wink:

Mais le petit bug doit forcement venir ce cet portion de code :

Code: Tout sélectionner
// Si le login a été validé on met les données en sessions
if ($loginOK) {
  $_SESSION['id_utilisateur'] = $data['id_utilisateur'];
  $_SESSION['nom_utilisateur'] = $data['nom_utilisateur'];
  $_SESSION['prenom'] = $data['prenom'];
  $_SESSION['nom'] = $data['nom'];
  $_SESSION['email'] = $data['email'];
  $_SESSION['date_enreg'] = $data['date_enreg'];
}
else {
  echo 'Une erreur est survenue, veuillez réessayer !';

spidetra
WRInaute passionné
WRInaute passionné
 
Messages: 1500
Inscription: 7 Juil 2003

Message le Jeu Mar 23, 2006 17:16

Ron56 a écrit:C'était ca qui buggait :oops: , je l'ai mis a 100 , je suis trankil ! :wink:


40 aurait suffit.
Ensuite, c'est du php je passe la main a plus compétent que moi :)


Ron56
WRInaute impliqué
WRInaute impliqué
 
Messages: 708
Inscription: 20 Nov 2005

Message le Jeu Mar 23, 2006 17:18

spidetra a écrit:
Ron56 a écrit:C'était ca qui buggait :oops: , je l'ai mis a 100 , je suis trankil ! :wink:


40 aurait suffit.
Ensuite, c'est du php je passe la main a plus compétent que moi :)


Merci beacoup , tu m'as vraiment débloquer la :) , j'ai recommender tes messages ! :wink:

spidetra
WRInaute passionné
WRInaute passionné
 
Messages: 1500
Inscription: 7 Juil 2003

Message le Jeu Mar 23, 2006 17:19

C'est pas un simple = qu'il faut là ?
Code: Tout sélectionner
// On vérifie que son mot de passe est correct
    if ($mot_de_passe == $data['mot_de_passe']) {
      $loginOK == true;
      echo 'mot de passe correct!';


$loginOK = true ? C'est pas ça le pb ?


Ron56
WRInaute impliqué
WRInaute impliqué
 
Messages: 708
Inscription: 20 Nov 2005

Message le Jeu Mar 23, 2006 17:29

spidetra a écrit:C'est pas un simple = qu'il faut là ?
Code: Tout sélectionner
// On vérifie que son mot de passe est correct
    if ($mot_de_passe == $data['mot_de_passe']) {
      $loginOK == true;
      echo 'mot de passe correct!';


$loginOK = true ? C'est pas ça le pb ?


je pense pas je vais essayer :wink:


Ron56
WRInaute impliqué
WRInaute impliqué
 
Messages: 708
Inscription: 20 Nov 2005

Message le Jeu Mar 23, 2006 17:32

Au tout départ on défini login false , si le mot de passe est bon on définit login true et apres si login est true on creer la session :wink:

spidetra
WRInaute passionné
WRInaute passionné
 
Messages: 1500
Inscription: 7 Juil 2003

Message le Jeu Mar 23, 2006 17:35

ça fait longtemp que je ne fait plus de php mais :

== => comparaison
= => affectation

J'ai tout faut là ?
j'écrirais $loginOK = true ;


Ron56
WRInaute impliqué
WRInaute impliqué
 
Messages: 708
Inscription: 20 Nov 2005

Message le Jeu Mar 23, 2006 17:36

Code: Tout sélectionner
      $loginOK = true;
      echo 'mot de passe correct!';
    }
  }
}

// Si le login a été validé on met les données en sessions
if ($loginOK = true) {


Ca marche

spidetra
WRInaute passionné
WRInaute passionné
 
Messages: 1500
Inscription: 7 Juil 2003

Message le Jeu Mar 23, 2006 17:39

Ron56 a écrit:Ca marche


Ouf ! Tu m'as fait peur :mrgreen:

[Résolu] Mot de passe et Mysql

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Bombing

  • Calculer l'indice de densité
    Cet outil vous permet de calculer l'indice de densité d'un mot-clé d'une page web. Il est calculé à la fois pour la balise TITLE, la balise META description et l'ensemble du texte de la page.
  • Suggestions de mots-clés
    Cet outil vous fournit une liste de mots sémantiquement proches du mot que vous fournissez en entrée. Il peut servir à vous donner des idées de mots à utiliser sur vos pages, voire de contenus à ajouter.
  • Suggestions Google Suggest
    Cet outil vous permet d'obtenir une liste de 10 mots ou expressions suggérés par Google sur la base d'un mot que vous fournissez.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité