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

PHP & Base de données Discussion :

Inscription/Confirmation/Code confirmation incorrect


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Artisan
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 46
    Par défaut Inscription/Confirmation/Code confirmation incorrect
    Bonjour,
    Je viens vers vous car j'ai une erreur que je n'arrive pas a trouver. J’espère avoir respecter les règles du forum et surtout avoir poster au bon endroit...

    Je m'explique sur mon souci : J'ai recuperer un site, pour l'utiliser il faut se logger ou crée un compte or c'est a la creation de compte que j'ai probleme.
    Si l'inscription ce passe bien (Envoie mail OK, Mail reçu OK, Code code confirmation generer et envoyé par mail OK) Une fois que l'oin clique sur le lien du mail d'activation j'ai "Erreur : aucun code n'est indiqué !".
    Je vous joint le code :

    #INSCRIPTION
    Code php : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    //Hashage du mot de passe avec md5().
    $mdp_mail=$mot_passe;
    $mot_passe = md5($mot_passe);
     
    //Génération du code de confirmation.
    $lettres_chiffres = 'abcdefghijklmnopqrstuvwxyz0123456789';
    $lettres_chiffres_melanges = str_shuffle($lettres_chiffres);
    $code_confirmation = substr($lettres_chiffres_melanges, 1, 10);
     
    // Génération aléatoire d'une clé.
    $code_confirmation = md5(microtime(TRUE)*10000);
     
     
    //Envoi du mail de confirmation.
    $message = '
    Bonjour '.$pseudo.'<br />
    Vous venez de vous inscrire sur "pouet" -ou un cake s\'est amusé avec votre adresse email ;) - et pour valider votre inscription, vous devez cliquer sur le lien suivant : <a href="http://www.pouet.fr/pouet/www/pouet/confirmation.php?code='.$code_confirmation.'&amp;pseudo='.$pseudo.'">http://www.pouet.fr/pouet/www/pouet/confirmation.php?code='.$code_confirmation.'&amp;pseudo='.$pseudo.'</a><br />
    Votre mot de passe : <b>'.$mdp_mail.'</b><br /><br />Merci et depechez vous, votre plouc s\'ennuie déjà !<br /><br /><b>L equipe de Rock N Plouc</b>';
     
     
    {
    // Préparation du mail contenant le lien d'activation
    $destinataire = $email;
    $sujet = "Activer votre compte" ;
    $entete = "From: pouet" ;
     
    // Le lien d'activation est composé du login(log) et de la clé(cle)
    $message = 'Bienvenue sur pouet,
     
    Pour activer votre compte, veuillez cliquer sur le lien ci dessous
    ou copier/coller dans votre navigateur internet.
     
    www.pouet.fr/pouet/www/pouet/confirmation.php?pseudo='.urlencode($pseudo).'&cle='.urlencode($code_confirmation).'
     
     
    ---------------
    Ceci est un mail automatique, Merci de ne pas y répondre.';
    Voici pour l'inscription je n'ai pas signalé que le site etait en mode alpha chez OVH caché dans un site que j'ai deja.

    #CONFIRMATION
    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
    21
    22
    23
    24
     
     //V&eacute;rification que la variable $_GET['code'] existe et contient quelque chose.
     if (isset($_GET['code'],$_GET['pseudo']))
     {
        //Mesure de s&eacute;curit&eacute;, notamment pour &eacute;viter les injections sql.
        $pseudo = htmlspecialchars($_GET['pseudo']);
        $code_confirmation = htmlspecialchars($_GET['code']);
        //On cherche le nombre de code $code dans la table membres.
        $sql = ("SELECT id FROM membres WHERE confirmation_code='".$code_confirmation."' AND pseudo='".$pseudo."'");
        $sql = mysql_query($sql) or die(mysql_error());
        //Si le code existe.
        if (mysql_num_rows($sql)== 1)
        {
           //Information sur le compte (id et confirmation)
           $sql_infos = mysql_query("SELECT id, confirmation, pseudo FROM membres WHERE confirmation_code='".$code_confirmation."' AND pseudo='".$pseudo."'");
           $donnees = mysql_fetch_array($sql_infos);
           $confirm_id = $donnees['id'];
           $confirm_pseudo = $donnees['pseudo'];
           //On regarde si il n'est pas deja confirm&eacute;.
           if ($donnees['confirmation'] == 0)
           {
               //Validation du compte.
     
            mysql_query("UPDATE membres SET confirmation=1 WHERE id=".$donnees['id']);
    Voila si quelqu'un trouver l'erreur.
    En vous remerciant par avance...
    Toto

  2. #2
    Membre éprouvé Avatar de Yvan L
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2014
    Messages : 80
    Par défaut
    Bonjour,

    Je viens de remarquer une erreur : tu demandes un GET qui n'existe pas.
    www.pouet.fr/pouet/www/pouet/confirmation.php?pseudo='.urlencode($pseudo).'&cle='.urlencode($code_confirmation).'
    $code_confirmation = htmlspecialchars($_GET['code']);

  3. #3
    Membre averti
    Homme Profil pro
    Artisan
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 46
    Par défaut
    Merci Yvan mais du coup je ne vois pas si tu me donnes une reponse ou si tu me signales juste... j'avoue je suis un peu un noob la dedans...

  4. #4
    Membre éprouvé Avatar de Yvan L
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2014
    Messages : 80
    Par défaut
    C'est certainement l'erreur.

    Le GET a besoin du même nom : dans le mail de confirmation, tu le nommes cle, et tu veux récupérer sa valeur avec le nom code, cela provoque une erreur.

    Dans www.pouet.fr/pouet/www/pouet/confirmation.php?pseudo='.urlencode($pseudo).'&cle='.urlencode($code_confirmation).'; tu remplaces &cle par &code pour récupérer le code dans le CONFIRMATION.

  5. #5
    Membre averti
    Homme Profil pro
    Artisan
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 46
    Par défaut
    Bonjour, j'ai donc modifier ce que tu m'a dit.
    Effectivement j'ai du mieux mais cela n'est toujours pas ça :
    Unknown column 'code' in 'where clause'
    Je pense donc que nous sommes pas loin de la resolution.
    Je redonne les codes modifier pour pas avoir a chercher.

    Inscrption :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    //Mesure de secu;.
    $pseudo = strtoupper(htmlspecialchars($_POST['pseudo']));
    $mot_passe = htmlspecialchars($_POST['mot_passe']);
    $email = htmlspecialchars($_POST['email']);
     
    //On v&eacute;rifie que le pseudo n'existe pas.
    $sql_verifie_exist_pseudo = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'");
    $sql_verifie_exist_email = mysql_query("SELECT COUNT(*) AS nb_email FROM membres WHERE email='".$email."'");
    if ((mysql_result($sql_verifie_exist_pseudo, 0, 'nb_pseudo') == 0)&& ($pseudo != '*DICK_REVIVAL*'))
    {
        if ((mysql_result($sql_verifie_exist_email, 0, 'nb_email') == 0))
        {
            //Hashage du mot de passe avec md5().
            $mdp_mail=$mot_passe;
    	$mot_passe = md5($mot_passe);
     
    	//G&eacute;n&eacute;ration du code de confirmation.
    	$lettres_chiffres = 'abcdefghijklmnopqrstuvwxyz0123456789';
    	$lettres_chiffres_melanges = str_shuffle($lettres_chiffres);
    	$confirmation_code = substr($lettres_chiffres_melanges, 1, 10);				
            {
                // Préparation du mail contenant le lien d'activation
                $destinataire = $email;
                $sujet = "Activer votre compte" ;
                $entete = "From: ....@gmail.com" ;
     
                // Le lien d'activation est composé du login(log) et de la clé(cle)
                $message = 'Bienvenue sur ...,
     
                Pour activer votre compte, veuillez cliquer sur le lien ci dessous
                ou copier/coller dans votre navigateur internet.
     
    ../confirmation.php?pseudo='.urlencode($pseudo).'&code='.urlencode($confirmation_code).'
     
    ---------------
    Ceci est un mail automatique, Merci de ne pas y répondre.';
    La confirmation
    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
     //V&eacute;rification que la variable $_GET['code'] existe et contient quelque chose.
     if (isset($_GET['code'], $_GET['pseudo']))
     {
        //Mesure de s&eacute;curit&eacute;, notamment pour &eacute;viter les injections sql.
        $pseudo = htmlspecialchars($_GET['pseudo']) and $confirmation_code = htmlspecialchars($_GET['code']);
        //On cherche le nombre de code $code dans la table membres.
        $sql = ("SELECT id FROM membres WHERE code='".$confirmation_code."' AND pseudo='".$pseudo."'");
        $sql = mysql_query($sql) or die(mysql_error());
        //Si le code existe.
        if (mysql_num_rows($sql)== 0)
        {
           //Information sur le compte (id et confirmation)
           $sql_infos = mysql_query("SELECT id, confirmation, pseudo FROM membres WHERE code='".$confirmation_code."' AND pseudo='".$pseudo."'");
           $donnees = mysql_fetch_array($sql_infos);
           $confirm_id = $donnees['id'];
           $confirm_pseudo = $donnees['pseudo'];
           //On regarde si il n'est pas deja confirm&eacute;.
           if ($donnees['confirmation'] == 1)
           {
    Merci encore

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    Message explicite, non ? Pas de colonne code dans ta table membres.

  7. #7
    Membre averti
    Homme Profil pro
    Artisan
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 46
    Par défaut
    Effectivement après coup... je comprend ta traduction pour un fil d'anglais... c moche... bref
    Bon ok donc ma colonne dans la base est confirmation_code
    Dois-je remplacer code par confirmation_code partout ?
    Il me semble l'avoir deja fait mais ça n'a pas fonctionné je vais retenter... merci pour l'info

  8. #8
    Membre averti
    Homme Profil pro
    Artisan
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 46
    Par défaut
    Bon j'ai regarder mais je tourne sur ma page d'erreur au depart a savoir :
    Erreur : aucun code n'est indiqué !

Discussions similaires

  1. [AC-2003] Code VBA incorrect après division données / GUI (erreur 3219)
    Par -ULK- dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/07/2009, 11h17
  2. [XL-2003] confirmation code de fermeture d'une UserForm
    Par amine2613 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/04/2009, 11h53
  3. code vb incorrect aide SVP
    Par feldene dans le forum VB.NET
    Réponses: 2
    Dernier message: 05/10/2008, 02h52
  4. [OpenOffice] [Code] Arrondi incorrect
    Par Laurente dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 27/04/2008, 19h12
  5. Réponses: 2
    Dernier message: 27/04/2006, 15h16

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