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 :

Récupérer email et licence


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 6
    Points
    6
    Par défaut Récupérer email et licence
    Bonjour, je reviens à vous car j’essaie de récupérer les variables email et licence de mes tables pour pouvoir envoyer des mail à partir des infos collectées mais je n'y arrive pas.
    Voici mon code:
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <?php
            //connection a la base
            try
            {
                $bdd = new PDO('mysql:host=mysql-vac10260.alwaysdata.net;dbname=****_courses;charset=utf8', '****', '****!');
            }
            catch (Exception $e)
            {
                //en cas d'erreur on affiche un message et on arrete tout
                die('Erreur : ' . $e->getMessage());
            }        
                /*code envoie ds base inscription_membre*/
                $prenom = $_POST['prenom'];
                $prenom = strtoupper($prenom); //met en mjuscule
                $nom = $_POST['nom'];
                $nom = strtoupper($nom); //met en mjuscule
                $course = $_POST['course'];
                $distance = $_POST['distance'];
     
     
                $req = $bdd->prepare('INSERT INTO inscription_membre(prenom, nom, course, distance, date_ins) VALUES(:prenom, :nom,  :course, :distance, NOW() )') or die(print_r($bdd->errorInfo()));
                $req->execute(array(
                    'nom' => $nom,
                    'prenom' => $prenom,
                    'course' => $course,
                    'distance' => $distance,
                    ));
                $req->closeCursor();
     
                //recuperation de la derniere ligne des bases
                $reqmail = $bdd->prepare('SELECT * FROM licencies l RIGHT JOIN inscription_membre i ON (i.nom, i.prenom) = (l.nom, l.prenom) ORDER BY i.id DESC LIMIT 0, 1') or die(print_r($bdd->errorInfo()));
                while($row = $reqmail->fetch())
                    {
                        $row['licence'];
                        $row['email'];
                    }
                $reqmail->closeCursor();
     
                $licence = $row['licence'];
                $email = $row['email'];
     
                $message = "$prenom $nom, no de licence: $licence, s'inscrit à la course $course sur la distance de $distance km";
                //$message2 = "$prenom $nom,\r\nVotre inscription à la course $course sur la distance de $distance km va être traitée.\r\nCordialement\r\nLe VAC";
     
                $to = "Vac10260@gmail.com";
                $to2 = "$email";
                $objet = "Inscription a une course"; //Met l'objet que tu veux
                $objet2 = "Validation d'inscription";
     
                // En-têtes de l'e-mail
                $headers = "From: $email \r\n\r\n";
                $headers2 = "From: Vac \r\n\r\n";
     
                // Envoi de l'e-mail
                //mail($to, $objet, $message, $headers);
                //mail($to2, $objet2, $message2, $headers2);
     
               ?>
                <p><?php print_r($licence);
                        print_r($to2);
                        print_r($message);
                        print_r($headers);?></p>
    Voila j'espere que j'ai été clair.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    j'ai essayé aussi de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $reqmail = $bdd->prepare('SELECT * FROM licencies l RIGHT JOIN inscription_membre i ON (i.nom, i.prenom) = (l.nom, l.prenom) ORDER BY i.id DESC LIMIT 0, 1') or die(print_r($bdd->errorInfo()));
     
                $reqmail->closeCursor();
     
                $licence = $_GET['licence'];
                $email = $_GET['email'];

  3. #3
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Est-ce que tu as copié ce code ou bien tu l'as écrit ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
               //recuperation de la derniere ligne des bases
                $reqmail = $bdd->prepare('SELECT * FROM licencies l RIGHT JOIN inscription_membre i ON (i.nom, i.prenom) = (l.nom, l.prenom) ORDER BY i.id DESC LIMIT 0, 1') or die(print_r($bdd->errorInfo()));
                while($row = $reqmail->fetch())
                    {
                        $row['licence']; <= pas d'affectation
                        $row['email']; <= pas d'affectation
                    }
                $reqmail->closeCursor();
     
                $licence = $row['licence']; <= ne sert à rien ici
                $email = $row['email']; <= ne sert à rien ici

    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
               //recuperation de la derniere ligne des bases
                $licence = "";
                $email = "";
                $reqmail = $bdd->prepare('SELECT * FROM licencies l RIGHT JOIN inscription_membre i ON (i.nom, i.prenom) = (l.nom, l.prenom) ORDER BY i.id DESC LIMIT 0, 1') or die(print_r($bdd->errorInfo()));
                while($row = $reqmail->fetch())
                    {
                       $licence = $row['licence'];
                       $email = $row['email'];
                    }
                $reqmail->closeCursor();
     
                // $licence = $row['licence'];
                // $email = $row['email'];

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par stfiston Voir le message
    ...mais je n'y arrive pas...
    avec ça, on est bien avancés !

    • fournir un minimum d'explication du code, et de ce qu'il est censé faire
    • tu as des $_POST : ils viennent d'où ?
    • faire un DEBOGAGE DE BASE (mettre des echo, var_dump,...)
    • montrer les éventuels messages d'erreurs
    • ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                $reqmail = $bdd->prepare('SELECT * FROM licencies l RIGHT JOIN inscription_membre i ON (i.nom, i.prenom) = (l.nom, l.prenom) ORDER BY i.id DESC LIMIT 0, 1') or die(print_r($bdd->errorInfo()));
                while($row = $reqmail->fetch())
    C'est bien de préparer la requête... encore faut-il l'exécuter !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY i.id DESC LIMIT 0, 1
    NON !

    APRES l'INSERT, on peut récupérer le "dernier id créé" avec ->lastInsertId()
    C'est certainement mieux !

    Et aussi :
    • Mets tous le code de CONNEXION à la Bdd dans un fichier EXTERNE connexion_PDO.php,
      qui sera appelé en DEBUT de fichier par require('connexion_PDO.php'); (adapter le chemin en fonction de l'arborecence)
    • Supprime tous les $xxxxx->closeCursor(); : ça ne sert à rien...
    Dernière modification par Invité ; 01/05/2017 à 18h49.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    J'apprend a coder, j'ai suivis des tutos pour essayer de faire ce que je voulais.
    Les $_post viennent d'un formulaire qui me permet de remplir une table de ma base, que je fusionne avec une autre table possedant les mêmes entrées nom et prenom en majuscule. Cela me permet de récupérer les email et les numéros de licence des membres d'un club. Je voulais récupérer ces données afin d'envoyer un mail de validation du formulaire.
    Désolé je pensais que c'était clair je suis pas au top du tout.
    Je n'ai aucun message d'erreur et j'ai mis des print_r à la fin pour voir si je récupère les données pour voir d'où venais le pb et je n'arrive pas à récupérer les $email et $licence. J'ai une connerie mais j’arrête pas de changer des lignes de code et au bout d'un moment je fait plus de conneries qu'autre chose.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    Dans les tutos il était expliqué qu'il faillait utiliser les closecusor . je cite:
    "Elle provoque la « fermeture du curseur d'analyse des résultats ». Cela signifie, en d'autres termes plus humains, que vous devez effectuer cet appel à closeCursor()chaque fois que vous avez fini de traiter le retour d'une requête, afin d'éviter d'avoir des problèmes à la requête suivante. Cela veut dire qu'on a terminé le travail sur la requête."

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par badaze Voir le message
    Est-ce que tu as copié ce code ou bien tu l'as écrit ?

    [...]
    Ok j'y vois plus clair, je me suis un peu melangé les pinceaux avec la syntax, ça ne fait qu'une semaine que je me suis mis au sql

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    Bon j'ai corrigé comme vous me l'avez expliqué:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     $reqmail = $bdd->prepare('SELECT * FROM licencies l RIGHT JOIN inscription_membre i ON (i.nom, i.prenom) = (l.nom, l.prenom) ORDER BY i.id DESC LIMIT 0, 1') or die(print_r($bdd->errorInfo()));
                while($row = $reqmail->fetch())
                    {  
                    $licence = $row['licence'];
                    $email = $row['email'];
                    }
                $reqmail->closeCursor();
    mais je ne récupère toujours pas les infos $licence et $email, je ne les vois pas a l'écran avec les print_r, je capte pas et j'ai pas de message d'erreur.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Si tout ce que tu as retenu de mon précédent message est "closeCursor", c'est dommage...

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Si tout ce que tu as retenu de mon précédent message est "closeCursor", c'est dommage...
    Non pas du tout c'est bien pour ça que j'ai bien expliqué mon problème et je vais appliquer tes conseils, mais chaque choses en sont temps, laisse moi le temps d'étudier les nouvelles informations que tu m'a communiqué je voudrai comprendre c'est tout. En même temps tu me dis que ça sert a rien closeCursor, mais j'ai pas d'autres explication, j'ais appris le contraire donc j'aimerais bien comprendre. Je ne veut pas être désagréable.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    Pour info, est-ce que "ORDER BY i.id DESC LIMIT 0, 1" fonctionne quand même où j'ai rien compris à ce que j'ai écris.

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    c'est bon j'ai trouvé mon problème!!!!!, à cause d'un copier coller j'ai copié un "prepare" alors que je voulais un "query", donc mon code se présente comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reqmail = $bdd->query('SELECT * FROM licencies l RIGHT JOIN inscription_membre i ON (i.nom, i.prenom) = (l.nom, l.prenom) ORDER BY i.id DESC LIMIT 0, 1') or die(print_r($bdd->errorInfo()));
    Reste plus qu'a inserré la commande pour récupérer la dernière entrée pour être nikel.
    Merci du coup de main.

  13. #13
    Invité
    Invité(e)
    Par défaut
    1/ CloseCursor


    Cette méthode est utile pour les drivers de base de données qui ne supportent pas l'exécution d'objet PDOStatement lorsqu'un objet PDOStatement exécuté précédemment a encore des lignes non récupérées. Si votre driver de base de données souffre de cette limitation, le problème se manifestera de lui-même dans une erreur en dehors de la séquence.
    Généralement, pas utile donc.

    2/ utiliser :
    • ->query(...) quand il n'y a pas de risque d'injection SQL
    • ->prépare(...) et execute(...) quand la requête nécessite des variables externes : $_post ou $_get ou...

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    Ok merci pour l'info, je me coucherai moin bête se soir

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

Discussions similaires

  1. [2010] récupérer clé de licence
    Par Mac52 dans le forum Microsoft Office
    Réponses: 1
    Dernier message: 24/12/2013, 09h37
  2. Récupérer email avec PHPMailer
    Par yasseross dans le forum Langage
    Réponses: 2
    Dernier message: 13/02/2013, 12h23
  3. Réponses: 4
    Dernier message: 12/11/2008, 00h18
  4. Récupérer email avec JavaMail API
    Par petitavion414 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 27/07/2007, 16h02
  5. [2.0] Récupérer Email d'outlook
    Par fix105 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 19/01/2007, 08h45

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