Résolu Pourquoi je ne recoit aucun token ?

Statut
N'est pas ouverte pour d'autres réponses.

Neziics'

Membre
Inscription
28 Mai 2014
Messages
1 513
Réactions
347
Points
1 466
RGCoins
25
Salut tout le monde,je crée ce topic afin de vous faire parvenir mon problème:aroundje suis actuellment cette vidéo: , et mon problème est que Quand je m'inscrit sur ma page register.php tout ce passe bien(utilisateur et token créés dans la bdd) mais je ne voit pas mon token quand je clique sur le bouton "je m'inscrit" et on ne m'envoit rien sur mon adrresse GMAIL.
Et j'aimerais vous demander comment remédier à ce problème ?
Voici Le Code De "register.php" :
PHP:
<?php require_once 'inc/functions.php';


if(!empty($_POST)){
  
  
   $errors = array();
   require_once'inc/db.php';
   if(empty($_POST['username']) || !preg_match('/^[a-zA-Z0-9_-]+$/',$_POST['username'])) {
     $errors['username'] = "Vôtre pseudo n'est pas valide";
   } else{
     $req = $pdo->prepare('SELECT id FROM users WHERE username = ?');
     $req->execute([$_POST['username']]);
     $user = $req->fetch();
    
     if($user){
       $errors['username'] = "Ce pseudo est déjà utilisé !";
    
     }
   }
  
   if(empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
     $errors['email'] = "Votre Email n'est pas valide !";
   }else{
     $req = $pdo->prepare('SELECT id FROM users WHERE email = ?');
     $req->execute([$_POST['email']]);
     $user = $req->fetch();
     if($user){
       $errors['email'] = "Cet email est déjà utilisé !";
     }
   }

   if(empty($_POST['password']) || $_POST['password'] != $_POST['password_confirm'])
   {
     $errors['password'] = "Vous devez entrer un mot de passe valide";
   }
  
   if(empty($errors)){

  // On enregistre les informations dans la base de données
  $req = $pdo->prepare("INSERT INTO users SET username = ?, password = ?, email = ?, confirmation_token = ?");
  // On ne sauvegardera pas le mot de passe en clair dans la base mais plutôt un hash
  $password = password_hash($_POST['password'], PASSWORD_BCRYPT);
  // On génère le token qui servira à la validation du compte
  $token = str_random(60);
  $req->execute([$_POST['username'], $password, $_POST['email'], $token]);
  $user_id = $pdo->lastInsertId();
  // On envoit l'email de confirmation
  mail($_POST['email'], 'Confirmation de votre compte', "Afin de valider votre compte merci de cliquer sur ce lien\n\nhttp://127.0.0.1/Site/EspaceMembre/confirm.php?id=$user_id&token=$token");
  // On redirige l'utilisateur vers la page de login avec un message flash
  $_SESSION['flash']['success'] = 'Un email de confirmation vous a été envoyé pour valider votre compte';
  header('Location: login.php');
  exit();

}
}

?>


<html>

<?php
require 'inc/header.php';
?>

<meta charset="utf-8">
<h1>S'Inscrire</h1>
<br/>

<?php if(!empty($errors)):?>
<div class="alert alert-danger">
<p> Vous N'avez pas Rempli le forumulaire correctement </p>
<ul>
<?php foreach($errors as $error): ?>

<li> <?= $error; ?></li>

<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<form action="" method="POST">

<div class="form-group">
<label for="">Pseudo</label>
<input type="text" name="username" id="username" class="form-control" />
</div>

<div class="form-group">
<label for="">Email</label>
<input type="text" name="email" id="email" class="form-control"/>
</div>

<div class="form-group">
<label for="">Mot de passe</label>
<input type="password" name="password"  id="password" class="form-control"/>
</div>

<div class="form-group">
<label for="">Confirmez Vôtre Mot de passe</label>
<input type="password" name="password_confirm"  class="form-control"/>
</div>
<button type="submit" class="btn btn-primary">S'Inscrire</button>


<?php require 'inc/footer.php';
?>

Voci Maintenant le code confirm.php
PHP:
<?php

require 'inc/header.php';
$user_id = $_GET['id'];
$token = $_GET['token'];
require 'inc/db.php';
$req = $pdo->prepare('SELECT token FROM users WHERE id = ?');
$req->execute([$user_id]);
$user = $req->fetch();
session_start();

if($user && $user->token == $token ){
  $pdo->prepare('UPDATE users SET token = NULL, confirmed_at = NOW() WHERE id = ?')->execute([$user_id]);
  $_SESSION['flash']['success'] = 'Votre compte a bien été validé';
  $_SESSION['auth'] = $user;
  die('Ok');
}else{
  $_SESSION['flash']['danger'] = "Ce token n'est plus valide";
  die('Non');
}
Et le code de functions.php
PHP:
<?php

require 'inc/header.php';
$user_id = $_GET['id'];
$token = $_GET['token'];
require 'inc/db.php';
$req = $pdo->prepare('SELECT token FROM users WHERE id = ?');
$req->execute([$user_id]);
$user = $req->fetch();
session_start();

if($user && $user->token == $token ){
  $pdo->prepare('UPDATE users SET token = NULL, confirmed_at = NOW() WHERE id = ?')->execute([$user_id]);
  $_SESSION['flash']['success'] = 'Votre compte a bien été validé';
  $_SESSION['auth'] = $user;
  die('Ok');
}else{
  $_SESSION['flash']['danger'] = "Ce token n'est plus valide";
  die('Non');
}

Si vous savez comment remédier à ça,
SVP dites le moi (Je suis novice donc si vous pouviez me dire quel est l'éventuel code que je dois mettre et à quel endroit ?

Merci
 

Florian.

Premium
Inscription
8 Août 2012
Messages
4 251
Réactions
1 220
Points
14 353
RGCoins
0
Ton mail ma l'air bizar tien une video qui je pense pourrais t'aider voir même résoudre ton probleme elle dure que 17minutes par apport a Grafikart qui dure des heures x)
 

Neziics'

Membre
Inscription
28 Mai 2014
Messages
1 513
Réactions
347
Points
1 466
RGCoins
25
Ton mail ma l'air bizar tien une video qui je pense pourrais t'aider voir même résoudre ton probleme elle dure que 17minutes par apport a Grafikart qui dure des heures x)
au début je suivait son tuto,mais j'avait des pb d'accolades(c'est quoi son editeur à lui ?))
 

Florian.

Premium
Inscription
8 Août 2012
Messages
4 251
Réactions
1 220
Points
14 353
RGCoins
0
tien c'est cadeau

PHP:
<?php
$user_id = 'test';
$token = 1513131415441;
$mail = '[email protected]';


     $to      = $mail;
     $subject = 'Le sujet osef';
     $message = 'Bonjour ! voici votre code de confirmation https://floriandubois.fr/cofirm.php?user_id='.$user_id.'&token='.$token.'';
     $headers = 'From: [email protected]' . "\r\n" .
     'Reply-To: [email protected]' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();

     mail($to, $subject, $message, $headers);
 ?>
 

Neziics'

Membre
Inscription
28 Mai 2014
Messages
1 513
Réactions
347
Points
1 466
RGCoins
25
tien c'est cadeau

PHP:
<?php
$user_id = 'test';
$token = 1513131415441;
$mail = '[email protected]';


     $to      = $mail;
     $subject = 'Le sujet osef';
     $message = 'Bonjour ! voici votre code de confirmation https://floriandubois.fr/cofirm.php?user_id='.$user_id.'&token='.$token.'';
     $headers = 'From: [email protected]' . "\r\n" .
     'Reply-To: [email protected]' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();

     mail($to, $subject, $message, $headers);
?>
J'ai rien compris X)
 

Florian.

Premium
Inscription
8 Août 2012
Messages
4 251
Réactions
1 220
Points
14 353
RGCoins
0
J'ai rien compris X)
:o c'est un systeme de mail basique,

PHP:
<?php


     $to      = $_POST['email'];
     $subject = 'Le sujet osef';
     $message = 'Bonjour ! voici votre code de confirmation https://floriandubois.fr/cofirm.php?user_id='.$user_id.'&token='.$token.'';
     $headers = 'From: [email protected]' . "\r\n" .
     'Reply-To: [email protected]' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();

     mail($to, $subject, $message, $headers);
?>

Remplace par tes infos normalement sa devrait fonctionner la
 

Neziics'

Membre
Inscription
28 Mai 2014
Messages
1 513
Réactions
347
Points
1 466
RGCoins
25
:o c'est un systeme de mail basique,

PHP:
<?php


     $to      = $_POST['email'];
     $subject = 'Le sujet osef';
     $message = 'Bonjour ! voici votre code de confirmation https://floriandubois.fr/cofirm.php?user_id='.$user_id.'&token='.$token.'';
     $headers = 'From: [email protected]' . "\r\n" .
     'Reply-To: [email protected]' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();

     mail($to, $subject, $message, $headers);
?>

Remplace par tes infos normalement sa devrait fonctionner la
Je met ton code à quel endroit ?
 

Florian.

Premium
Inscription
8 Août 2012
Messages
4 251
Réactions
1 220
Points
14 353
RGCoins
0
Statut
N'est pas ouverte pour d'autres réponses.
Haut