begin process at 2012 02 15 23:53:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

POO

 > 

Classes & Objets

 > 

Espace membre objet constructeur sans paramètres...


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

Espace membre objet constructeur sans paramètres...

vendredi 19 décembre 2008 à 15:22:19 | Espace membre objet constructeur sans paramètres...

alphacrash

Salut, voilà j'essaye de créer un espace membre en objet PHP5 et j'ai un souci, je n'arrive pas à utiliser un objet crée dans une portion de if.
En fait sur ma page index.php j'ai un formulaire dont l'attribut action envoie vers index.php?page=membre.
Dans cette page membre j'ai ce traitement:
<?php

require("config.inc.php");
require("database.php");
require("users.php");

extract($_POST);
if(isset($login)&&isset($pass)){
   
$myUser = new users($login,$pass);
    if($myUser->logging()){
   
    echo "Bienvenue ".$_SESSION["login"];echo "<a href=\"index.php?action=deco\">Deco</a>";}
    else{
    echo "Login invalide";
    }
}

   
?>
Mais le problème est que mon objet ne pourra etre utilisé que dans mon bloc IF et ne sera crée que si le formulaire a été soumis.
je voudrais pouvoir appliquer ma méthode deconnection(), mais je ne le peux :-( si quelqu'un a un coup de main a me filer ...merci d'avance.

Coding is not a crime!
samedi 20 décembre 2008 à 10:39:46 | Re : Espace membre objet constructeur sans paramètres...

malalam

Administrateur CodeS-SourceS
Hello,

j'ai lu ton post hier, mais j'avais la flemme d'y répondre...comme personne ne l'a fait depuis, bah, je me dévoue...
Et si j'avais la flemme, c'est parce que ton truc, c'est un problème de modélisation, de conceptualisation, et que c'est tjrs le plus long à expliquer!
Déjà, commence par débroussailler un peu ton bin's : explique mieux ce que tu veux faire, pourquoi, et comment. Parce que ça reste très flou.
Je vais quand même me hasarder... : en gros, t'as un formulaire d'identification en POST, sur ta page d'accueil. Ton code vérifie si l'identification est réussie, et dans ce cas, instancie l'objet "user", qui contient une méthode de déconnexion. Mais, une fois le gars loggé, s'il bouge, il reste loggé mais le formulaire n'est pas soumis (forcément, il s'est déjà loggé), et comme tu n'instancies ton objet QUE si le formulaire est soumis, tu ne peux plus faire appel à la déconnexion.
C'est ça ?
Si c'est ça, tu t'y prends très mal :-)
Ton objet users se construit avec un login et un pwd...pourquoi? C'est ta 1ère erreur. Cela implique que sur chaque page, tu es obligé de lui passer un login et un mot de passe...si tu veux pouvoir réinstancier ton objet, et donc, tu dois te trimballer ces 2 variables en session. C'est inutile...D'autant plus qu'un "utilisateur" n'est pas forcément un "membre" de ton site.
Dans l'absolu, tu devrais avoir une classe abstraite users, et des classes étendues derrière, pour le membre, l'admin, etc...(c'est juste UN exemple, il y a des milliers de façons de faire).
Mais bon...en conservant ton idée, il te manque un truc seulement : teste ta session. Si $_SESSION['login'] existe, c'est que le gars est identifié, donc tu peux instancier ton objet. Manque le mot de passe...d'où ma suggestion de ne pas créer un constructeur aussi restrictif. Selon ton modèle, tu dois alors trimballer aussi le mot de passe en session, et le passer au constructeur du coup.
Mais je le répète, c'est tordu...
Tu devrais plutôt avoir un constructeur sans argument, et une propriété $iUserId, par exemple. Et une méthode : login() prenant un login et un mot de passe, qui renvoie le $iUserId, et remplit la propriété, si le gars est identifié, false sinon.
Cette version oblige à vérifier pour la plupart des actions que tu aies un $iUserId avant de faire quoi que ce soit. Il y a d'autres moyens...beaucoup d'autres, mais restons simples, d'autant que je ne connais pas ton niveau.
 
dimanche 21 décembre 2008 à 12:48:05 | Re : Espace membre objet constructeur sans paramètres...

alphacrash

ok , merci !
C'est vrai que j'ai codé ça à l'arrache en faisant un test. Mais il est clair qu'au niveau de la modelisation c'est n'importe quoi.
Je vais revoir ma modélisation en mettant une classe users et un constructeur sans paramètres  pour instancier un objet user de cette manière : $myUser = new user();
Et si le formulaire est soumis alors j'appellerais une méthode publique par exemple setUserSettings($login,$pass).
Je pense que c'est plus judicieux non ?

Coding is not a crime!
dimanche 21 décembre 2008 à 12:59:51 | Re : Espace membre objet constructeur sans paramètres...

malalam

Administrateur CodeS-SourceS
Par exemple. Voire statique...ça peut faire l'objet d'une usine (voir design pattern factory), dont on testerait le retour. Si c'est un objet, l'identification est réussie, si c'est false, elle est échouée...
Enfin, encore une fois, il y a mille façons de faire. Trouve celle qui t'arrange.


Cette discussion est classée dans : php, login, objet, membre, if


Répondre à ce message

Sujets en rapport avec ce message

session_is_registered() [ par tweeder ] Bonjour, je vais essayer d'être le plus clair possible.Voila je veux sécuriser mon site grâce au php avec session_is_registered(). J'ai donc une page variables de session [ par tweeder ] BonjourJ'ai posé la question plus tôt cette semaine mais je crois que je m'étais mal exprimévoila j'aimerais récupérer ma variable de session enregist Problème assez important [ par Bartheleway ] Voilà, j'ai un espace membre. Mais j'ai fait pas mal d'erreur de progra aparament.ERREUR : $login = $_SESSION['login']; include_path='variable.php.inc php sql affiché si [ par olvean ] Bonjour alors voila je cherche quelqu'un qui pourrai m'aider à afficher les objet d'un membre uniquement si il lui appartient. donc en gros je voudrai Aide espace membre [ par vetudiant ] Rebonjour, suite à une faute de ma part, je refais ce message afin d'élucider mon probleme. On m'a apparemment dit de mieux structurer mes pages, ma Authentification php [ par loviso ] Salut Je suis entrain de rediger un script d'authentification,il parait qu'il y a un probléme mais je sais pas où,même lorsque j'écris les logins et m Pb perte de login [ par AlexTheDoctor ] Bonjour à tous!! Voilà je débute en php, et j'ai un petit soucis. J'ai 2 pages "login.php" et "index.php" (qui comprend un menu à droite). Je rentre menu php avec sécurité et gestion de doirts [ par patric1014 ] bonjour, SVP j'ai besoin d'aide d'urgence je suis débutant en php POO et je travail sur une application et je devais faire un systeme t'authentificati probleme d'instance de classe [ par gretata ] bonjour a tous !! j'ai un problème au niveau des objets en PHP, je ne comprend pas bien comment ils fonctionnent. j'essai de faire un get sur un obj wml et php [ par aksegaly ] En faite je veux acceder o fochier login.php apres validation ,mais il se trouve que le programme m'affiche la page d'acceuil...


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,718 sec (4)

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