Décrivez ici votre problème ou ce que vous cherchez à faire.
"<?php require 'includes/includes.php';
if(!empty($_SESSION['user'])){
header('location:profil.php');
}
?>
<?php
$titrepage="Mot de passe oublié || Ndameyong - L'Ecole des Langues Camerounaises" ;
require 'includes/header.php';
?>
<?php
$title = 'Mot de passe oublié';
if(!empty($_POST))
{
$post = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
extract($post);
$errors = [];
if(empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)){
array_push($errors, 'Cette email est invalide.');
}
else{
$sql = "SELECT * FROM users WHERE email=:email";
$data = [':email'];
$req = $DB->exec($sql , $data) ;
if(!$req->rowCount()){
array_push($errors, 'Cet email ne correspond à aucun membre du site.');
}
else{
$user = $req->fetch();
}
if(empty($errors))
{
$token = uniqid();
$req = $db->prepare('INSERT INTO password_resets (email, token, created_at) VALUES (:email, :token, NOW())');
$sql = 'DELETE FROM users WHERE id=:id';
$data = [':id'=>$user['id']];
$del = $DB->exec($sql , $data) ;
$req->bindValue(':email', $email, PDO::PARAM_STR);
$req->bindValue(':token', $token, PDO::PARAM_STR);
$req->execute();
$link = 'Bonjour, veuillez cliquer sur <a href="https://membres.test/reset.php?token='.$token.'">ce lien</a> pour réinitialiser votre mote de passe.';
// Create the Transport
$transport = (new Swift_SmtpTransport('smtp.mailtrap.io', 465))
->setUsername('fae489573327ac')
->setPassword('eed3d4ab64b373')
;
// Create the Mailer using your created Transport
$mailer = new Swift_Mailer($transport);
// Create a message
$message = (new Swift_Message('Mot de passe oublié'))
->setFrom(['lcorrefabien@gmail.com' => 'John Doe'])
->setTo([$email => $user->name])
->addPart($link, 'text/html');
;
// Send the message
$result = $mailer->send($message);
if($result){
$success = 'Un email vous a été envoyé avec des instructions.';
unset($email);
}
}
}
}
?>
<h2>Récupérez votre mot de passe</h2>
<?php include('messages.php');?>
<form action="forgot.php" method="post">
<div class="form-group">
<label for="email">Email</label>
<input type="email" name="email" class="form-control" placeholder="Email" value="<?= $email ?? '';?>">
</div>
<button type="submit" class="btn btn-primary">Envoyer</button>
</form>
<br>
<p><a href="login.php">Je m'en souviens en fait.</a></p>
<?php require 'includes/footer2.php'; ?>"
Ce que je veux
Je veux premettre à un utilsateur de recuperer son mot de passe via son email.
Ce que j'obtiens
j'obtiens des erreurs:
1)Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\ndameyong\Classes\Db.php on line 68
2) Fatal error: Uncaught Error: Call to a member function rowCount() on int in C:\wamp\www\ndameyong\forgot.php on line 31
( ! ) Error: Call to a member function rowCount() on int in C:\wamp\www\ndameyong\forgot.php on line 31
tu utilises exec donc il n'accepte pas mes paramètres.
C'est Location et non location pour le header, fonctionne en local mais une fois en ligne...
$db ou $DB ? faut choisir, attention à la casse
pas de rowcount sur une requête sélect comme on peut le lire sur la
Bonjour merci pour votre réponse. je rends compte ce matin que j'ai un peu mélanger mon code du coup les erreurs ne sont pas celles que j'ai mentionnées dernièrement. je vais reposter un message dans le forum avec le bon code.
Merci