Script php mot de passe perdu à compléter.

Résolu
rankobihami Messages postés 3 Statut Membre -  
rankobihami Messages postés 3 Statut Membre -
Bonjour,

Après avoir fouillé sur plein de posts, je me rend compte que le langage mysql / php peut être codé de différentes manières pour le même résultat. Et donc mon script fonctionne dans l'ensemble mais je n'arrive pas à récupérer le mot de passe dans ma BDD.
Si quelqu'un a une idée. Je met le script entier si il peut servir à d'autres webmasters. (J'ai mis la zone du script où je pense que ça bug en gras). Merci

<?php
$emailmember = $_POST['loginforpass'];
$pointemail = strpos($emailmember,".");
$arobaemail = strpos($emailmember,"@");
$error = "";
$emailadmin = "admin@site.com";

if (empty($emailmember))
{
$error="Unknow login. Please try again.";
}

elseif($pointemail=='')
{
$error="Unknow login. Please try again.";
}

elseif($arobaemail=='')
{
$error="Unknow login. Please try again.";
}

else
{

mysql_connect('sql.site.com','login','pass') OR die;

mysql_select_db('sitebdd') OR die;

$requete = mysql_query('SELECT login, pass FROM ident WHERE login="'.$emailmember.'"') OR die(mysql_error());

if(mysql_num_rows($requete)!==0)
{
$passmember = $requete['pass'];
$subjectmember = "Your personal informations";
$textmember = "Hi,

As you requested, here are your personnal informations :
Login : $emailmember
pass : $passmember

Keep your informations secret to avoid account theft, because then you won't be abble to access Site Online Training !

Have a wonderfull day ! ;)

Site.com support team.";

@mail("$emailmember", $subjectmember, $textmember, "FROM: $emailadmin");
header("location:checkyourmailforthepass.php");
}

else
{
$error="Wrong login. Please try again.";
}

}

?>

<html>
<head>
<title>Site.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">

<p align="center">
<b>
<span style="background-color: #FF0000;"><?php echo "$error"; ?></span>
</b>
</p>

<p align="center"><a href="forgottenpass.php">Mot de passe oublié ?</a></p>

</body>
</html>
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. alain42
     
    Bonsoir,

    une erreur là:

    if(mysql_num_rows($requete)!==0)

    == égal
    != pas égal

    alors soit:

    if(mysql_num_rows($requete)!=0)
    
    ou
    
    if(mysql_num_rows($requete)>0)  // mieux
    
    ou 
    
    if(mysql_num_rows($requete)== 1)  // encore mieux car tu ne devrait avoir qu'un login correspondant à un mail
    


    ensuite tu ne peux pas utiliser $requete['pass'] directement

    il faut faire avant :

    
    extract($requette);
    
    
    0
  2. vlmath Messages postés 833 Statut Contributeur 160
     
    Salut,

    Il me semble qu'il manque un truc ... :
    if( $data = mysql_num_rows($requete) ==1 ) 
    { 
    $passmember = $data['pass']; 
    
    ......
    

    Je j'ai pas testé, mais ça devait être comme ça ...

    @Bientôt

    Edit : PS: je n'avais pas vu le poste d'avant, j'était déjà en train d'écrire ... :D
    0
  3. rankobihami Messages postés 3 Statut Membre
     
    Merci de vos réponses. :)
    J'ai donc modifié le script et réessayé et il manque toujours quelque chose puisque le mail est bien envoyé mais le mot de passe ($passmember) récupéré dans la BDD n'apparait pas.

    En gras les modifications apportées.

    Code actuel :

    <?php
    $emailmember = $_POST['loginforpass'];
    $pointemail = strpos($emailmember,".");
    $arobaemail = strpos($emailmember,"@");
    $error = "";
    $emailadmin = "admin@site.com";

    if (empty($emailmember))
    {
    $error="Unknow login. Please try again.";
    }

    elseif($pointemail=='')
    {
    $error="Unknow login. Please try again.";
    }

    elseif($arobaemail=='')
    {
    $error="Unknow login. Please try again.";
    }

    else
    {

    mysql_connect('sql.site.com','login','pass') OR die;

    mysql_select_db('sitebdd') OR die;

    $requete = mysql_query('SELECT login, pass FROM ident WHERE login="'.$emailmember.'"') OR die(mysql_error());

    if(mysql_num_rows($requete)== 1)
    {
    extract($requete);

    $passmember = $requete['pass'];
    $subjectmember = "Your personal informations";
    $textmember = "Hi,

    As you requested, here are your personnal informations :
    Login : $emailmember
    pass : $passmember

    Keep your informations secret to avoid account theft, because then you won't be abble to access Site Online Training !

    Have a wonderfull day ! ;)

    Site.com support team.";

    @mail("$emailmember", $subjectmember, $textmember, "FROM: $emailadmin");
    header("location:checkyourmailforthepass.php");
    }

    else
    {
    $error="Wrong login. Please try again.";
    }

    }

    ?>

    <html>
    <head>
    <title>Site.com</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#FFFFFF" text="#000000">

    <p align="center">
    <b>
    <span style="background-color: #FF0000;"><?php echo "$error"; ?></span>
    </b>
    </p>

    <p align="center"><a href="forgottenpass.php">Mot de passe oublié ?</a></p>

    </body>
    </html>
    0
  4. alain42
     
    essayes avec:

    if(mysql_num_rows($requete)== 1)
    {
    $result=mysql_fetch_array($requete);
    $passmember = $result['pass']; 
    
    etc....
    
    
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. rankobihami Messages postés 3 Statut Membre
     
    Merci alain42 ! Effectivement il manquait le mysql_fetch_array($requete);
    Le script fonctionne maintenant.

    Code OK :

    <?php
    $emailmember = $_POST['loginforpass'];
    $pointemail = strpos($emailmember,".");
    $arobaemail = strpos($emailmember,"@");
    $error = "";
    $emailadmin = "admin@site.com";

    if (empty($emailmember))
    {
    $error="Unknow login. Please try again.";
    }

    elseif($pointemail=='')
    {
    $error="Unknow login. Please try again.";
    }

    elseif($arobaemail=='')
    {
    $error="Unknow login. Please try again.";
    }

    else
    {

    mysql_connect('sql.site.com','login','pass') OR die;

    mysql_select_db('sitebdd') OR die;

    $requete = mysql_query('SELECT login, pass FROM ident WHERE login="'.$emailmember.'"') OR die(mysql_error());

    if(mysql_num_rows($requete)== 1)
    {
    $result=mysql_fetch_array($requete);
    $passmember = $result['pass'];
    $subjectmember = "Your personal informations";
    $textmember = "Hi,

    As you requested, here are your personnal informations :
    Login : $emailmember
    pass : $passmember

    Keep your informations secret to avoid account theft, because then you won't be abble to access Site.com !

    Have a wonderfull day ! ;)

    Site.com support team.";

    @mail("$emailmember", $subjectmember, $textmember, "FROM: $emailadmin");
    header("location:checkyourmailforthepass.php");
    }

    else
    {
    $error="Wrong login. Please try again.";
    }

    }

    ?>

    <html>
    <head>
    <title>Site.com</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#FFFFFF" text="#000000">

    <p align="center">
    <b>
    <span style="background-color: #FF0000;"><?php echo "$error"; ?></span>
    </b>
    </p>

    <p align="center"><a href="forgottenpass.php">Mot de passe oublié ?</a></p>

    </body>
    </html>
    0