PHP

Confirmation de token (via mail)

Résolu

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;
  }
   ?>
663 vues
02 février 2020 à 16:27 (Édité)
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 ...