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 :

PDO : Language string failed to load: instantiate


Sujet :

Langage PHP

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut PDO : Language string failed to load: instantiate
    Bonsoir,

    comment se débarasser de cette erreur et envoyer un mail :
    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
    <?php 
    require "class.phpmailer.php"; 
    $mail = new PHPmailer(); 
    $mail->IsHTML(true); 
     
    $mail->From=' --- '; 
    $mail->AddAddress(' --- '); 
    $mail->AddReplyTo(' --- ');      
    $mail->Subject='Exemple trouvé sur DVP'; 
    $mail->Body='<html><body><head><style>.entete{background-color:#0000FF;color:#FFFFFF;border:solid 3px;font-size:25px}'; 
    $mail->Body.='.ligne{color:#0000FF;border:solid 1px;text-align:center;font-size:23px}</style></head>'; 
    $mail->Body.='<center><table><tr><td class="entete">Voici un exemple d\'e-mail au format HTML</td></tr>'; 
    $mail->Body.='<tr><td class="ligne">Ceci est un tableau HTML</td></tr></table></center></body></html>'; 
    if(!$mail->Send()){ //Teste si le return code est ok. 
    echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7) 
    } 
    else{      
        echo 'Mail envoyé avec succès'; 
        } 
     
    unset($mail); 
    ?>
    Pour cet essai, j'ai mis mon adresse perso dans From, AddAddress et AddReplyTo.

  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
    Points : 44 155
    Points
    44 155

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    j'ai regardé ces discussions (et comme y en a une de moi, c'est la preuve que j'ai déjà réussi à le faire marcher, mais plus (et malheureusement, plus de trace de ce qui marchait)).
    De ce fait, j'ai un peu modifié le code et ça a changé le message d'erreur.
    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
    <?php 
    require "class.phpmailer.php"; 
    $mail = new PHPmailer(); 
    $mail->IsHTML(true); 
    $mail->SetLanguage('en','language/phpmailer.lang-en.php');
    $mail->IsSMTP();
    $mail->Host='mon_smtp';
     
    $mail->From=' --- '; 
    $mail->AddAddress(' --- '); 
    $mail->AddReplyTo(' --- ');      
    $mail->Subject='Exemple trouvé sur DVP'; 
    $mail->Body='<html><body><head><style>.entete{background-color:#0000FF;color:#FFFFFF;border:solid 3px;font-size:25px}'; 
    $mail->Body.='.ligne{color:#0000FF;border:solid 1px;text-align:center;font-size:23px}</style></head>'; 
    $mail->Body.='<center><table><tr><td class="entete">Voici un exemple d\'e-mail au format HTML</td></tr>'; 
    $mail->Body.='<tr><td class="ligne">Ceci est un tableau HTML</td></tr></table></center></body></html>'; 
    if(!$mail->Send()){ //Teste si le return code est ok. 
    echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7) 
    } 
    else{      
        echo 'Mail envoyé avec succès'; 
        } 
     
    unset($mail); 
    ?>
    Le message d'erreur est devenu :
    Could not load language file
    et pourtant, le chemin est juste...

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme indiqué dans les discussions, il faut que tu regardes si ton fichier "language/phpmailer.lang-en.php" existe bien.

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Oui, il existe bien et y a pas de faute d'orthographe...

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $mail->SetLanguage('en','language/phpmailer.lang-en.php');
    Le nom de la méthode est en minuscule et non en majuscule.
    de toute façon par défaut les messages d'erreurs sont en anglais, t'as pas besoin de le préciser.

    inlcusion de la lib:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    require_once 'class.phpmailer.php'; 
     require_once "class.smtp.php";
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    require_once 'phpmailer/class.phpmailer.php';

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    de toute façon par défaut les messages d'erreurs sont en anglais, t'as pas besoin de le préciser.
    Je crois que si :
    PHP Mailer possède une gestion d'erreur qui lui permet de retourner un message à l'utilisateur lorsqu'une erreur se produit. L'utilisateur peut choisir la langue de son choix parmi l'Anglais, le Portugais, l'Italien et l'Allemand. La langue utilisée par défaut est l'Anglais. En tant que Francophone, vous allez probablement garder l'Anglais comme langue par défaut, le problème c'est que la fonction de PHP Mailer qui vérifie la langue à utiliser, utilise le répertoire courant comme valeur par défaut pour le chemin d'accès aux fichiers de langue. Cela a pour effet que si votre script ne se trouve pas dans le même répertoire que le fichier de la langue concernée, vous obtiendrez toujours le même message d'erreur lorsqu'une erreur se produira, ce message sera: Language string failed to load:[quelquechose]. Vous devrez donc utiliser la méthode SetLanguage() pour indiquer à PHP Mailer où trouver les fichiers contenant les messages d'erreurs dans les différentes langues.
    Toujours pas résolu...

  8. #8
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    le nom de la méthode setLanguage() doit être minuscule et non en majuscule
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $mail->setLanguage('en','language/phpmailer.lang-en.php');

    encore une fois la ligne ci-dessus ne sert à rien car les messages d'erreurs sont déjà par défaut en anglais.

    Active l'affichage des erreurs:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $mail->SMTPDebug = 2;

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Même si j'ai du mal à te croire vu la citation que j'ai faite, j'ai commenté la ligne et vu à travers les warnings qu'il manquait le fichier "class.smtp.php" ; je l'ai rajouté mais maintenant le nouveau warning est
    fsockopen() [function.fsockopen]: unable to connect to smtp.sfr.fr:25 etc
    et pourtant, j'ai bien les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $mail->IsSMTP();
    $mail->Host='smtp.sfr.fr';

  10. #10
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    fsockopen() [function.fsockopen]: unable to connect to smtp.sfr.fr:25 etc
    le port 25 (que t'as renseigné) du serveur smtp n'est pas le bon.

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    En fait, j'avais pas changé la valeur par défaut (qui se trouve être 25). Mais je ne connais la bonne valeur ; comment puis-je la trouver ?

  12. #12
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    d'après le site sfr:
    serveurs-messagerie

    ils ont 2 ports le 25 pour un envoie non sécurise et et le 587 pour un envoie sécurisé(utilisant le protocole tls).

    dans ton cas est-ce tu ne tentes pas d'envoyer un mail sécurise($mail->SMTPSecure = "tls"; )via le port 25 et l'adresse smtp.sfr.fr?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $mail->SMTPSecure = "tls";                 // as-tu cette ligne?
    sinon essaies de reposter ton code .

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Non, je n'ai pas cette ligne. Mon code est :
    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
    <?php 
    error_reporting(E_ALL);
    ini_set('display_errors','1');
     
    require_once "class.phpmailer.php"; 
    $mail = new PHPmailer(); 
    $mail->IsHTML(true); 
     
    //$mail->setLanguage('en','language/phpmailer.lang-en.php');
    $mail->SMTPDebug = 2;
    $mail->IsSMTP();
    $mail->Host='smtp.sfr.fr';
    $mail->From='adresse@aol.com '; 
    $mail->AddAddress('adresse@aol.com'); 
    $mail->AddReplyTo('adresse@aol.com');      
    $mail->Subject='Exemple trouvé sur DVP'; 
    $mail->Body='<html><body><head><style>.entete{background-color:#0000FF;color:#FFFFFF;border:solid 3px;font-size:25px}'; 
    $mail->Body.='.ligne{color:#0000FF;border:solid 1px;text-align:center;font-size:23px}</style></head>'; 
    $mail->Body.='<center><table><tr><td class="entete">Voici un exemple d\'e-mail au format HTML</td></tr>'; 
    $mail->Body.='<tr><td class="ligne">Ceci est un tableau HTML</td></tr></table></center></body></html>'; 
    if(!$mail->Send()){ //Teste si le return code est ok. 
    echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7) 
    } 
    else{      
        echo 'Mail envoyé avec succès'; 
        } 
     
    unset($mail); 
    ?>
    et je t'épargne les 1500 lignes de class.phpmailer.php ; simplement, j'ai var $Port = 25;Et si je décommente la ligne 9 de mon code , le message d'erreur devient
    Could not load language file
    alors que le chemin est bon...

  14. #14
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    j'ai exécuté ton code chez moi en local ça marche sans problème:

    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
     
    <?php
     
    require("phpmailer/class.phpmailer.php");
     
    $mail = new PHPMailer();
    $mail->SMTPDebug = 2; //2:active les erreurs 
    $mail->IsSMTP();  // telling the class to use SMTP
    $mail->Host     = "smtp.bbox.fr"; // SMTP server
    $mail->Port       = 25;               
    $mail->setLanguage('en','language/phpmailer.lang-en.php');
    $mail->From     = "expediteur@example.com";
    $mail->AddAddress("destinataire@yahoo.fr");
     
    $mail->Subject  = "titre du message blabla ";
    $mail->Body     = "Hi! \n\n .Lorem ipsum dolor sit amet, consectetur adipiscing elit. ";
    $mail->WordWrap = 50;
     
    if(!$mail->Send()) {
      echo 'Message envenvé ';
      echo 'Mailer error: ' . $mail->ErrorInfo;
    } else {
      echo 'Message non envoyé';
    }
     
    ?>
    A la seule condition que la classe PHPMailer a besoin du fichier phpmailer/class.smtp.php pour pouvoir utiliser le serveur smtp.

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Ce soir, j'étais pas chez moi...Comme j'ai un 2e PC, j'essaye dessus demain et je te tiens au jus...

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Bonjour, je me suis rappelé que depuis 2/3 ans, je ne suis plus chez SFR et avec $mail->Host='smtp.orange.fr'; ça envoie bien un mail
    Par contre, l'affichage du titre n'est pas bon
    Exemple trouvé sur DVP
    bien que j'ai mis la page en utf-8 : header('Content-type: text/html; charset=UTF-8'); et l'ai encodée en utf-8 sans BOM...

  17. #17
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    pour l'encodage en utf-8:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $mail->CharSet = "utf-8";

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    merci

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

Discussions similaires

  1. phpmailer : language string failed to load file_access
    Par laurentSc dans le forum Langage
    Réponses: 4
    Dernier message: 13/02/2013, 20h07
  2. [PHP 5.0] [PHPMAILER] Language string failed to load: data_not_accepted
    Par Istrella dans le forum Langage
    Réponses: 1
    Dernier message: 23/04/2010, 12h05
  3. Failed to load Main-Class manifest
    Par parano dans le forum Langage
    Réponses: 1
    Dernier message: 23/04/2007, 11h02
  4. [SimpleXML] Erreur "failed to load external entity"
    Par seb92500 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 04/02/2007, 10h27
  5. [IDE][VS2005] 'The class diagram service failed to load' ?
    Par Landolsi dans le forum EDI/Outils
    Réponses: 1
    Dernier message: 17/01/2006, 10h32

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