IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

validation d'une inscription


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 506
    Billets dans le blog
    1
    Par défaut validation d'une inscription
    Bonjour,

    j'ai actuellement un formulaire html qui permet une inscription, puis qui envoie un mail pour valider l'inscription ; l'utilisateur doit cliquer sur le lien du mail pour valider l'inscription. Donc, quand il clique, ça lance une requête vers MySQL qui est censée mettre à 1 un champ "valide". Mais évidemment, je ne voudrais le faire que pour cet utilisateur ; il existe bien un champ "pseudo", mais quand l'utilisateur clique, la page appelée n'a pas cette information : comment faire ?

  2. #2
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bonjour,

    La méthode "classique" consisterait à générer un token aléatoire (jeton) stockée dans la BDD lors de l'inscription de l'utilisateur et de passer celui-ci en paramètre de la page de validation. Une fois la validation effectuée, on pourra supprimer le token de la BDD Ainsi tu n'as pas besoin de transmettre le pseudo de l'utilisateur, et on a juste un token aléatoire à envoyer

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 506
    Billets dans le blog
    1
    Par défaut
    J'ai opté pour une méthode non-classique (en fait la continuité de mon idée), mais ça coince et je ne comprends pas pourquoi ; de la page "action" du formulaire d'inscription, on connaît le pseudo (il vient d'être saisi) ; comme l'envoi du mail doit se faire depuis un autre serveur (apparemment, l'envoi de mail est impossible chez Free (du moins pour moi)), j'envois toutes les infos pour faire ce mail à l'autre serveur via une iframe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <iframe frameborder=0 src="http://---/mail.php?dest=<?=$destinataire?>&sujet=<?=$Subject?>&pseudo=<?=$pseudo?>&message=<?=$mail_texte?>&url=<?=$mail_URL?>&em=<?=$mailemetteur?>" ></iframe>
    et ensuite, depuis cet autre serveur, on est censé envoyer le mail qui permettra de valider l'inscription :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php 
    $destinataire = $_GET['dest'];
    $sujet =$_GET['sujet'];
    $texte = $_GET['message'];
    $url=$_GET['url'];
    $em=$_GET['em'];
    $pseudo=$_GET['pseudo'];
    echo 'pseudo ds page confirmation :'.$pseudo.'<br>';
    $message="Pour confirmer votre inscription, veuillez cliquer sur ce mail : <a href=".$url."?pseudo=".$pseudo.">".$texte."</a>";
     
       $headers  = "MIME-Version: 1.0 \n";
       $headers .= "Content-type: text/html; charset=iso-8859-1 \n";
       $headers .= "From: ".$em."  \n";
       $headers.='Reply-To: '.$em. "\r\n";
     
    mail($destinataire,
         $sujet,
         $message,
         $headers);
    ?>
    Le petit problème, c'est que sur la page d'envoi du mail (mail.php), la variable $pseudo est vide ; pourquoi ?

  4. #4
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Par défaut
    Salut

    Alors avant de continuer dans ta méthode, autant t'annoncer que ta méthode perd tout l'intéret de base, c'est à dire vérifier la validité de l'email.

    En effet, si il suffit du pseudo pour valider une inscription, une fois la page cible repérée, rien ne m'empêche de m'inscrire avec une adresse bidon et de ne pas me servir du lien dans le mail pour activer mon compte

    La méthode de supersnail est donc bien meilleure. Quand tu insères ton membre en BDD, tu lui génères une clé (token) unique. et c'est cette clé que tu envoies dans ton mail

    Ainsi, sur ta page de vérification, tu cherches le membre qui a la clé passée en paramètre et tu le passes en actif (penses à supprimer la clé au passage)

    Ainsi, il est impossible de bypasser ton système de vérification

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 506
    Billets dans le blog
    1
    Par défaut
    OK, compris ; donc j'essaye de suivre ton conseil, puis j'en rendrai compte ici (ce soir ou demain)

  6. #6
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    OK, compris ; donc j'essaye de suivre ton conseil, puis j'en rendrai compte ici (ce soir ou demain)
    Oki pas de soucis

    Par contre ça m'étonne pour ton problème d'envoi de mail pour Free, il me semble que Free autorise l'envoi de mails ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Valider ou refuser une inscription d'un formulaire
    Par OG__fenomeno dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/06/2013, 16h55
  2. Envoi d'un e-mail validant une inscription
    Par midnnight dans le forum Langage
    Réponses: 3
    Dernier message: 18/12/2008, 18h30
  3. Réponses: 5
    Dernier message: 28/04/2005, 10h38
  4. Récupération de données validées dans une pop-up
    Par hdd dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/12/2004, 16h47
  5. [C#] Validation d'une form
    Par royrremi dans le forum ASP.NET
    Réponses: 3
    Dernier message: 31/05/2004, 22h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo