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 :

Erreur de syntaxe


Sujet :

Langage PHP

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut Erreur de syntaxe
    Bonjour,

    J'ai le code suivant :

    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
     
    <?php
    require 'Net/SMTP.php';
            if (! ($smtp = new Net_SMTP('smtp.orange.fr'))) die("Unable to instantiate Net_SMTP object\n");
            if (PEAR::isError($e = $smtp->connect()))       die($e->getMessage() . "\n");
            if (PEAR::isError($smtp->mailFrom($from)))      die("Unable to set sender to <$from>\n");
     
                if (PEAR::isError($res = $smtp->rcptTo($dest))) die("Unable to add recipient <$dest>: " . $res->getMessage() . "\n");
     
            if (PEAR::isError($smtp->data($this->subject . "\n\r\n" . stripslashes($this->message)))) {
                die("Unable to send data\n");
            }
     
            $smtp->disconnect();
    ?>
    qui me retourne cette erreur :
    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /var/www/html/dolibarr/test.php on line 2
    J'avoue ne pas comprendre pourquoi, et j'aimerai bien corriger cela.
    Est ce qu quelqu'un pourrait m'apporter ses lumières ?

    Merci

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Explications et correction de l'erreur "parse error"
    En l'occurrence je dirais que tu as un problème soit au niveau de ton require, soit dans la première fonction (Net_SMTP)...

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut
    J'y ai pensé et commenté la 2eme ligne. J'ai la même erreur sur la 3ème ligne ensuite ...
    Un fix sur le require est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require("Net/SMTP.php");
    Je ne comprends pas pourquoi. Cela corrige le problème ligne 2, mais comme le commentaire, l'erreur passe à la 3ème ligne

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Le problème vient peut-être de tes chaines de caractère : avant la correction, ton nom de fichier dans le require était entre quotes simples...
    Essayes de placer toutes tes chaines entre quotes doubles (" ")

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require "Net/SMTP.php";
    me retourne la même erreur

    C'est un serveur local, il y a des applis php qui fonctionnent correctement dessus, mais j'en viens à me demander si le php.ini pourrait être mal écrit et induire ces problèmes ?

  6. #6
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    L'erreur se trouve probablement dans le fichier Net/SMTP.php.
    L'erreur T_CONSTANT_ENCAPSED_STRING est généralement associée à l'absence d'un opérateur de concaténation de chaîne (operator .)

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut
    Net/SMTP.php provient de pear, je ne pense pas qu'il y ait d'erreur à ce niveau.
    Si le require est commenté, l'erreur se produit également à la ligne suivant.

  8. #8
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    Ha oui, autant pour moi sur Pear.
    En ce cas, est-ce que le bout de code qui plante est inclus dans un autre fichier, ou précédé d'autres lignes de code PHP ? Si oui, il faudrait regarder ce qu'il y a en amont.

  9. #9
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut
    Ben c'est là mon problème
    Il n'y a rien en amont ! le require est en ligne 2, juste après <?php

  10. #10
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    Rien en amont ? Mais alors, comment sont initialisées les variables $from et $dest ? Et le $this utilisé plus bas ?

  11. #11
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut
    J'ai un bug sur une partie du script. Je l'ai isolé pour débuger plus facilement. C'est le script en haut de ce thread, épuré pour un débuggage plus aisé.
    Il n'y a STRICTEMENT rien en haut de code, et oui ces variables ne sont pas renseignées puisque j'ai extrait ce code, mais ce n'est pas cela qui bloque le bout de code affiché.

    Le code affiché ici est le seul code dans le fichier php. D'où l'erreur à la ligne 2.

  12. #12
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    Citation Envoyé par max-mag Voir le message
    Le code affiché ici est le seul code dans le fichier php. D'où l'erreur à la ligne 2.
    Comment appeles-tu ton script (quelle url ?)

  13. #13
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474

  14. #14
    Membre actif Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Points : 204
    Points
    204
    Par défaut erreur d'affectation
    Bonjour,

    Il me semble que tu fais une affectation au lieu d'un contrôle conditionnel...
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (! ($smtp = new Net_SMTP('smtp.orange.fr')))
    essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!($smtp == new Net_SMTP('smtp.orange.fr')))...

  15. #15
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut
    non plus. Peut être une mauvaise install de pear ?
    Ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    require("Net/SMTP.php");
    $smtp = new Net_SMTP("smtp.orange.fr");
    ?>
    Retourne cette erreur :
    Fatal error: Call to undefined function  new Net_SMTP() in /var/www/html/test.php on line 3
    Cela me semble correctement écrit d'après la doc : http://pear.php.net/package/Net_SMTP.../Net_SMTP.html

  16. #16
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut
    Une piste :
    Le package SMTP de pear est installé, mais php est compilé "without pear" dans phpinfo
    Je pense que le problème vient de là. Je contacte l'admin du serveur pour qu'il ajoute cela et je vous tiens au courant.

Discussions similaires

  1. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  2. [sql] erreur de syntaxe
    Par cmoa59 dans le forum JDBC
    Réponses: 14
    Dernier message: 03/05/2005, 11h41
  3. erreur de syntaxe en C++
    Par sergepmessa dans le forum C++
    Réponses: 6
    Dernier message: 11/03/2005, 18h15
  4. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 14h53

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