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 définition classe


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut Erreur définition classe
    Bonsoir,

    Je début en PHP et je ne comprends pas un problème lors d'une définition de classe.

    J'ai un fichier Membre.class.php :
    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
    <?php
        class Membre
        {
            private $pseudo;
            private $email;
            private $signature;
            private $actif;
     
            public function __construct( $id)
            {
                if ( $id === 1 )
                    $this->pseudo = 'VIP';
                else
                    $this->pseudo = "guest";
            }
     
            public function __destruct()
            {
                echo "Objet détruit</br>";
            }
     
            public function getPseudo()
            {
                return $this->pseudo;
            }
     
            public function setPseudo( $pseudo)
            {
                $this->pseudo = $pseudo;
            }
     
            public function envoyerEmail( $titre, $message)
            {
                echo $titre . " - " .  $message;
            }
     
            public function bannir()
            {
                $this->actif = false;
                $this->envoyerEmail( 'Vous avez été banni', 'Ne revenez plus !');
            }
        }
    ?>
    et un fichier index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Test</title>
            <link rel="stylesheet" type="text/css" href="styles/style.css">
        </head>
     
        <body>
            <?php
                include_once( 'Membre.class.php');
            ?>        
        </body>
    </html>
    J'ai l'erreur suivante :
    Parse error: syntax error, unexpected 'publi' (T_STRING), expecting function (T_FUNCTION) in Membre.class.php on line 32
    Je recherche donc une âme charitable.

    Merci,

  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
    Ton fichier ne donne pas d'erreur de parse.
    Tu as bien un serveur PHP 5 ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut
    Tout d'abord, merci pour les balises code.
    J'étais en train de me dire que je les avais oublié et j'étais en train de chercher comment les mettre.

    Mon PHP est en version 5.4.13 (WAMP).

    Quand tu dis "ne donne pas d'erreur de parse", c'est une question ou tu l'as testé ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut
    J'ai édité mon index.php pour avoir juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_once( 'Membre.class.php');
    Par contre si j'enlève des fonctions (sans disctinction) de ma classe pour avoir un fichier de moins de 32-33 lignes, je n'ai plus d'erreur.

  5. #5
    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
    Non c'était une affirmation, chez moi je n'ai pas d'erreur avec ce code.
    Si tu fais un phpinfo(), tu es bien en PHP 5 ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut
    En fait, je me suis trompé.

    Je ne suis pas en 5.4.13 mais en 5.4.16 (phpinfo confirmant ceci).

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut
    En fait, ce code fonctionne :
    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
    <?php
        class Membre
        {
            private $pseudo;
            private $email;
            private $signature;
            private $actif;
     
            public function __construct( $id)
            {
                if ( $id === 1 )
                    $this->pseudo = 'VIP';
                else
                    $this->pseudo = "guest";
            }
     
            public function __destruct()
            {
                echo "Objet détruit</br>";
            }
     
            public function getPseudo()
            {
                return $this->pseudo;
            }
     
            public function setPseudo( $pseudo)
            {
                $this->pseudo = $pseudo;
            }
     
        }
    ?>
    Mais celui-ci non :
    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
    <?php
        class Membre
        {
            private $pseudo;
            private $email;
            private $signature;
            private $actif;
     
            public function __construct( $id)
            {
                if ( $id === 1 )
                    $this->pseudo = 'VIP';
                else
                    $this->pseudo = "guest";
            }
     
            public function __destruct()
            {
                echo "Objet détruit</br>";
            }
     
            public function getPseudo()
            {
                return $this->pseudo;
            }
     
            public function setPseudo( $pseudo)
            {
                $this->pseudo = $pseudo;
            }
     
     
        }
    ?>
    Entre les deux, j'ai rajouté une ligne à la fin.
    C'est vraiment comme j'étais limité en nombre de lignes dans ma classe.

  8. #8
    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 : 41
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bizarre comme comportement
    Ta ligne supplémentaire ne contient un caractère spécial non imprimable ou un truc du genre ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut
    Ben, même pas.

    J'ai simplement fait <Entrée> sur mon petit clavier.

    A vos dires, c'est louche. Il faudrait peut-être que je réessaye d'installer mon WAMP, voire avec une autre version...

  10. #10
    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
    Tu peux nous joindre le fichier qui ne fonctionne pas ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut
    Voici les deux fichiers légèrement allégés mais ne fonctionnant toujours pas chez moi.

    Mais si j'enlève n'importe quelle fonction, cela fonctionne car ma classe est alors plus petite que 30 lignes....
    Fichiers attachés Fichiers attachés

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut
    En fait, je ne pense pas que mes fichiers soient mauvais.
    J'ai essayé autre chose :
    - Fichier NOK
    - Réinstallation WAMP
    - Fichier OK
    - Modification du fichier (echo "" -> echo " "), cad presque rien
    - Fichier NOK
    - Réinstallation WAMP
    - Fichier OK

    On dirait qu'à partir d'un certain moment, le serveur refuse des modifs...

    C'est un problème général.

    Je suis sur d'autres tests (sans gestion de classe) et dès que je fais des modifs, j'ai des erreurs disparaissant à la réinstallation.
    J'ai essayé deux versions de WAMP.

    C'est un problème avec include_once mais je ne connais pas encore la cause.

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut
    Je commence à cerner mon problème.

    Mon serveur se trouve dans une machine virtuelle VMWare.

    Par contre, je modifie mes fichiers en live via mon éditeur directement depuis ma machine hôte.
    Ce qui engendre des problèmes avec les include_once.

    Mais dès que je fais une modification de ces mêmes fichiers depuis la VM, je n'ai plus de souci.

    Cela semble donc être un problème de synchro.

Discussions similaires

  1. [Upload] Problème pour gestion d'erreur avec class
    Par allserv dans le forum Langage
    Réponses: 2
    Dernier message: 27/12/2005, 14h00
  2. Erreur : La classe n'est pas enregistrée
    Par Le Pharaon dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 11/08/2005, 13h04
  3. [Débutant][JNDI] Erreur "bad class file"
    Par giffle dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 05/01/2005, 11h23
  4. Erreur : La classe ne gère pas Automation..
    Par Invité dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/09/2004, 11h24
  5. [FLASH MX 2004] message erreur de classe
    Par matN59 dans le forum Flash
    Réponses: 3
    Dernier message: 14/06/2004, 09h59

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