begin process at 2012 05 31 12:25:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

POO

 > 

Classes & Objets

 > 

probleme de classe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme de classe

samedi 30 septembre 2006 à 19:49:54 | probleme de classe

nagrom_om

Bonjour,
J ai recupéré une classe d abstracation pour MySql cela fonctionne. Elle s instencie de cette facon :
try {
        $db = dbInterface::GetInstance('mysql', 'mysql');
    } catch ( Exception $e ) {
        die ( $e->getmessage() );
    }

Maintenant j'ai créé une classe Utilisateur:

@include ("../include/database.php");
@include ("../include/mysql.php"); 

    //Instanciation de la connexion
    try {
        $db = dbInterface::GetInstance('mysql', 'mysql');
    } catch ( Exception $e ) {
        die ( $e->getmessage() );
    }

class Utilisateur {

    //public $db;
    public $nom;
    public $prenom;
    public $login;
    public $mdp;
   
    function __tostring(){
        return "Classe utilisateur";
    }
   
    function __construct($login="", $mdp="",$nom="", $prenom=""){
   
        //$this->db = dbInterface::GetInstance('mysql', 'mysql');
 
        $this->nom = $nom;
        $this->prenom = $prenom;
        $this->login = $login;
        $this->mdp = $mdp;
       
    }

    function already_exist(){
   
        if(($this->login !="")&&($this->mdp !="")) {
            try{
                $requete = "SELECT `login`,`pwd` FROM `utilisateur` WHERE `login` = \"$this->login\" AND `pwd` = \"$this->mdp\"";
                $db->query($requete);
                $ligne = $db->num_rows($requete);   
                if ($data = $db->fetch_row($requete)){
                    return true;
                }   
                else return false;
           
            }catch ( db_exception $e ) {
                $e->die_on_error();
            }
        }
    }
   
}
En faisant ainsi le naviguateur ne m affiche plus rien... :(
J'ai egalement essayer de creer un attribut $db dans la classe Utilisateur comme ecrit en commentaire mais ca ne marche pas non plus.
QQ'un peut il m aider merci ;)

 

samedi 30 septembre 2006 à 20:23:12 | Re : probleme de classe

nagrom_om

Re,
qd je créé un attribut db dans la classe Utilisateur il m affiche comme erreur :
Fatal error: Class 'dbInterface' not found in D:\xampp\xampp\htdocs\class\utilisateur.php on line 26
Besoin d informations complementaires ?
Merci

 

dimanche 1 octobre 2006 à 00:19:04 | Re : probleme de classe

malalam

Administrateur CodeS-SourceS
hello,

tu essayes de faire quoi ? Utilise la classe d'abstraction dans une de tes classes, c'est ça ? (ce serait pas la mienne, par hasard, au passage...? Me rappelle quelquechose c'te classe lol).
dimanche 1 octobre 2006 à 00:30:03 | Re : probleme de classe

nagrom_om

La classe d'abstraction c celle de FhX  récupéré sur code-source : http://www.phpcs.com/codes/PHP5-COUCHE-ABSTRACTION-SGBD_35488.aspx
La j'ai reussi a faire ce que je voulais mais je ne suis pas sur que ca soit la bonne méthode.

Je créé un utilisateur comme ceci

function __construct($login="", $db="", $mdp="",$nom="", $prenom=""){

  $this->db = $db;
  $this->nom = $nom;
  $this->prenom = $prenom;
  $this->login = $login;
  $this->mdp = $mdp;
  
 }

Je lui passe donc en parametre lors de sa construction un objet de type database interface que j instencie sur chaque page de cette maniere

try {
  $db = dbInterface::GetInstance('mysql', 'mysql');
 } catch ( Exception $e ) {
  die ( $e->getmessage() );
 }

Ce que je veux faire c'est utiliser cette couche d abstraction afin de pouvoir ecrir des methodes dans la classe Utilisateur du genre :

// Fonction de remplissage total
 function select(){
 
  $requete = "SELECT `login`,`pwd`, `nom`,`prenom` FROM `utilisateur` WHERE `login` = \"$this->login\"";
  $this->db->query($requete);
  $data = $this->db->fetch_row($query);
  $this->mdp = $data[1];
  $this->nom = $data[2];
  $this->prenom = $data[3];
 
 }
 
 function insert($login, $mdp, $nom, $prenom){
 
  $requete = "INSERT INTO `utilisateur` (`nom`,`prenom`,`login`,`pwd`) VALUES(\"$nom\",\"$prenom\",\"$login\",\"$mdp\")";
  $this->db->query($requete);
  
 }

 

dimanche 1 octobre 2006 à 09:29:42 | Re : probleme de classe

malalam

Administrateur CodeS-SourceS
ah, le GetInstance m'a trompé ;-)

Etends, plutôt, la classe DB dans la classe que tu veux développer.
Quoi que, avec le singleton, ça peut être problématique...
Sinon, oui, tu peux faire ce que tu as fait : passer l'objet DB en paramètre, et l'utiliser comme une propriété de ta classe.

par contre... : $db = '' ? = null à la limite, et encore...cet objet est requis, pour que ta classe fonctionne. Donc, il ne doit pas être facultatif dans la construction de ta 2de classe.
dimanche 1 octobre 2006 à 16:29:50 | Re : probleme de classe

nagrom_om

Ok merci bien. Je vais donc continuer comme ca. Ca m'intrigue juste d avoir a instancier le singleton sur chacune de mes pages... Est il possible de le mettre en Session ? Cela est-il risqué ?

 

dimanche 1 octobre 2006 à 16:33:15 | Re : probleme de classe

nagrom_om

J'ai oublié qqch. En fait ce que je ne comprend pas c'est que je ne puisse pas faire
try {
  $db = dbInterface::GetInstance('mysql', 'mysql');
 } catch ( Exception $e ) {
  die ( $e->getmessage() );
 }
Dans le constructeur de mon objet en rajoutant :
@include ("../include/database.php");
@include ("../include/mysql.php"); 
au début ....

 



Cette discussion est classée dans : mysql, login, db, classe, mdp


Répondre à ce message

Sujets en rapport avec ce message

mot de passe + login simple [ par benjy54 ] bonjour,je souhaite faire un accès restreint à des personnes mais sans que ce soit compliqué (avec les sessions!)j'ai donc crée une table user et j'ai suppression [ par g_marvin ] bonjour,j 'ai un menu déroulant et je voudrais supprimer dans ma table l'enregistrement selectionner !!!!!!!!voici mon code: < :: PB MYSQL_FETCH_ROW :: [ par nougitch ] Bonjour à tous,Plutôt débutant en PHP, je vous explique.J'ai créé un espace membre avec une table "x2000_utilisateur".Ce qui me gêne c'est que quand q Authentification ie et firefox [ par mounelelabrador ] Bonjour, Je dois créer un site avec gestion membres, admins et vu que c'est pour un cours je ne peux pas vraiment télécharger sur internet des script Problème d'utilisation d'une classe MySQL du site [ par tataye ] Bonjour,Je suis en train de faire des tests avec la classe SQL  de FhX (source N°33135) et je rencontre actuellement quelques difficultés.J'ai fait un Pb classe [ par nagrom_om ] Bonjour,Toute une appli php4 a refaire autant que je me mette au php 5.0 ^^. Mais je reste toujours aussi nul.J ai une classe de connexion (j ai essay Authentification (encore une fois!) [ par geekette69 ] Bonjour à tous et désolée par avance de créer une énième discussion concernant l'authentification ...J'ai lu et me suis inspirée de différentes source aider moi svp [ par nagouza ] salemou 3alikom svp j'ai un probléme en verification de login et de mot de passe à partir de la baseet voila le code ://connexion à la base$db = mysql ticket a grattez [ par lpd11 ] Bonjour a tous, comme vous je suis un debutant en php mais ses dernier tant je me suis mis et j'ai réusis a faire un jeu de ticket a grattez le probl [Urgent] Problème [ par landolsi10 ] Bonjour lorsque je mai ma page dans le FTP et que je la fait executer et bien l'érreure suivante apparait: Parse error: syntax error, unexpected '<'


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales