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 :

Erreur envoi mail [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Par défaut Erreur envoi mail
    Bonjour,

    Je rencontre une erreur et je ne vois pas l' origine de celle-ci.

    Il s' agit d'un fichier d' envoi de mail de confirmation, les variables pseudo-prenom et email sont saisir et existante + creation de la table membres_activation avec les colonnes cle et actif.

    Mon erreur

    Merci pour votre aide (encore débutant dans le domaine).

    Fatal error: Call to a member function on a non-object in /home/z/zebinfo/www/direct-emploi-service/e-mail.php on line 19
    $stmt = $dbh->prepare("INSERT INTO membres_activation (cle) VALUES (:cle) WHERE pseudo like :pseudo ");

    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
    <?php	
    // Récupération des variables nécessaires au mail de confirmation
    $email = $_POST['email'];
    $pseudo = $_POST['pseudo'];
    $prenom = $_POST['prenom'];
     
    // Génération aléatoire d'une clé
    $cle = md5(microtime(TRUE)*100000);
     
    // Insertion de la clé dans la base de données
    $stmt = $dbh->prepare("INSERT INTO membres_activation (cle) VALUES (:cle) WHERE pseudo like :pseudo ");
    $stmt->bindParam(':cle', $cle);
    $stmt->bindParam(':pseudo', $pseudo);
    $stmt->execute();
     
    // Préparation du mail contenant le lien d'activation
    $destinataire = $email;
    $sujet = "Activation de votre compte sur mon site" ;
    $entete = "From: <a href="mailto:monsite@laposte.net">monsite@laposte.net</a>" ;
     
    // Le lien d'activation est composé du login(log) et de la clé(cle)
    $message = 'Bienvenue sur Direct-Emploi-Service,
    
    Pour activer votre compte, veuillez cliquer sur le lien ci dessous
    ou copier/coller dans votre navigateur internet.
    
    http://monsite.com/activation.php?log='.urlencode($pseudo).'&cle='.urlencode($cle).'
    
    
    ---------------
    Ceci est un mail automatique, Merci de ne pas y répondre.';
     
     
    mail($destinataire, $sujet, $message, $entete) ; // Envoi du mail
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Bonjour,

    $dbh n'est pas défini dans ton code.

    typiquement pour mysql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dhb = new PDO('mysql:host=serveur;dbname=nombase, login, password');
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Par défaut
    Merci pour ton aide.

    Petite question, au point de vue sécurité, c'est pas trop dangeureux de claquer ceci dans un fichier.

    Je pars essayer ceci

    edit:

    Fatal error: Cannot instantiate non-existent class: pdo

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faut bien de toute facon l'ecrire quelque part.
    Tu peux par contre le mettre dans un fichier indépendant stocké dans un répertoire non servi par apache, qui sera inclus.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Par défaut
    ok ca marche, par contre j' ai encore une erreur (edit au dessus de ton post)

    C'est vraiment sympa de m' orienter un peu, je suis un peu débutant dans le domaine

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    PDO ne doit pas être actif sur ton serveur.
    Tu peux le vérifier dans ton phpinfo()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Par défaut plus d' info
    Voilà, j' ai maintenant un fichier de connection independant qui se presente comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    # FileName="Connection_php_mysql.htm"
    # Type="MYSQL"
    # HTTP="true"
    $hostname_monsite = "mysql1";
    $database_monsite = "nom de ma base";
    $username_zebinfo = "login";
    $password_zebinfo = "pass";
    $zebinfo = mysql_pconnect($hostname_name, $username_name, $password_name) or trigger_error(mysql_error(),E_USER_ERROR); 
    ?>
    j' appelle le fichier par un require_once

    retour à l' erreur initiale.

    Ya t-il un moyen de modifier la ligne 19 ou dois je redefinir la variable $dhb


    Merci

    edit:

    php info

    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
    /* $Id: phpinfo.php,v 2.2 2003/11/26 22:52:24 rabus Exp $ */
    // vim: expandtab sw=4 ts=4 sts=4:
     
     
    /**
     * Gets core libraries and defines some variables
     */
    require_once('./libraries/grab_globals.lib.php');
    require_once('./libraries/common.lib.php');
     
     
    /**
     * Displays PHP information
     */
    $is_superuser = @PMA_mysql_query('USE mysql', $userlink);
    if ($is_superuser || $cfg['ShowPhpInfo']) {
        phpinfo();
    }
    ?>

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

Discussions similaires

  1. [WD14] Erreur envoi mail
    Par gancau dans le forum WinDev
    Réponses: 6
    Dernier message: 13/11/2009, 10h37
  2. erreur envoi mail avec CDO
    Par bambino13 dans le forum ASP
    Réponses: 2
    Dernier message: 26/08/2009, 16h19
  3. Erreur envoi mail avec phpmailer (fichier joint)
    Par rhadien dans le forum Langage
    Réponses: 1
    Dernier message: 02/07/2008, 10h23

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