Accueil > Forum > > > > objet
objet
mercredi 13 juillet 2005 à 09:45:05 |
objet

crazykamel
|
Salut à tous ! Comment je peux récupérér un attribut d'un objet ? Cette ligne est correcte ? echo "<tr><td>Adresse e-mail: </td><td><input type=text name=email value=" .$OMembre->mail."></td></tr>"; //avant j'avais $row[7] à la place.
|
|
mercredi 13 juillet 2005 à 09:54:25 |
Re : objet

malalam
|
Hello, oui, si tu veux acceder a une propriete membre d'un objet, tu dois bien faire ca. $objet -> propriete Apres, mieux t'aider impliquerait de savoir comment est structuree la classe. Est-ce que ta ligne est correcte...heu...plus ou moins. Moi je sortirais le php, la, et tes attributs n'ont pas de guillemets : <tr><td>Adresse e-mail: </td><td><input type="text" name="email" value="<?php echo $OMembre->mail; ?>" /></td></tr>
|
|
mercredi 13 juillet 2005 à 10:47:31 |
Re : objet

crazykamel
|
Notice: main() [ function.main]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "BDMembres" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in d:\kalisport\KaliNet\site\espace_membre\infos_perso.php on line 29 il le prend pas. Je te met ma classe AllMembre <?php require_once('BDmembres.php'); class ClassAllMembres { private $_proprietes = array('_TOMembres','_dataOK'); public function __construct() { $this->_TOmembres = array(); $this->_dataOK = $this->chargerAllMembres(); } public function chargerAllMembres() { $req = 'SELECT * FROM membres'; if (!$result = $GLOBALS['_hBD']->executerRequeteRes($req)) { echo 'Aucun membre chargé pour S' . $this->_id_membre .'<br>'; return false; } foreach ($result as $row) { $this->_TOMembres [$row['id_membre']] = new BDMembres($row['id_membre'],$row['nom'],$row['prenom'],$row['sexe'],$row['naissance'],$row['cp'],$row['mail'],$row['mdp'],$row['url'],$row['infos_comp'],$row['url'],$row['tel']); } return true; } public function authentifier($mail, $mdp){ foreach ($this->_TOMembres as $OMembre) { if ($OMembre->_mail == $mail and $OMembre->_mdp == $mdp) return $OMembre; } return false; } } ?>
|
|
mercredi 13 juillet 2005 à 10:48:16 |
Re : objet

crazykamel
|
dsl pour l'allure de mon code en postant ç'est parti en sucette.
|
|
mercredi 13 juillet 2005 à 11:00:16 |
Re : objet

garfield90
|
Salut, connais tu la POO, car moi en tant qu'interpreteur PHP je capte propriétés : $_proprietes[0] = '_TOMembres'; $_proprietes[1] = '_dataOK'; méthodes : __construct() chargerAllMembres() authentifier($mail, $mdp); de plus dans ta methode authentifier, tu utilises $OMembre->_mail, essaye avec ca mais je ne garantis rien Au fait as tu testé tes différentes méthodes, je ne suis pas sur que ca marche. Si tout marche, je voudrais bien que tu m'expliques comment t'as fait car, je pense comprendre ton idée mais je vois pas comment ca marche dans le cas présent "They are 10 sorts of persons whose understand binary and whose not"
|
|
mercredi 13 juillet 2005 à 11:26:44 |
Re : objet

malalam
|
Hello, ouais, plusieurs problemes la. En effet tes variables membres ne sont pas correctes. De plus, ton $proprietes est prive, et ne peut donc pas etre accede a l'exterieur de ta classe. Tu dois declarer au moins public ce membre : public $TOMembres; Apres dans ton constructeur, tu peux mettre ca : $this->_TOmembres = array(); et acceder a _TOmembres a l'exterieur de ta classe. Ensuite quand tu utilises ca : $GLOBALS['_hBD']->executerRequeteRes($req) $GLOBALS['_hBD'], c'est quoi ? C'est bien un objet declare...? Ou ? Quand ? Ensuite, tu fais de _TOmembres un tableau indice avec l'id d'un utilisateur, contenant un objet avec des proprietes que l'on ne connait pas. Mettons que BDmembre aient une propriete : public $email dans lequel tu mets le resultat de $row['email'], tu y accederas, si tu veux passer par cette classe, ainsi : echo $objetMembre -> _TOmembres[$idmembre] -> email; Mais je suis comme Garfield, je ne suis pas sur que ton bazar fonctionne, et ca me semble bien complique comme facon de faire.
|
|
mercredi 13 juillet 2005 à 14:49:47 |
Re : objet

crazykamel
|
Je suis obligé de me servir de ces classes car on est plusieurs à s'en servir. Par contre ce qui est chiant, c'est d'avoir à recoder un espace membre fonctionnel en objet... Alors je vais vous mettre les classes dont je me sers. //ClassAllMembres <?php require_once('BDmembres.php'); class ClassAllMembres { public $_proprietes = array('_TOMembres','_dataOK'); //Je l'ai passé en public comme demandé public function __construct() { $this->_TOmembres = array(); $this->_dataOK = $this->chargerAllMembres(); } public function chargerAllMembres() { $req = 'SELECT * FROM membres'; if (!$result = $GLOBALS['_hBD']->executerRequeteRes($req)) { echo 'Aucun membre chargé <br>'; return false; } foreach ($result as $row) { $this->_TOMembres [$row['membreID']] = new BDMembres($row['membreID'],$row['nom'],$row['prenom'],$row['sexe'],$row['naissance'],$row['cp'],$row['mail'],$row['mdp'],$row['url'],$row['infos_comp'],$row['tel']); } return true; } public function authentifier($mail, $mdp){ foreach ($this->_TOMembres as $OMembre) { if ($OMembre->_mail == $mail and $OMembre->_mdp == $mdp) return $OMembre; } return false; } } ?> ////Class BDMembre public $_proprietes = array('_membreID', '_nom', '_prenom', '_sexe', '_naissance', '_cp', '_mail', '_mdp', '_url', '_infos_comp', '_tel'); //constructeur public function __construct($membreID = DUMMY_INT, $nom = DUMMY_INT, $prenom = DUMMY_INT, $sexe = DUMMY_INT, $naissance = DUMMY_INT, $cp = DUMMY_INT, $mail = DUMMY_INT, $mdp = DUMMY_INT, $url = DUMMY_INT, $infos_comp = DUMMY_INT, $tel = DUMMY_INT) { if ($membreID == DUMMY_INT or $nom == DUMMY_INT or $prenom == DUMMY_INT or $sexe == DUMMY_INT or $naissance == DUMMY_INT or $cp == DUMMY_INT or $mail == DUMMY_INT or $mdp == DUMMY_INT or $url == DUMMY_INT or $infos_comp == DUMMY_INT or $tel == DUMMY_INT) { if ($membreID == DUMMY_INT) { echo 'membreID non renseigné dans la construction de la classe BDMembres<br>'; } if ($nom == DUMMY_INT) { echo 'nom non renseigné dans la construction de la classe BDMembres<br>'; } if ($prenom == DUMMY_INT) { echo 'prenom non renseigné dans la construction de la classe BDMembres<br>'; } if ($sexe == DUMMY_INT) { echo 'sexe non renseigné dans la construction de la classe BDMembres<br>'; } if ($membreID == DUMMY_INT) { echo 'naissance non renseigné dans la construction de la classe BDMembres<br>'; } if ($cp == DUMMY_INT) { echo 'membreID non renseigné dans la construction de la classe BDMembres<br>'; } if ($mail == DUMMY_INT) { echo 'membreID non renseigné dans la construction de la classe BDMembres<br>'; } if ($mdp == DUMMY_INT) { echo 'membreID non renseigné dans la construction de la classe BDMembres<br>'; } if ($url == DUMMY_INT) { echo 'membreID non renseigné dans la construction de la classe BDMembres<br>'; } if ($infos_comp == DUMMY_INT) { echo 'membreID non renseigné dans la construction de la classe BDMembres<br>'; } if ($tel == DUMMY_INT) { echo 'membreID non renseigné dans la construction de la classe BDMembres<br>'; } throw new Exception(); } $this->_TOmembres = array(); //rajouté comme conseill $this->_membreID = $membreID; $this->_nom = $nom; $this->_prenom = $prenom; $this->_sexe = $sexe; $this->_naissance = $naissance; $this->_cp = $cp; $this->_mail = $mail; $this->_mdp = $mdp; $this->_url = $url; $this->_infos_comp = $infos_comp; $this->_tel = $tel; } public function __set($nom, $valeur ) { if (!in_array($nom,$this->_proprietes,true)) { echo 'propriete ' .$nom .' INCONNUE pour objet Membres<br>'; throw new Exception(); } $this->_proprietes[$nom] = $valeur; } public function __get($nom) { if (!in_array($nom,$this->_proprietes,true)) { echo 'propriete ' .$nom .' INCONNUE pour objet Membres<br>'; throw new Exception(); } return $this->_proprietes[$nom]; } } ?> //////////////////// $GLOBALS['_hBD'] c'est un objet de connexion à la base Voilà comment je gère la connexion d'un membre $GLOBALS['_hBD'] = new ClassBD(); $OAllmembres = new ClassAllMembres(); if (!$OMembre = $OAllmembres->authentifier($mail,$mdp)) { echo "<br><br><center><font color='#990000'>Erreur cet email (et/ou mot de passe) est incorrect!</font></center><br>"; } else { //connexion établie //-------------Cookies----------------- setcookie('mail', $mail, time()+2592000); //délai d'un mois setcookie('mdp', $mdp, time()+2592000); //-------------Session----------------- $_SESSION['OMembre']= $OMembre;//je m'en sers comme variable de session, comme ça je peux (je voudrais) accéder à ses propriétés header('Location: espace_membre.php?page=3');//redirection page membre
|
|
mercredi 13 juillet 2005 à 15:11:04 |
Re : objet

garfield90
|
Es tu sur que tes classes fonctionnent ( ce qui ne veut pas dire pas de probleme de parsage ) teste toutes tes methodes et regardes si les propriétés ont bien les valeurs attendues. perso, je ferai plutot une classes dans ce genre. <?php require_once('BDmembres.php'); class ClassAllMembres { // déclaration de mes propriétés private $_TOMembres: private $_dataOK; // déclaration des méthodes private function __construct() { $this->_TOmembres = array(); $this->_dataOK = $this->chargerAllMembres(); } etc. car dans ton cas, je crois que pour acceder a tes propriétés tu dois faire private function __construct() { $this->_proprietes[0] = array(); // _TOmembres $this->_proprietes[1] = $this->chargerAllMembres(); // _dataOK } ce que je ne trouve pas très lisible mais bon, j'ai pas tester et je trouve que ton source n'est pas très clair. en fait, je ne ferai pas une classe spécifique classAllMembres mais une fonctions qui retourne un tableau d'objet genre private function listAllMembre() { // requetes qui recupere les id de tous les membres while ( $array = mysql_fetchrow($result) ) { $ret[] = new membre($array['id']); } return $ret; } utilisation : $tab_listMembres = $objMembre->listAllMembres(); foreach ( $tab_listMembres as $objUnMembre ) { echo $objUnMembre->id,' - ', $objUnMembre->nom,'<br />'; } sachant que toujours perso, je fais une methode de lecture et d'ecriture de chaque propriété Fais ce que tu veux de ces pistes, je pense que tu es parti sur une mauvaise base pour l'utilisation des objets. Vois avec tes collegues pour qu'il t'explique la facon dont il utilise la classe car moi je la comprends pas des masses "They are 10 sorts of persons whose understand binary and whose not"
|
|
jeudi 14 juillet 2005 à 08:45:54 |
Re : objet

malalam
|
Hello, class ClassAllMembres { public $_proprietes = array('_TOMembres','_dataOK'); //Je l'ai passé en public comme demandé public function __construct() { $this->_TOmembres = array(); $this->_dataOK = $this->chargerAllMembres(); } oui mais non, lol. Oublions la classe, voila tres exactement ce que tu fais avec de la programmation...heu..."normale"... : $tableau = array ('toto', 'tata'); $toto = array (); $tata = '123'; Et tu crois que $toto et $tableau['toto'] sont la meme chose, mais ce n'est pas le cas! _TOmembres est un des index de la propriete membre $_proprietes, tu ne peux pas y faire appel comme tu le fais : $this -> _TOmembres parce que cette propriete n'existe pas! ce qui existe par contre : $this -> _proprietes['_TOmembres'] ca oui. Tu confonds, etrangement, tableaux et variables, la.
|
|
Cette discussion est classée dans : mail, objet
Répondre à ce message
Sujets en rapport avec ce message
envoi page par mail [ par ag3c ]
j'ai une page dynamique crée à la volée sur laquelle j'ai crée un bouton "envoyer cette page" quand on clique dessus cela ouvre une petite fenêtre où
mail et ovh [ par Nicorad ]
Bonjour à tous, voila j'ai essayé de créer un formulaire de contact, et je veux que les données soit envoyé sur une de mes adresses mail.J'ai essayé a
envoi de mails prédéfinis [ par vegetalain ]
Salut, je mets ma question dans divers car je ne sais pas trop où la mettre sinon. voilà, j'aimerais faire en sorte que, à des jours prédéfinis (les 1
envoi de mail [ par abdouinfomiage ]
slt les amis j veux envoyer un e-mail sous php mais ca marche pas j utilise le code suivant: envoi.php:http:
Formulaire et envoi de mail [ par Becca ]
Bonjour,J'ai fait un formulaire qu'une fois remplit ça m'envoie un mail (fonction mail()). Il y a le champ nom, objet, adresse et message.Je reçois bi
Formulaire et envoi de mail [ par Becca ]
Bonjour, j'ai un petit problème avec le formulaire. En fait quand les personnes remplissent le formulaire je voudrais recevoir par mail leur réponse.
Impossible de rediriger une page [ par frazeks1989 ]
Bonjour,J'ai un problème avec une fonction mail qui est censsé rediriger simplement vers une page(error_mail.html) au cas que tous les champs n'ont pa
mail de confirmation plus piece jointe [ par sarita1987 ]
Bonjour à tous j'ai créé un formulaire d'insertion qui conserne la déclaration d'un sinistre pour un site d'assurance plus sa base de donnéesje voudra
Mail php, tableau html et fichiers xls [ par chrrod ]
Bonjour,Voici mon problème:Je désire envoyer un mail contenant des fichiers xls présentés dans un tableau de deux colonnes, une contenant les titres e
e-mail automatique [ par yohanndu56 ]
Bonjour j'ai un site internet je voudrait mettre un code php ou html sur une de mes page web qui envoi un e-mail a moi et a celui qui est sur la page
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|