[RESOLU] Récupération de mot de passe

Eléphant du PHP | 343 Messages

11 déc. 2011, 22:36

Remplace hash('sha1','$motpasse'); par hash('sha1',$motpasse); et vois déjà si ca marche.
Développeur web

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

11 déc. 2011, 22:40

la fonction var_dump permet d'afficher le contenu d'une variable et surtout ce qu'est une variable (entier, chaine de caractère, objet etc etc).

a partir tu peux suivre l'évolution de ton script et voir ce que les variables ont "dans le ventre" et donc savoir où se trouve ton problème :)

De plus ta dernière utilisation de hash montre que tu n'est familier de l'utilisation des variables, d'où le tuto que je t'ai indiqué.

il s'agit de la source du problème :)

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 53 Messages

13 déc. 2011, 19:51

Remplace hash('sha1','$motpasse'); par hash('sha1',$motpasse); et vois déjà si ca marche.
Déjà fait, sans résultat.. Toujours aussi problématique. :cry:
Je peux faire quoi d'autre ?

Eléphant du PHP | 343 Messages

13 déc. 2011, 20:40

Poster le bout de code correspondant? Ou peut-être voir le résultat du var_dump/echo?
Développeur web

Eléphant du PHP | 53 Messages

14 déc. 2011, 12:43

C'est à dire ? Avez-vous une fonction précise et qui marche ou me faire un example avec :
<?php
$motpasse = "Mon mot de passe";
echo $motpasse;
$mot = sha1($motpasse);
echo $mot;
?>
//ou
<?php
$mdp = "Mon mdp";
echo $mdp
$mdp2 = hash('sha1',$mdp);
echo $mdp2;
?>
Merci.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 déc. 2011, 15:04

le code que tu a mis est fonctionnel (hors mis le ; manquant)
maintenant ci sut fait (à partir de ton code)
<?php
$motpasse = "Mon mot de passe";
echo $motpasse.'<br />';
$mot = sha1($motpasse);
echo $mot.'<br />';
$mdp2 = hash('sha1',$motpasse);
echo $mdp2;
?>
on a
Mon mot de passe
93589d9b06f1e9b4a9b06eba65f59a34fb258be9
93589d9b06f1e9b4a9b06eba65f59a34fb258be9
ce qui est le résultat attendu !

essai ce code soit ça fonctionne, soit tu un gros problème (genre désactivation de fonction) et dans ce cas tu devrait avoir un message d'erreur (et la error_reporting(E_ALL|E_STRICT); obligatoire pour débugger dans de bonne condition :)

après si tu nous montre le code qui te pose problème dans ce que tu souhaite faire et nous indique ce que tu ne comprend pas (ou qui pour toi ne va pas on comprendra mieux :)

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 53 Messages

16 déc. 2011, 16:56

Vous ne devez pas me comprendre..

Quand je m'inscrit sur mon site. J'ai mis la ligne de code $motpasse = hash('sha1',$pass); Donc cela crypte le mot de passe en Sha1 et puis le met dans ma base de donnée en crypté. Le problème maintenant c'est que quand je vais me connecter avec le compte dont le mot de passe est hashé je ne pourrai pas je devrais alors mettre le mot de passe crypté qui et a79749456tgf48646sd131561..

Vous comprenez ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 déc. 2011, 17:28

mwé, tu n'a pas compris le principe.

ce que tu a fait une fois tu peux le refaire, il te faut donc comparer deux sha1.

en gros tu prend ce que l'on met dans le formulaire tu le "hash" et ensuite tu compare a ce qu'il y a dans la base.


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 343 Messages

16 déc. 2011, 17:37

Exactement, il faut hasher le pass avant la requête (chose que j'avais indiqué la page d'avant) ;)
Développeur web

Eléphant du PHP | 53 Messages

16 déc. 2011, 18:03

est comment ?

Eléphant du PHP | 343 Messages

16 déc. 2011, 20:40

Comment ça comment? Comment hasher?
Tu fais que ça depuis le début!
Avant de vérifier si le pass du formulaire est égal au hash de la bdd, tu hash le pass du formulaire (sinon tu ne trouveras jamais le bon résultat).

Tu dois faire quelque chose comme:
 if($_POST["pass"]== $pass_bdd)
et ben tu corriges en:
if($pass_du_form_hash == $pass_bdd)
avec $pass_du_form_hash = sha1($pass).
Développeur web

Eléphant du PHP | 53 Messages

16 déc. 2011, 23:41

Sait pas que je ne comprend pas mais j'ai dû mal a suivre...

Voici mon code suivi du formulaire :
<?php
session_start();      include_once("config.php");
if (empty($_GET['action']))
{

$pass = $_POST['password'];
$account = $_POST['username'];
$pseudo = $_POST['usernames'];
$passconf = $_POST['password_conf'];
$email = $_POST['email'];
$capatcha = $_POST['captcha'];
$capatcha2 = $_POST['captcha2'];
$rule = $_POST['rule'];
$motpasse = hash('sha1','$pass');
function random_str($nbr)
{
    $str = "";
    $chaine = "abcdefghijklmnpqrstuvwxy";
    srand((double)microtime()*1000);

    for($i=0; $i<$nbr; $i++) {
        $str .= $chaine[rand()%strlen($chaine)];
    }

    return $str;
}

// Exemple d'un appel avec 12 caractères
$str = random_str(12);

//capatcha
switch ($capatcha2)
{ 
case 1:
$nombre = "B6BB76";
break;
case 2:
$nombre = "jw62k";
break;
case 3:
$nombre = "DODFUS";
break;
case 4:
$nombre = "UDAQX" ;
break;
case 5:
$nombre = "MOZSQ" ;
break;
case 6:
$nombre = "A13QS" ;
break;
case 7:
$nombre = "OP903" ;
break;
case 8:
$nombre = "TYQXP" ;
break;
case 9:
$nombre = "QXUW9" ;
break;
case 10:
$nombre = "B2G9Q" ;
break;
}


//fin capatcha

if ($pass == $passconf)
{
if (strpos($email,'@')== true)
{
if ($_POST['username'] != NULL)
{
if ($nombre == $capatcha)
{
if ($rule == "check")
{
$motpasse = hash('sha1',$pass);
$db = mysql_connect($serveur, $serveurlogin, $serveurpass);
mysql_select_db($dbother,$db); 

$req = "INSERT INTO accounts (account,pass,email,pseudo) VALUES('$account','$motpasse','$email','$pseudo')";
mysql_query($req); 
$_SESSION['account'] = $account;
header("Location: join.php");
}
else
{
header("Location: register.php?prob=Accepterleréglement");
}
}
else
{
header("Location: register.php?prob=Verification,image");
}
}
else
{
header("Location: register.php?prob=Login");
}
}
else
{
header("Location: register.php?prob=email");
}
}
else
{
header("Location: register.php?prob=password");
}

}
elseif ($_GET['action'] == "update")
{
$pass = $_POST['password'];
$account = $_POST['username'];
$passconf = $_POST['password_conf'];
$email = $_POST['email'];

if ($pass == $passconf)
{
if (strpos($email,'@')== true)
{
if ($_POST['username'] != NULL)
{
$db = mysql_connect($serveur, $serveurlogin, $serveurpass);
mysql_select_db($dbother,$db); 
$req = "UPDATE accounts SET pass='$pass', email='$email' WHERE account='$account'";
mysql_query($req); 
$_SESSION['account'] = $account;
header("Location: register3.php?update=1");
}
else
{
header("Location: compte.php?echec=Motdepasse");
}
}
else
{
header("Location: compte.php?echec=email");
}
}
else
{
header("Location: compte.php?echec=login");
}
}

Eléphant du PHP | 343 Messages

17 déc. 2011, 00:29

Ce n'est pas la page du login ça.
C'est sur la page du login qu'il faut hasher le pass que tu récupères en post!
Développeur web

Eléphant du PHP | 53 Messages

17 déc. 2011, 11:17

Re,

Voici ma page d'accueil avec la connexion ou "semi-connexion" :
<?php session_start();      include_once("config.php");?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

<!-- Mirrored from 79.143.179.172/ by HTTrack Website Copier/3.x [XR&CO'2010], Sat, 23 Oct 2010 16:44:35 GMT -->
<head>
<body> 
   <title><?php echo $name;?></title>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <meta name="copyright" content="Copyright" />
   <meta name="classification" content="" />
   <meta name="description" content="<?php echo $name;?>" />
   <meta name="keywords" content="<?php echo $name;?>"/>
   <meta name="author" content="XOF" />
   <link href="style/theme.css" rel="stylesheet" type="text/css" media="screen" />
   <link rel="shortcut icon" href="<?php echo $ico;?>">
   <script type="text/javascript" src="script.js" ></script>
   <script type="text/javascript" src="js/jquery.js" ></script>
   <script type="text/javascript" src="js/function.js"></script>
   <script type="text/javascript" src="js/flash.js"></script>
   <script type="text/javascript">
   <?php echo('sharebar.php') ?>;
   function Popup_Picture() {window.open( "http://localhost/Web/index.php?page=404", "Changer d'Avatar", "height = 450, width = 510, status = no, resizable = no, directories = no, location = yes, scrollbars = no, toolbar = no, menubar = no" )}
   </script>
   <style type='text/css'>
	  #header { width: 1025px; height: 351px; background: url(images/theme/header/header1.png) top no-repeat; margin: 0 auto; }
   .Style1 {color: #FFFFFF}
   </style>



</head>
<body>
<div id="wrapper">
   <div id="header">
	  <div id="sidebar_top">
		 <div class="sidebar">
			<span class="left">
			   
			</span>
			<span class="width: 1025px; height: 85px">
			   <div class="realmlist">
			   <?php if (empty($_SESSION['account']))
			   { ?><?php if (empty($_SESSION['account']))
			   { ?>
				  <?php if (empty($_SESSION['account']))
			   { ?>
				  <input  readonly="readonly" value="Bienvenue Visiteur" />			   </div>
				  <?php }
				  else
				  {
				  ?>
				  <input  readonly="readonly" value="Bienvenue <?php echo $_SESSION['account'] ;?>" />			   </div>
				  <?php }?>
				  <?php }
				  else
				  {
				  ?>
				  <input  readonly="readonly" value="Bienvenue <?php echo $_SESSION['account'] ;?>" />			   </div>
				  <?php }?>
				  <?php }
				  else
				  {
				  ?>
				  <input  readonly="readonly" value="Bienvenue <?php echo $_SESSION['account'] ;?>" />			   </div>
				  <?php }?>
			   
			</span>
			<div class="clear"></div>
		 </div>
	  </div>

   
</div>
  <?php include('menu.php')?>;
</div>
<div class="wrap-content small">
<div id="flash">
<div class="img">
</div>
</div>
<div id="box_550">
<div class="top">
<img src="images/theme/title/accueil.png" alt="" />
</div>
<div class="back">
<div class="box_top"></div>
<div class="box">
<?php 
$db = mysql_connect($serveur, $serveurlogin, $serveurpass);
mysql_select_db($dbother,$db); 
$result = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT 5");

while ($row = mysql_fetch_array($result))
{
$news = $row['id'];
$result2 = mysql_query("SELECT * FROM commentaires WHERE news_id = '$news'");
?>
<h2><?php echo $row['titre']; ?></h2>

<p><img src="<?php echo $row['image']; ?>" alt="" height="110" width="110" />
<?php echo $row['text'];?>
<div class="clear"></div>
<div class="real">
<a href="commentaire.php?news=<?php echo $row['id'];?>" class="commentaire"><?php echo mysql_num_rows($result2);?> Commentaires</a>
<br />
<br />
</div>
<?php }?>
<div class="clear"></div>
</div>

<div class="box_footer"></div>

<div class="box_top"></div>






<div class="box_footer"></div>
</div>
<div class="back_footer"></div>
</div>
</div>
    <div class="wrap-right">
<div class="img_reg">
<a href="http://LIENVIDE.FR/" alt="Cliquez">
<img width="215" height="268" src="images/theme/pixel.gif"></a>
</div>
<div class="img_web">
<a href="http://LIENVIDE.FR/" alt="Cliquez">
<img width="215" height="268" src="images/theme/pixel.gif"></a>
</div>



 		 
		 <script language="javascript" type="text/javascript"><!--
		 function session_win() {
		   window.open("http://5.187.246.189/Web/COMODO/","newwindow","height=600,width=450,top=0,left=0,toolbar=no,statusbar=yes,location=yes,menubar=yes,scrollbars=yes,resizable=yes");
		 }
		 //-->
		 </script>
	    <a href="javascript:session_win();"></a>	  </div>
	  <div class="clear"></div>
   </div>
</div>   <div id="footer">
	  <div class="text">
		 
		 <br /><br />
		 <img src="images/theme/footer.png" alt="" /><br /><br />
		 </div>
   </div>
<script src="http://cdn.wibiya.com/Toolbars/dir_1048/Toolbar_1048480/Loader_1048480.js" type="text/javascript"></script><noscript><a href="http://www.wibiya.com/">Web Toolbar by Wibiya</a></noscript> 
</div>
</body>
</html>
Voici l'include ajouté concernant la connexion :
<div id="wrap"><div id="menu">
<div class="vote">
<a href="vote.php"><img width="223" height="153" src="images/theme/pixel.gif" alt="" /></a>
</div>
<img src="images/theme/menu/compte.png">
<ul class="back brown">
<?php if (empty($_SESSION['account']))
{
?>
<form class="login" action="login.php" method="post">
<a href="register.php" class="inscrire">S'inscrire</a>
<div class="champ">
<label for="login">Votre Nom de Compte</label><br />
<input type="text" value="" name="username">
</div>
<div class="champ">
<label for="password">Votre Mot de Passe</label><br />
<input type="password" value="" name="password">
<input type="hidden" value="" name="page">
<input type="submit" name="send" value=" ">
</div>
<a href="/mdpoublie.php">Mot de passe oublie ?</a>
<br />
</form>
<?php
}
else
{
?>
<li><a href="compte.php">Votre compte</a></li>
<li><a href="login.php?deconnexion=1">Deconnexion</a></li>
<?php if ($_SESSION['account'] == $login) {echo"<li><a href='admin.php'>Panel Admin</a></li>";} ?>
<?php if($share == 1) { echo '<li><!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style ">
<a href="http://www.addthis.com/bookmark.php?v=250&username=xa-4cedf99a7bd29da9" class="addthis_button_compact">Share</a>
<span class="addthis_separator">|</span>
<a class="addthis_button_preferred_1"></a>
<a class="addthis_button_preferred_2"></a>
<a class="addthis_button_preferred_3"></a>
<a class="addthis_button_preferred_4"></a>
</div>
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#username=xa-4cedf99a7bd29da9"></script>
<!-- AddThis Button END -->
</li>'; } ?>
<?php
}
?>
</ul><img src="images/theme/menu/footer_brown.png">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</ul>
<img src="images/theme/menu/accueil.png" alt="" />
<ul class="back">
<li><a href="index.php">Accueil</a></li>
<li><a href="register.php">Inscription</a></li>
<li><a href="rule.php">R&eacute;glement</a></li>
</ul><img src="images/theme/menu/footer.png" alt="" />
<img src="images/theme/menu/navigation.png" alt="" />
<ul class="back">
<?php if($forumstatut == 1) { echo "<li><a href=$forum>Forum</a></li>"; } ?>
<li><a href="rule.php">R&eacute;glement</a></li>
</ul>
<img src="images/theme/menu/footer.png" alt="" />
<img src="images/theme/menu/support.png" alt="" />
<ul class="back">
<li><a href="faq.php">FAQ</a></li>
<li><a href="who.php">Qui Sommes Nous ?</a></li>
<li><a href="contact.php">Contact</a></li>
</ul>
<img src="images/theme/menu/footer.png" alt="" />
C'est bon tout ce code ?

Eléphant du PHP | 343 Messages

17 déc. 2011, 16:24

Et tu arrives à connecter avec cette partie? Je ne crois pas.
Où est la partie qui connecte le membre, qui vérifie si le pass du post correspond au pass de la bdd?
Développeur web