Page 1 sur 3
Mot de passe perdu
Posté : 30 sept. 2005, 08:41
par auclairp
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
Posté : 30 sept. 2005, 09:10
par Cyrano
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.
Posté : 30 sept. 2005, 20:32
par auclairp
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
Posté : 30 sept. 2005, 20:37
par jeff
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'];
Posté : 30 sept. 2005, 20:45
par auclairp
Je le met où.... J'ai essayer juste avant le if ($submit)
ca donne les même résultats...... désolé
Posté : 30 sept. 2005, 20:53
par Cyrano
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

Posté : 30 sept. 2005, 20:54
par jeff
$submit est aussi une variable envoyer par ton formulaire donc il faut faire
if(isset($_POST['submit']))
Posté : 30 sept. 2005, 21:12
par auclairp
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

Posté : 30 sept. 2005, 21:43
par auclairp
Allo
Posté : 30 sept. 2005, 22:47
par Cyrano
J'ai du mal à suivre : as-tu un message d'erreur ?
Posté : 30 sept. 2005, 22:51
par auclairp
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 ????
Posté : 30 sept. 2005, 22:52
par auclairp
désolé pour le doublon, tu dis avoir touvé une erreur ???
Posté : 30 sept. 2005, 23:03
par Truc
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)
Posté : 30 sept. 2005, 23:06
par auclairp
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 ??
Posté : 30 sept. 2005, 23:08
par Truc
et bien tu met ceci

echo $afficher_form;
en dehors des tests ( if ) entre apres la balise body par exemple