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 lors de l'instanciation d'une classe


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut Erreur lors de l'instanciation d'une classe
    Bonjour à tous, voila quelques heures que j'essaye de faire fonctionner ma classe sans aucun résultat.

    Lors de l'instanciation de mon objet, j'ai une erreur de type
    Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homez.10/ilovedis/www/annu/website/Classes/[Gestion_Session].classe.php on line 14
    l'erreur se situe au tout début, lors de la déclaration de mes variables...
    Je ne comprend pas, on dirait une erreur de syntaxe pourtant...

    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
     
     /**
     * court descriptif de la classe
     * 
     * détail de la classe
     * 
     * @name Gestion_Session
     * @author Nom de l'auteur <aloneghost30@hotmail.com> 
     * @link 
     * @copyright Anthony Rochet 2010
     * @version 1.0.0
     */
     class Gestion_Session {
     
     
        /*~*~*~*~*~*~*~*~*~*~*/
        /*  1. propriétés    */
        /*~*~*~*~*~*~*~*~*~*~*/
        /**
        * @var (String)
        * @desc ID de la session
        */
        private Session_ID;
        /**
        * @var (String)
        * @desc Variable qui sera utilisé pour vérifier la validité de la session
        */
        private Session_Verif;
        /**
        * @var (String)
        * @desc Variable qui sera utilisé pour vérifier la validité de la session
        */
        private Session_Error_Redirect;
     
     
        /*~*~*~*~*~*~*~*~*~*~*/
        /*  2. méthodes      */
        /*~*~*~*~*~*~*~*~*~*~*/
     
        /**
        * Constructeur
        * 
        * <p>création de l'instance de la classe</p>
        * 
        * @name Gestion_Session::__construct()
        * @param nom du premier paramètre
        * @param nom du second paramètre
        * @param etc ...
        * @return void 
        */
        public function __construct($This->Session_Verif , $This->Session_Error_Redirect)
        {
        var $namargs;
        // On ouvre la session
        session_start();
        // On compte les variables qui doivent y être insérés
        $numargs = func_num_args();
        //On récupere l'Id de la session
        $this->Session_ID = Session_Id();
          // Si il y a des arguments alors
          if ($numargs >= 3) 
          { // On boucle sur le nombre d'éléments et on les met dans la session
            for (i=2 , $numargs , i++)
                { 
                Session_Register( func_get_arg(i) );
                }
          }
        } 
     
        /*~*~*~*~*~*~*~*~*~*~*~*~*~*/
        /*  2.1 méthodes privées   */
        /*~*~*~*~*~*~*~*~*~*~*~*~*~*/
        /**
        * @name Redirect_Session ()
        * @desc Redirige l'utilisateur vers une page prédéfinie si 
        * @desc une variable prédéfinie n'est pas initialisée
        */
        Private unction Redirect_Session ()
        {
        // Si la variable prédéfinie est vide dans la session
        if ( !empty('$This->Session_Verif'))
        {
           // On redirige vers la page par defaut
           header('Location: '.$This->Session_Error_Redirect);
           // Et on appelle le destructeur
           $This->__destruct();
     
        }
        }
        /*~*~*~*~*~*~*~*~*~*~*~*~*~*/
        /*  2.1 méthodes publiques */
        /*~*~*~*~*~*~*~*~*~*~*~*~*~*/
        /**
        * @name Verification_Session ()
        * @desc Verifie si la session est initialisée.
        * @desc si elle ne l'est pas on redirige 
        */
        Public function Verification_Session ()
        {
            Redirect_Session ();
        }
        /**
        * @name Register_Variable_Session ()
        * @desc Permet d'ajouter des variables dans la session
        * @desc et si necessaire de l'initialiser 
        */
        Public function Register_Variable_Session ($Nom_Variable_Session , $Valeur_initiale)
        {
        // Si la variable n'existe pas déja alors
        If (!Session_Is_registered($Nom_Variable_Session))
        {
        // On la créé
            Session_Register('$Nom_Variable_Session');
        }
        // Maintenant qu'elle est déclaré, si une valeur a été donné on l'enregistre
        // Si elle était déja déclaré, cela la met à jour
        $HTTP_SESSION_VARS['$Nom_Variable_Session'] = $Valeur_initiale;
        }    
     
     
     
     
        /**
        * Destructeur
        * 
        * <p>Destruction de l'instance de classe</p>
        * 
        * @name Nom de la classe::__destruct()
        * @param nom du premier paramètre
        * @param nom du second paramètre
        * @param etc ...
        * @return void
        */
        public function __destruct() 
        {
        Session_Unset();
        Session_Destroy();
        }
     }
     ?>

    l'erreur apparait lorsque " private Session_ID;" est lu...

    Si vous pouvez m'aider !

    Cordialement

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    Manquerait pas des '$' par hasard ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    private $maVar;
    public $monAutreVar;

  3. #3
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut
    Oui effectivement il manque les '$' sur cette portion de code, je les avais retiré pour essayer "sans" dans le désarois de mon incompréhention...

    Sur mon fichier class actuelm, il y a bien les $, et pourtant j'ai la meme erreur... :s

  4. #4
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    cette erreur vient du code PHP 5 que tu essayes d'exécuter avec PHP 4
    chez OVH, mets les 2 lignes suivantes dans un fichier .htaccess à la racine du site :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SetEnv PHP_VER 5
    SetEnv SESSION_USE_TRANS_SID 0
    la 1re ligne permets de passer à PHP 5 et la 2e ligne permet d'empêcher les identifiants de sessions dans les URL

  5. #5
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Manque également le $ dans ta boucle :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for (i=2 , $numargs , i++)

    et mets des ; au lieu des , et enlèves ton 'var'

  6. #6
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Points : 70
    Points
    70
    Par défaut
    Merci pour vos réponses!

    Je commençais en effet à penser que ca ne venait pas de mon code, j'ai donc essayé sur un autre serveur (hosteur) et la ca fonctionne

    Effectivement il me reste quelques oublis et bugs mineurs à régler, mais le soucis vennait bien du fait que la version php présente n'était pas la bonne.

    Je me rend compte que c'est surement la source de pas mal de bugs ces derniers jours, merci beaucoup pour l'info !

    Par contre, refuser de passer l'id de session par l'url, ca implique de le faire avec les cookies, si l'utilisateur n'en veut pas, alors on lui refuse simplement l'accès au site :s
    (Les id de session dans l'url, au dela de l'effet peu esthétique, causent problemes avec les robot de référencement c'est bien ca?)

    Merci !

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur LAMP
    Inscrit en
    Janvier 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 48
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par Aloneghost Voir le message
    Les id de session dans l'url, au dela de l'effet peu esthétique, causent problemes avec les robot de référencement c'est bien ca?
    Oui effectivement, tu pourrais être confronté au problème de duplicate content, étant donné que les robots considéreront deux pages pour une session différentes du genre

    http://monsite.com?sid=123456

    et

    http://monsite.com?sid=654321

Discussions similaires

  1. crash lors de l'instanciation d'une classe
    Par malus56 dans le forum C++
    Réponses: 5
    Dernier message: 05/07/2011, 08h48
  2. Null pointer lors de l'instanciation d'une class
    Par saraya dans le forum Langage
    Réponses: 4
    Dernier message: 06/05/2009, 17h53
  3. Réponses: 5
    Dernier message: 03/12/2006, 16h15
  4. Réponses: 5
    Dernier message: 04/10/2006, 15h45
  5. [vb.net] erreur lors de l'éxécution d'une classe
    Par os_rasta dans le forum VB.NET
    Réponses: 10
    Dernier message: 01/12/2005, 18h34

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