[Résolu] [PHP] Email de confirmation

WRInaute occasionnel
Salut a tous,

ca fait une bonne heure que je recherche une fonction simple qui me permettrait de crypter/decrypter une chaine a integrer dans un mail de confirmation d'inscription.

Pour etre plus clair, par ex un nouvel utilisateur s'inscrit en filant son email, et je lui envoie un mail de confirmation avec une url a cliquer pour confirmer son inscription. Cette url serait du type www.monsite.com/confirmation.php?email=toto@toto.com ; ce que je veux c'est faire passer toto@toto.com en crypté pour eviter qu'un petit malin s'amuse a inscrire n'importe qui.

Donc je cherche une fonction php qui me permet de crypter simplement toto@toto.com, pour que l'url devienne www.monsite.com/confirmation.php?cle=12 ... 3u2h5iu34h

et a la sortie je decrypte le parametre cle -> toto@toto.com pour l'ajouter a ma bdd.

Bref je ne sais pas si je suis tres clair, mais si qqun a compris pourrait-il (elle) me filer un coup de main ?

Merci d'avance !
 
WRInaute passionné
passe par md5() :

Perso lors d'une inscription je demande
- mail
- pseudo

je génère automatiquement
- login
- pass

je rentre les 4 dans ma base en cryptant le pass avec la fonction php md5()

J'envoie un mail pour activation en précisant le login, le pass (non crypté), et avec une url du type :
monsite.com/activate.php?id=****le résultat de la fonction md5($pass)********

lors de l'acces à cette url :
- j'identifie le membre gràce au parametre id
- je passe la colonne d'activation à 1
- je supprime toutes les inscriptions de plus de 24 heures non activées

pour les login ultérieurs, il suffit de crypter le pass fourni et de le comparer au pass de la base.

Clair ??
 
Nouveau WRInaute
bonjourr "jeroen"
stpp j'ai vraiment besoin de ton aide , dans le cadre de mon projet tutoré , il faut que je mette en place exactment ce que tu viens de dire : envoie automatique du mail , en génerant un mot de passe aléatoir stocké dans la BDD "crypté" et puis l'activation par l'URl ....
mercii de bien vouloir m'aider ....
 
WRInaute accro
lahlou90 a dit:
en génerant un mot de passe aléatoir stocké dans la BDD "crypté" et puis l'activation par l'URl ....
mercii de bien vouloir m'aider ....
Bon comme je viens juste de me coder ca ... (même pas encore lancé une fois donc à vérifier) :

Code:
<?
global $new_password;
$alphabet="abcdefghijklmnopqrstuvwxyz0123456789"; // chaine de 36 caractres
$new_password="";
$indice=0;
for ($indice=0; 8; $indice++) // mot de passe de 8 caracteres
    {
       $rang = rand (0,35)
       $new_password=$new_password.substr($alphabet, $rang, 1)		
    }
      echo 	$new_password;						
?>

On doit pouvoir remplacer le substr par un accet direct à l'octet voulu mais j'ai plus la syntaxe en tête (je debut)

derrier tu colles un md5 ($new_password) et le tour est joué.
 
Nouveau WRInaute
euh ouéé ça pour générer un mot de pass aléatoire c bon merci
mais la mon soucis c que j'arrive pas a envoyer un mail automatique après l'inscpriton du membre
voici une partie de mon code :

<?php
//On initialise les variables
//$destinataire = "personne@qui_recevra_le_mail.com";
$objet = "Premier test";
$objet = "Premier test";
$message = "C’est un premier test d’envoi d’un email en php.\n" ;
$message .= "Ceci est la forme la plus simple de l’emploi de la fonction mail() \n";

// On envoi l’email
if (@mail($_POST["email"], $sujet, $message) ){
echo "Envoi du mail réussi.";
}
else{
echo "Echec de l’envoi du mail.";
}
?>

ça jlé inclus juste après el bouton envoyer dc après linscrption koi
prière de me répondre :)
merciii
 
WRInaute passionné
essaie ça

<?php
mail("ton@email.com","test","ça marche !");
?>

et si ça marche, fais un echo de tes différentes variables avant l'envoi, pour voir si elles existent bien.
 
Nouveau WRInaute
en fait j'avais essayer ça , mais ça genère une erreur

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\...\envoie.php on line 12
la line 12 la ou ya mail(......);
 
Nouveau WRInaute
oui oui en local et jé bien vérifier le fichier php.ini dc smtp = localhost et le port 25 biensur
je travaille avec "wampserver"
 
Discussions similaires
Haut