Impossible d'activer mon compte en local [Résolu]

Signaler
-
Messages postés
28896
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 juillet 2020
-
salut,
je me debute en Php. Depuis peu j'ai entreprit de créer un site e-commerce sous wampserver question de m'exercer en php. Tout allait bien mais depuis je bute je ne parviens pas à activer mon compte en local après avoir rempli le formulaire.. Cependant j'envoi des mails en local (Un e-mail a été envoyé a votre méssagerie avec des instructions pour activer votre compte) en cliquant sur le lien d'activation je reçois (The requested URL /ehop-final/activate.php was not found on this server.).

1 réponse

Messages postés
28896
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 juillet 2020
2 599
Bonjour,

Pas très claire ta question.........

Donc, ton souci concerne un souci avec le langage PHP.
Je déplace donc ta question dans le bon forum.

Et visiblement... vu le "message d'erreur"... il semble simplement que l'url qui se trouve dans ton mail ne soit pas complète.
Il manque le "domaine" de ton site.... ( à minima, vu que tu es en local.... http://localhost/ " ) ( à moins que tu n'aies mis en place des virtualHosts

Si tu veux plus d'aide, pense à nous partager ton code en utilisant les BALISES DE CODE.
Explications ( à lire ENTIEREMENT ! ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

PS: Je t'invite également à lire et à appliquer les conseils suivants pour écrire ton code :
http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

.


.

rebjr
merci pour vos explications voila le lien de mon site en local (http://localhost/shop/activate.php?token=49ae07ec1ba6bf4fe2468f014260e99b9f63876f&email=napyconcept%40gmail.com


<?php require 'includes/includes.php';
require 'includes/header.php';
?>
<?php
if(!empty($_POST)){

if(!empty($_POST['password']) && ( filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ) ){

$email= addslashes($_POST['email']);
// modifier sha1 par Auth::hashPassword();
$password = sha1($_POST['password']);

$token = sha1(uniqid(rand()));

$nom=addslashes($_POST['nom']);
$adresse = addslashes($_POST['adresse']);
$ville = addslashes($_POST['ville']);
$codepostale =addslashes($_POST['codepostale']);

$reponse = $DB->uniqueEmail($email);

if($reponse !=0){
$_SESSION['erreur'] = "Adresse email déja utilisée par un membre.";
}else{

$data = array(
'nom'=>$nom,
'email'=>$email,
'password'=>$password,
'token'=>$token,
'adresse'=>$adresse,
'ville'=>$ville,
'codepostale'=>$codepostale
);
$sql ='INSERT INTO users (nom,email,password,token,adresse,ville,codepostale) VALUES(:nom,:email,:password,:token,:adresse,:ville,:codepostale)';
$req= $DB->insert($sql,$data);

//envoi d'email.
$mail_to =$email;
$mail_subject =" Validation de votre compte !!";
$headers = "From : hypernapy.com\r\n";
$headers.="Reply-To:***@*** \r\n";
$headers.="MIME-Version 1.0\r\n";
$headers.="Content-type: text/html;charset=utf-8\r\n";
$mail_body ='Bonjour <br/> Veuillez ciquer sur <a href="http://localhost/shop/activate.php?token='.$token.'&email='.$email.'"> le lien </a>pour activer votre compte ';

if(mail($mail_to,$mail_subject,$mail_body,$headers)){
$_SESSION['message'] = " Un émail a été envoyé a votre méssagerie avec des instructions pour activer votre compte ";
unset($_POST);
}else{
$_SESSION['erreur'] = "Un problème est survenu lors de l'envoi d'email !.";
}
}

}else{
if(empty($_POST['password'])){
$erreur_password ='Un mot de passe est requis !.';
$_SESSION['erreur'] = ' Veuillez corriger les érreurs .';
}

if(empty($_POST['email'])){
$erreur_email ='Le champs email est requis !';
$_SESSION['erreur'] = ' Veuillez corriger les érreurs .';
}else
if(!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ){
$erreur_email ='Adresse Email non valide !';
$_SESSION['erreur'] = ' Veuillez corriger les érreurs .';
}
}
}

?>

<!-- message de session -->
<?php if (isset($_SESSION['message'])): ?>
<div class="message"> <?php echo $_SESSION['message']; ?></div>
<?php unset($_SESSION['message']) ?>
<?php endif ?>
<?php if (isset($_SESSION['erreur'])): ?>
<div class="errorMessage"> <?php echo $_SESSION['erreur']; ?></div>
<?php unset($_SESSION['erreur']) ?>
<?php endif ?>

<!-- formulaire d'inscription -->

<form action="signup.php" method="post" id="signup">

<h2>Inscription</h2>
<fieldset>
<p>
<label for="nom">Nom :</label>
<input type="text" name="nom" id ="nom" value="<?php echo isset($_POST['nom'])?$_POST['nom']:''; ?>">
</p>
<p>
<label for="email" class="required">Email :</label>
<input type="email" name="email" id ="email" value="<?php echo isset($_POST['email'])?$_POST['email']:''; ?>">
</p>

<?php if (!empty($erreur_email)): ?>
<div class="error"><?php echo $erreur_email; ?></div>
<?php endif ?>

<p>
<label for="password" class="required">Mot de passe :</label>
<input type="password" name="password" id ="password">
</p>
<?php if (!empty($erreur_password)): ?>
<div class="error"><?php echo $erreur_password; ?></div>
<?php endif ?>


</fieldset>
<fieldset>
<p>
<label for="adresse">Adresse :</label>
<input type="text" name="adresse" id ="adresse" value="<?php echo isset($_POST['adresse'])?$_POST['adresse']:''; ?>">
</p>
<p>
<label for="ville">Ville :</label>
<input type="text" name="ville" id ="ville" value="<?php echo isset($_POST['ville'])?$_POST['ville']:''; ?>">
</p>
<p>
<label for="codepostale">Code postale :</label>
<input type="text" name="codepostale" id ="codepostale" value="<?php echo isset($_POST['codepostale'])?$_POST['codepostale']:''; ?>">
</p>


</fieldset>
<div class="clearfix"></div>
<p class="information">* Champs requis</p>
<p>
<input type="submit" value ="S'inscrire">
</p>
</form>

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




...............................................................................................................................

et voila le code source de la page activate.php

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

<?php
if(!empty($_GET) && isset($_GET['token']) && isset($_GET['email']) ){

$token = $_GET['token'];
$email = $_GET['email'];

$q = array(
'email'=> $email,
'token'=> $token
);
$sql= 'SELECT email,token from users where email=:email AND token=:token';
$reponse = $DB->query($sql,$q);

if(!empty($reponse)){

$q = array(
'email'=> $email,
'active'=> '1'
);
$sql= 'SELECT email,active from users where email=:email AND active=:active';
$rep = $DB->query($sql,$q);
if($rep){
// deja actif
$messageErreur ='Utilisateur déja actif !.';
}else{
// activer le compte
$sql = 'UPDATE users SET active=:active WHERE email=:email';
$DB->insert($sql,array('email'=>$email,'active'=>1));
$message ='Votre compte est activé avec succés .';
}

}else{
//user inconnu
$messageErreur ='Utilisateur inconnu dans notre base !.';
}
}else{
header('location:index.php');
}
?>
<?php if (isset($message)): ?>
<div class="message"> <?php echo $message; ?></div>
<?php endif ?>

<?php if (isset($messageErreur)): ?>
<div class="errorMessage"> <?php echo $messageErreur; ?></div>
<?php endif ?>
<p>
<a href="index.php"> Retour à l'acceuil du site</a>
</p>
<?php require 'includes/footer.php'; ?>
Messages postés
28896
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 juillet 2020
2 599 > janyduchemin
Comme indiqué dans mon précédent message, merci de poster ton code en utilisant les BALISES DE CODE (et en y précisant le langage afin d'avoir la coloration syntaxique, l'indentation et la numérotation des lignes)
Pour rappel

Explications ( à lire ENTIEREMENT ! ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code