Probleme de clé d'activation

Petit nouveau ! | 1 Messages

04 déc. 2007, 21:53

Bonjour,
Je suis actuelement en cours de conception de mon site...je developpe la parti connection du client...l'inscription ce passe très bien et un email de confirmation et bien envoyé avec la clé d'activaton...mon souci c'est c'est que la clé n'est pas vu comme un lien (dans le mail) il faut que je la copie dans ma barre d'adresse mais cela ne valide pas mon compte....
Je vous donne le lien de la page ou vous pourrez tester tout ce que je viens de vous dire: http://www.ink-francetoner.com/espaceme/index.php

Si quelqu'un pouvait m'aider car je mouline dessus depuis 5 jours !!!

Je vous met aussi le code de la page qui doit envoye le mail :
<?php
session_start(); //On demarre une session parce que j'ai envi ^^
require("conf.php3"); //On insert le fichier qui contient les informations

$mail = htmlentities($_POST['mail']);

    if (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail)) //Verifie que l'email entrée n'est pas une fausse.
    {
		$chaine = "abcdefghijklmnopqrstuvwxyz0123456789"; 
		$confirm = str_shuffle($chaine); //On créé le code de confirmation
		
		$pseudo = htmlentities($_POST['pseudo']); //On recupère les infos
		$mdp = htmlentities($_POST['mdp']);
		$verif_mdp = htmlentities($_POST['verif_mdp']);
		$nom = htmlentities($_POST['nom']);
		$prenom = htmlentities($_POST['prenom']);
		$website = htmlentities($_POST['website']);
		$pays = htmlentities($_POST['pays']);
		$born = htmlentities($_POST['born']);
		
		/*On Fait la variable contenant le mail de confirmation*/
	
		$message1 = '<html><body>Bonjour ' . $pseudo . ' et bienvenue sur ' .$nom_site. '.</br>'; 
		$message1 .= '</br>';
		$message1 .= 'Vous venez de vous inscrire et nous sommes heureux<br>de pouvoir vous compter aujourd\'hui parmi nos clents.<br>'; 
		$message1 .= 'Voici un rappel de vos identifiants, notez les précieusement :  <br>';
		$message1 .= 'Votre Pseudo : ' . $pseudo .'.<br>';
		$message1 .= 'Votre Mot de passe: ' . $mdp .'.<br><br>';
		$message1 .= 'Votre Mail: ' . $mail .'.<br><br>';
		$message1 .= 'Votre Nom: ' . $nom .'.<br><br>';
		$message1 .= 'Votre Prenom: ' . $prenom .'.<br><br>';
		$message1 .= 'Votre Pays: ' . $pays .'.<br><br>';
		$message1 .= 'Votre Site Web ' . $website .'.<br><br>';
		$message1 .= 'Votre Date de naissance: ' . $born .'.<br><br>';									
		$message1 .= 'Si vous souhaitez changer vos informations, rendez-vous dans votre compte pour les mettre à jour.<br>';
		$message1 .= 'Votre Clé d\'activation:<br>';
   		$message1 .= '' .$url_script. '/confirm.php?login=' . str_replace(' ','%20',$pseudo) . '&confirm=' . $confirm . '<br><br>';
		$message1 .= 'A très bientôt sur le site!<br>L\'équipe de ' .$nom_site. '.<br><a href="' .$url_site. '">' .$nom_site. '</a>';

		$sql = connect_sql(); //On se connecte à MySQL
		
		$verification = mysql_query("SELECT COUNT(*) FROM pdf_membre WHERE pseudo='$pseudo' OR mail='$mail'") or die (mysql_error());
		$donnees = mysql_fetch_array($verification)or die (mysql_error());

		if($donnees['COUNT(*)'] >= 1) //On verifie que le pseudo n'existe pas déjà
		{ 
			$reponse = 'Le pseudo ou l\'email est déjà utilisé, merci d\'en choisir un(e) autre. <a href="javascript:history.back(1)">Retour au formulaire</a>';
		}
		else
		{	
			if( empty($pseudo) || empty($mdp) || empty($verif_mdp) || empty($mail) || empty($nom) || empty($prenom) || empty($born)) //On verifie que les variables précédentes ne soient pas vide
			{
				$reponse = 'Un ou plusieurs champs ne sont pas remplis, <a href="javascript:history.back(1)">Retour au formulaire</a>';
			}
			elseif( $mdp != $verif_mdp) //On verifie que les 2 pass sont identiques
			{
				$reponse = 'Les mots de passe ne sont pas identiques, <a href="javascript:history.back(1)">Retour au formulaire</a>';
			}
			else //Si tout est bon on entre les données dans la BDD et on envoye le mail
			{
				mysql_query("INSERT INTO pdf_membre VALUES ('','$pseudo', '$mdp', '$mail', '$confirm', '$nom', '$prenom', '$pays', '$born', '$website')");
				$reponse = 'Bravo, vous êtes maintenant inscrit sur ' .$nom_site. '. <br>Vous allez recevoir un e-mail pour activer votre compte. <br><a href="' .$url_site. '">Retour à l\'Accueil</a>';
				$entete = "MIME-Version: 1.0\r\n";
				$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
				$entete .= "From: <$email_admin>\r\n";
				$entete .= "Reply-To: $email_admin\r\n";
				mail($mail,'Bienvenue sur ' .$nom_site. ' ' . $login .'.' , $message1, $entete);
			}
		}
		
		mysql_close($sql); //On se deconnecte
	}
	else //Reponse si l'adresse e-mail est une fausse
	{
		$reponse = 'Votre adresse e-mail "' . $mail . '" n\'est pas correcte. <a href="javascript:history.back(1)">Retour au formulaire</a>';
	} 	




?>

<html>
<body>
<? echo $reponse; ?>
<!-- On affiche la reponse de tout le code du dessus -->
</body>
</html>

Merci d'y jeter un oeil et de me dire ou est l'erreur....

Très cordialement

Stephane

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

04 déc. 2007, 22:09

Modération :
steplessis, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

04 déc. 2007, 22:09

Et si tu mettais un <a> autour de ton lien dans le mail ?

De plus, je ne vois pas pourquoi tu remplaces les espaces par des %20 dans ton url, sachant que cette variable est déjà pseudo encodée
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer