Confirmation de token (via mail)

Par DavidRozen le 02 Février 2020 à 16:27 (Édité) 1 36

Bonjour,


j'ai un autre petit soucis au niveau de la confirmation après inscription. J'ai bien configuré le SMTP et je reçois bien le mail de confirmation, mais la page conf.php (associée à l'id & au token de la personne inscrite) me renvoie une erreur.

Apparemment la variable $valid n'est pas définie...


Le lien vers la confirmation :


<a href="http://localhost/Fitconnectboostrap/conf.php?id=' . $req['id'] . '&token=' . $token . '" target="_blank">En cliquant ici </a>


et le code php de ma page conf.php :


<?php
  session_start();


  include('DB/connexionDB.php');


  if (isset($_SESSION['id'])){
    header('Location: index.php');
    exit;
  }


  $id = (int) $_GET['id'];
  $token = (String) htmlentities($_GET['token']);
  
  if(!isset($id)){
    $valid = false;
    $err_mess = "Le lien est erroné";


  }elseif(!isset($token)){
    $valid = false;
    $err_mess = "Le lien est erroné";
  }


  if($valid){
    $req = $DB->query("SELECT id 
      FROM utilisateur 
      WHERE id = ? AND token = ?",
      array($id, $token));


    $req = $req->fetch();


    if(!isset($req['id'])){
      $valid = false;
      $err_mess = "Le lien n'est plus valide";
    }else{
      $DB->insert("UPDATE utilisateur SET token = NULL, confirmation_token = ? WHERE id = ?",
      array(date('Y-m-d H:i:s'), $req['id']));


      $info_mess = "Votre compte a bien été validé";
    }
  }


  if(isset($err_mess)){
    echo $err_mess;
  }


  if(isset($info_mess)){
    echo $info_mess;
  }
   ?>
Cette pub permet au site de vivre ...

1 commentaire

Résolu au final, y'avais de mauvais espace...


<?php
  session_start();
  require('DB/connexionDB.php');


  if (isset($_SESSION['id'])){
    header('Location: index.php');
    exit;
  }


  $id = (int) $_GET['id'];
  $token = (String) htmlentities($_GET['token']);
  
  if(!isset($id)){
    $err_mess = "Le lien est erroné";


  }elseif(!isset($token)){
    $err_mess = "Le lien est erroné";
  }


  if(true){
    $req = $DB->query("SELECT id 
      FROM utilisateur WHERE id = ? AND token = ?",
      array($id, $token));


    $req = $req->fetch();


    if(!isset($req['id'])){
      $err_mess = "Le lien n'est plus valide";
    }else{
      $DB->insert("UPDATE utilisateur SET token = NULL, confirmation_token = ? WHERE id = ?",
      array(date('Y-m-d H:i:s'), $req['id']));


      $info_mess = "Votre compte a bien été validé";
    }
  }


  if(isset($err_mess)){
    echo $err_mess;
  }


  if(isset($info_mess)){
    echo $info_mess;
  }
  
  ?>
Cette pub permet au site de vivre ...