Problème dans une classe

[Résolu]
Signaler
Messages postés
6
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
9 février 2007
-
Messages postés
6
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
9 février 2007
-
Bonjour ou bonsoir à tous
Je suis programmeur php à mes heures et plutôt pas mauvais
cependant, je me met à peine aux notions objet de php et je rencontre une erreur que je ne comprends pas

Voici le code de ma classe :

<?php
    class User
    {
        var $_id, $_login, $_password, $_email, $_birth, $_country, $_sexe, $_hobbys, $_description, $_inscription, $_vip, $_vip_date, $_points, $_public, $_active, $_try, $_connection, $_ip ;

        //Constructeur
        function User($id)
        {
            //Connexion à la DB
            include "_connection.php";

            //Requête sur l'id            $Query "SELECT * FROM users WHERE id '".$id."'";
            $Result = mysql_query($Query);

            //On transforme le résultat en tableau
            if($Datas = mysql_fetch_array($Result))
            {
                //Initialisation des variables
                $this->_id = Datas['id'];
                $this->_login = Datas['login'];
                $this->_password = Datas['password'];
                $this->_email = Datas['email'];
                $this->_birth = Datas['birth'];
                $this->_country = Datas['country'];
                $this->_sexe = Datas['sexe'];
                $this->_hobbys = Datas['hobbys'];
                $this->_description = Datas['description'];
                $this->_inscription = Datas['inscription'];
                $this->_vip = Datas['vip'];
                $this->_vip_date = Datas['vip_date'];
                $this->_points = Datas['points'];
                $this->_public = Datas['public'];
                $this->_active = Datas['active'];
                $this->_try = Datas['try'];
                $this->_connection = Datas['connection'];
                $this->_ip = Datas['ip'];
            }
            //Fermeture de la connexion à la DB
            mysql_close();
        }

        //Cette fonction DOIT être appelée avant d'instancier la classe, c'est elle qui créera un nouvel objet User
        //appel de la fonction via User::Connect($login, $password)
        function Connect($login, $password)
        {
            //Connexion à la DB
            include "_connection.php";
           
            //Requête sur login et password crypté            $Query "SELECT id FROM users WHERE login '".$login."' AND password = '".md5($password)."'";
            $Result = mysql_query($Query);
           
            //On récupère une seule ligne de résultat
            if($Data = mysql_fetch_row($Result))
            {
                //Si un enregistrement trouvé, on renvoie un nouvel objet User appelé via son constructeur
                mysql_close();
                return new User($Data['0']);
            }
            else
            {
                //Sinon on renvoie NULL
                return NULL;
                mysql_close();
            }
        }
    }
?>

Le code d'erreur :Parse error: parse error in c:\program files\easyphp1-8\www\memoire\php\class.user.inc.php on line 16

Et je ne trouve vraiment pas l'erreur, si quelqu'un pouvait m'aider non seulement à corriger mais surtout à comprendre, ce serait vraiment très gentil de sa part.
Merci d'avance pour toutes vos réponses qui me feront avance dans mon petit travail.

4 réponses

Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
Normal...

Datas sans le $ avant ==> constante.

Rajoute des $ sur tes variables :)
Messages postés
115
Date d'inscription
mercredi 27 août 2003
Statut
Membre
Dernière intervention
7 mars 2008

if($Datas = mysql_fetch_array($Result)) L16.
Tu est bien sur d'avoir besoin de ton if ?
Messages postés
6
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
9 février 2007

Ben oui, d'habitude ça fonctionne comme ça mais en dehors d'une classe
le if vérifie que la requête a renvoyé des résultats
le problème se trouve en fait à la ligne $this->_id = Datas['id'];
Messages postés
6
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
9 février 2007

Oh crénon, bienvu, ça m'apprendre à faire du copier coller pour les lignes suivantes car je ne l'avais absolument pas vu.
Je pouvais encore chercher longtemps.

Merci beaucoup et bonne soirée.