Bonjour,
Voila, je débute en poo et je souhaite réaliser la classe admin ci-dessous :
Petites explications : la variable status est égale à TRUE si l'admin s'est loggué. De plus on enregistre une variable de session $_SESSION['admin']. Ainsi à chaque fois que l'on crée une nouvelle instance $admin=new admin(), on regarde si $_SESSION['admin'] est définie. Si oui on a $admin->status=TRUE. Enfin la fonction afficher() permet d'afficher du texte à la condition que l'utilisateur soit loggué en tant qu'admin.
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 class admin { var $status=FALSE; function admin() { $this->status=isset($_SESSION['admin']); } function login($login='',$pass='') { $this->status=(($login==config_login)&&($pass==config_password)); if ($this->status) $_SESSION['admin']=1; return $this->status; } function logout() { $this->status=FALSE; session_destroy(); } function afficher($cont) { if ($this->status) echo $cont; } }
Je montre un exemple :
Ce code marche très bien losrque je l'exécute sur EasyPhp (PHP Version 4.3.10) mais lorsque j'essaie de l'exécuter sur mon serveur Free (PHP Version 4.4.3-dev), j'obtiens l'erreur suivante: Fatal error: Call to a member function on a non-object in /mnt/111/sdc/a/5/alemat13/radioonair/index.php on line 38
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $admin=new admin(); if ($admin->login("admin","admin")) echo "Identification réussie<br/>"; else echo "Mauvais nom d'utilisateur ou mot de passe"; $admin->afficher("Salut administrateur");
ce qui est bizarre, c'est que la ligne 38 correspond à la ligne "$admin->afficher("Salut administrateur");" et il ne retourne pas d'erreur pour la fonction login(), cependant cette fonction renvoie FALSE à chaque fois même si je mets le bon nom d'utilisateur et le bon mot de passe. En revanche, si je mets un mauvais nom d'utilisateur ou mot de passe, le code s'exécute comme prévu.
Merci de votre aide.
Partager