Sur mon projet je souhaite comparer le mail et le token pour valider l'inscription d'un membre.
J’envoie un mail (avec token dans url) avec un lien au nouveau inscrit quand il clic dessus cela le renvoi sur une page ou il doit rentrer son mail.
Suite au token je veux comparer le token en base via le mail et le token recu par url mais je ne parviens pas a récupérer les infos de l'utilisateur......
Pourriez-vous m'aider ?
Voici mon code (mon début) :
Mon controller :
ma vue ://Démarrer une nouvelle session
session_start();
require_once(dirname(__FILE__).'/../publics/utils/database.php');
require_once(dirname(__FILE__).'/../publics/utils/regex.php');
require_once(dirname(__FILE__).'/../models/Utilisateur.php');
$code = trim(filter_input(INPUT_GET, 'code', FILTER_SANITIZE_NUMBER_INT));
$token = filter_input(INPUT_GET, 'token', FILTER_SANITIZE_STRING);
$inscription = filter_input(INPUT_GET, 'inscription', FILTER_SANITIZE_STRING);
$mailInfoGet = filter_input(INPUT_POST, 'mail', FILTER_SANITIZE_STRING);
if((!empty($token)) && $inscription === 'inscription'){
$code = 8;
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if((!empty($token)) && $inscription === 'inscription'){
var_dump($token);
die;
$utilisateur = new Utilisateurs();
$infoUtilisateur = $utilisateur->findOne($mailInfoGet);
var_dump($infoUtilisateur);
die;
// $utilisateur = new Utilisateurs();
// $thisUtilisateur = $utilisateur->validerMail($token);
// $code = 7;
} else {
$code =4;
}
}
include(dirname(__FILE__).'/../views/neutreConnexion.php');
Code : Tout sélectionner
<?php
ob_start();
?>
<!-- Debut code message erreur -->
<div class="container">
<div class="row justify-content-center my-5">
<?php if($code) :?>
<div class="col-10 text-center h5 alert mt-3 <?= $messageCode[$code]['type'] ?>">
<?= $messageCode[$code]['msg'] ?>
</div>
<?php endif ?>
</div>
</div>
<!-- Fin code message erreur -->
<div class="container">
<div class="row justify-content-center">
<div class="col-10 col-lg-8">
<form action="<?=htmlspecialchars($_SERVER['PHP_SELF']).'?token='.$token.'&inscription='.$inscription?>" method="post">
<div class="col-8 input-group">
<div class="input-group-text iconesConnexionInscription">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-envelope" viewBox="0 0 16 16">
<path d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1H2zm13 2.383-4.758 2.855L15 11.114v-5.73zm-.034 6.878L9.271 8.82 8 9.583 6.728 8.82l-5.694 3.44A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.739zM1 11.114l4.758-2.876L1 5.383v5.73z"/>
</svg>
</div>
<input type="email"
class="persoConnexionInscription form-control"
placeholder="Mail*"
name="mail"
id="mail"
value="<?= htmlentities($_POST['mail'] ?? '', ENT_QUOTES, 'UTF-8')?>"
required>
</div>
<div class="error mb-3"><?= htmlentities($error['mail'] ?? '', ENT_QUOTES, 'UTF-8')?></div>
</form>
<div class="d-flex justify-content-start">
<p>* Champs obligatoire</p>
</div>
<div class="d-flex justify-content-end">
<div class="text-center mb-3"><button type="submit" name="validation" value="2" class="btn btn-success">Valider</button></div>
</div>
</div>
</div>
</div>
<?php
$content = ob_get_clean();
$titlePage = 'Message';
$metaDescription ="";
$metaKeywords ="";
$title = 'Message';
$page = 'Connexion';
include(dirname(__FILE__).'/templates/template.php');
?>
Code : Tout sélectionner
<?php
require_once(dirname(__FILE__).'/../publics/utils/database.php');
class Utilisateurs
{
private $id;
private $mail;
private $pseudo;
private $mdpc;
private $status;
private $role;
private $token;
private $effacer;
private $reinit;
private $actif;
private $pdo;
//Methode magique pour hydraté l'objet
public function __construct($id = NULL, $mail = NULL, $pseudo = NULL, $mdpc = NULL, $status = NULL, $role = NULL, $token = NULL, $effacer = NULL, $reinit= NULL, $actif= NULL)
{
$this->id = $id;
$this->mail = $mail;
$this->pseudo = $pseudo;
$this->mdpc = $mdpc;
$this->status = $status;
$this->role = $role;
$this->token = $token;
$this->effacer = $effacer;
$this->reinit = $reinit;
$this->actif = $actif;
$this->pdo = Database::getInstance();
}
function __set($property, $value)
{
$this->$property = $value;
}
public function findOne($mail)
{
$sql = 'SELECT `id`, `mail`, `pseudo`, `mdpc`,`status`, `role`, `token`, `effacer`, `reinit`, `actif` FROM `utilisateurs` WHERE `mail`= :mail;';
$req = $this->pdo->prepare($sql);
$req->bindValue(':mail',$this->mail,PDO::PARAM_STR);
try {
if($req->execute()) {
return $req->fetch(PDO::FETCH_OBJ);
}
} catch (PDOException $ex) {
return false;
}
}
@+ Filou