Problème lors d'un email d'activation sur mon site

Résolu
arcadenaker Messages postés 62 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
récemment je me suis rendu compte que l'email d'activation qui permet de confirmer l'email ne fonctionne pas:
FICHIER 1:
<?php
session_start();
include('filters/guest_filter.php');
require('config/database.php');
require('includes/function.php');
            //je crois que le problème commence ici
	if(!empty($_GET['p']) && is_already_in_use('pseudo', $_GET['p'], 'users') && !empty($_GET['token'])){
		$pseudo = $_GET['p'];
		$errors = [];
		$token = $_GET['token'];
		$q = $db->prepare('SELECT email, password FROM users WHERE pseudo = ?');
		$q->execute([$pseudo]);
		$data = $q->fetch(PDO::FETCH_OBJ);
		$token_verif = sha1($pseudo.$data->email.$data->password);
		if($token != $token_verif){
			redirect('index.php');
		}else{
			redirect('connexion.php');
		}
	}else{
		redirect('inscription.php');
		}
?>
<html>
<head>
	<title>ERROR</title>
	<meta charset="utf-8">
	<style type="text/css">
		body{background-color: #FE0101;}
	</style>
</head>
<body>
<?php if(isset($_SESSION['notification']['message'])): ?>
 			<div class="alert alert-<?= $_SESSION['notification']['type'] ?>">
 				<h4><?= $_SESSION['notification']['message'] ?></h4>
 			</div>
<?php $_SESSION['notification'] = []; ?>
<?php endif; ?>
<a href="index.php" rel="nofollow noopener noreferrer" target="_blank">Retour vers l'acceuil </a><p>ou <a href="https://accounts.google.com" rel="nofollow noopener noreferrer" target="_blank">réessayer!</a></p>
</body>
</html>

FICHIER 2:
<!DOCTYPE html>
<html lang="fr">
<head>
	<meta charset="utf-8">
</head>
<body>
<h1>Activation de votre compte</h1>
Pour ativer et verifier votre compte, veuillez svp cliquer sur le lien ci-dessous;
<a href="<?= 'fecebok.pe.hu/activation.php?p='.$pseudo.'&token='.$token ?>">LIEN D'ACTIVATION</a>
 <div>PS: si tous c'est bien passé vous devez revenir sur la page de connection!</div>
</body>
</html>

Merci d'avance
arcadenaker

3 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,

    Commence par appliquer ceci et reviens nous voir si le souci persiste :

    1 - Met en commentaire les redirection (//..redirect('index.php'); ) le temps des tests afin de t'assurer de voir les éventuelles erreurs.

    2 - Applique ceci pour correctement voir les éventuelles erreurs PDO https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

    3 - et ça pour afficher les erreurs PHP et correctement présenter ton code : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

    0
  2. arcadenaker Messages postés 62 Statut Membre 1
     
    Bonjour,

    malgré mes tests la base de donnée fonctionne très bien et est bien en rapport avec le fichier,
    merci d'avance
    <?php
    session_start();
    include('filters/guest_filter.php');
    require('config/database.php');
    require('includes/function.php');
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    	if(!empty($_GET['p']) && is_already_in_use('pseudo', $_GET['p'], 'users') && !empty($_GET['token'])){
    		$pseudo = $_GET['p'];
    		$errors = [];
    		$token = $_GET['token'];
    		$q = $db->prepare('SELECT email, password FROM users WHERE pseudo = ?');
    		$q->execute([$pseudo]);
    		$data = $q->fetch(PDO::FETCH_OBJ);
    		$token_verif = sha1($pseudo.$data->email.$data->password);
    		if($token != $token_verif){
    			$q = $db->prepare('UPDATE users SET active = "1" WHERE pseudo = ?');
    			$q->execute([$pseudo]);
    			redirect('connexion.php');
    		
    		}else{
    			echo "Vous avez mis un mauvais url";
    		}
    	}else{
    		echo "Vous avez mis un mauvais url";
    		}
    ?>
    <html>
    <head>
    	<title>ERROR</title>
    	<meta charset="utf-8">
    	<style type="text/css">
    		body{background-color: #FE0101;}
    	</style>
    </head>
    <body>
    <?php if(isset($_SESSION['notification']['message'])): ?>
     			<div class="alert alert-<?= $_SESSION['notification']['type'] ?>">
     				<h4><?= $_SESSION['notification']['message'] ?></h4>
     			</div>
    <?php $_SESSION['notification'] = []; ?>
    <?php endif; ?>
    <a href="index.php" rel="nofollow noopener noreferrer" target="_blank">Retour vers l'acceuil </a><p>ou <a href="https://accounts.google.com" rel="nofollow noopener noreferrer" target="_blank">réessayer!</a></p>
    </body>
    </html>
    
    0
  3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, "ne fonctionne pas": message d'erreur, comportement inattendu, ?
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Sans oublié qu'il n'a pas appliqué ce qui indiqué dans les liens
      0