Mot de passe perdu

Eléphant du PHP | 333 Messages

30 sept. 2005, 08:41

Bonjour, j'ai un site ou l'on y accède par mot de passe,
Les nom d'usager, mot de passe, adresse de redirection, et e-mail sont dans une base de donnée.

J'aimerais créer une page pour mot de passe perdu, rien de très compliquer, une page ou l'on entre notre nom d'usager et que par la suite cela envoie untre mot de passe notre adresse mail qui est dans la Bd

Pouvez vous m'aider

Mammouth du PHP | 19672 Messages

30 sept. 2005, 09:10

Ou bien sur qu'on peut t'aider, mais il faudrait un point de départ: à quel endroit bloques-tu ? As-tu une base déjà codée qui pose problème ? On ne fera certes pas le script à ta place, mais on peut t'aider à débugguer le tien.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 333 Messages

30 sept. 2005, 20:32

Ou bien sur qu'on peut t'aider, mais il faudrait un point de départ: à quel endroit bloques-tu ? As-tu une base déjà codée qui pose problème ? On ne fera certes pas le script à ta place, mais on peut t'aider à débugguer le tien.
Biensure je ne veux pas que l'on fasse le travail pour moi, mais je suis pas, vraiment pas bon en programmation.... alors voici ce que j'ai fait, en 2 page, un formulaire (passperdu.html) et l'envoie mail (passeperdu.php)

passeperdu.html

Code : Tout sélectionner

<html><head></head> <body> <form action="passeperdu.php" method="post"> <input type="text" name="pseudo" size="40" maxlength="256"> <input type="submit" value="Envoyer"> </form> </body></html>
passeperdu.php
<?
 require("connec.php");

 $conecter=mysql_connect($hote,$nom,$passw)or die ("erreur de connexion");
 mysql_select_db($base,$conecter) or die ("erreur de selection");

 
 if ($submit)
     {
        
         if (trim($pseudo) == "")
         {
                 echo "<b><p align=center><span style=font-size:10pt;><font color=red face=verdana>La case est vide</p></font></b>";        
         include('passeperdu.htm');
         exit;
         }
 
 $pseudoexists = "SELECT passe FROM membre WHERE pseudo='$pseudo'";
 $existence = mysql_query($pseudoexists);
  
 
 if (mysql_num_rows($existence) == 0)
 {
 echo "<b><p align=center><span style=font-size:10pt;><font color=red face=verdana>Nom d'usager invalide</p></font></b>";        
 include('passeperdu.htm');
 exit;
 }
   if (mysql_num_rows($existence) > 0) {
$to = "$email";
{
    $message = "Usager $pseudo\nMot de passe: $passe\n";
      mail ($to, "Votre Mot de passe", $message);
    }

}

 //On ferme la connexion avec la base    
 mysql_close();

 ?>
Voila, bien vous devinez, cane fonctionne pas, il se dirige bien vers la page php, mais j'ai une page blanche et encore moins de mail......

J'ai essayer, mais SVP pas de sarcasme....... il faut apprendre

Merci de votre aide

Mammouth du PHP | 1311 Messages

30 sept. 2005, 20:37

salut
a pemiere vu tu ne recupere pas les données envoyées par passeperdu.html

en effet dans passeperdu.html tu a un formulaire ou tu precise une method POST

si tu veut recupérer les informations envoyé par passeperdu.html dans passeperdu.php tu doit utilisé
$_POST['pseudo']
ecrit
$pseudo=$_POST['pseudo'];

Eléphant du PHP | 333 Messages

30 sept. 2005, 20:45

Je le met où.... J'ai essayer juste avant le if ($submit)

ca donne les même résultats...... désolé

Mammouth du PHP | 19672 Messages

30 sept. 2005, 20:53

On fera pas de sarcasme :) On va simplifier ça en mettant tout sur une seule page :
<?
require("connec.php");
$afficher_form = 1;
if (isset($_POST['submit']))
{
    /* On commence par récupérer la valeur envoyée par le formulaire: */
    $pseudo = isset($_POST['pseudo']) ? $_POST['pseudo'] : "";
    if (trim($pseudo) == "")
    {
        $message = "La case est vide.";
        $afficher_form = 1;
    }
    else
    {
        $conecter=mysql_connect($hote,$nom,$passw)or die ("erreur de connexion");
        mysql_select_db($base,$conecter) or die ("erreur de selection");
        $pseudoexists = "SELECT passe FROM membre WHERE pseudo='$pseudo'";
        $existence = mysql_query($pseudoexists);


        if (mysql_num_rows($existence) <= 1)
        {
            $message = "Nom d'usager invalide";
            $afficher_form = 1;
        }
        else
        {
            $to = "$email";
            {
                $message = "Usager ". $pseudo ."\nMot de passe: ". $passe ."\n";
                if(mail ($to, "Votre Mot de passe", $message))
                {
                    $message = "Votre mot de passe vient de vous être envoyé par courriel.";
                    $afficher_form = 0;
                }
            }

        }
    }
    //On ferme la connexion avec la base
    mysql_close();
}
?>
<html>
<head>
</head>
<body>
<?php
if(isset($message))
{
?>
<p style="font-size:10pt; text-align: center; font-weight: bold; color: #c00; font-family: verdana;"><?php echo("". $message .""); ?></p>
<?php
}
if($afficher_form == 1)
{
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
<input type="text" name="pseudo" size="40" maxlength="256">
<input type="submit" value="Envoyer">
</form>
<?php
}
?>
</body>
</html>
Suis bien le code, j'ai viré certains trucs, ajouté d'autres, ils ont tous une raison, je te laisse le soin de les comprendre, pose des questions si tu ne trouves pas ;)
Modifié en dernier par Cyrano le 30 sept. 2005, 20:58, modifié 1 fois.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1311 Messages

30 sept. 2005, 20:54

$submit est aussi une variable envoyer par ton formulaire donc il faut faire
if(isset($_POST['submit']))

Eléphant du PHP | 333 Messages

30 sept. 2005, 21:12

ca ne fonctionne pas, il y a rien qui apparait, un page blanche, alors j'ai regarder unpeu et modifier 2 ou 3 truc sur la connection a ma BD

voici de qui a l'aire mon fichier connec.php
<?

// SERVEUR SQL
$sql_serveur="mysql";

// LOGIN SQL
$sql_user="XXXX";

// MOT DE PASSE SQL
$sql_passwd="XXXX";

// NOM DE LA BASE DE DONNEES
$sql_bdd="cellier";

?>
et voici la modif que j'ai fait, j'en ai pas fait d'autre, j'ai essayer de suivre, mais en partant je ne comprend pas pourquoi j'ai une page blanche, alors c'est peut être ma connection à la bd des le début, chose sure c'est que les config de connec.php sont ok car elle fonctionne ailleur.

        $conecter=mysql_connect($sql_serveur,$sql_user,$sql_passw)or die ("erreur de connexion");
        mysql_select_db($sql_bdd,$conecter) or die ("erreur de selection");
        $pseudoexists = "SELECT passe FROM membre WHERE pseudo='$pseudo'";
        $existence = mysql_query($pseudoexists);

es ce que j'ai bien fait, quoique ca marche quand même pas :)

Eléphant du PHP | 333 Messages

30 sept. 2005, 21:43

Allo

Mammouth du PHP | 19672 Messages

30 sept. 2005, 22:47

J'ai du mal à suivre : as-tu un message d'erreur ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 333 Messages

30 sept. 2005, 22:51

J'ai du mal à suivre : as-tu un message d'erreur ?
Non aucun message d'erreur, juste une page blanche, pas de boîte de texte, ni de sumbi, ni rien ????

Eléphant du PHP | 333 Messages

30 sept. 2005, 22:52

désolé pour le doublon, tu dis avoir touvé une erreur ???

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 sept. 2005, 23:03

test bidon mais on ne sait jamais..essai en plaçant cei dans le code au niveau du 2eme if:
echo $afficher_form;
if($afficher_form == 1)
{
...
 
et nous si la valeur de $afficher_form s'affiche (en principe 1)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 333 Messages

30 sept. 2005, 23:06

test bidon mais on ne sait jamais..essai en plaçant cei dans le code au niveau du 2eme if:
echo $afficher_form;
if($afficher_form == 1)
{
...
 
et nous si la valeur de $afficher_form s'affiche (en principe 1)
Pas certain de comprendre ou tu veux que je le place, dans la sectin php ou html ??

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 sept. 2005, 23:08

et bien tu met ceci
:arrow: echo $afficher_form;
en dehors des tests ( if ) entre apres la balise body par exemple

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute