Bonjour,
J'ai un souci, une classe principale qui instancie toutes les autres.
Une page de mon site qui fait appel à l'une d'entre elle et celle-ci souhaite faire appel à une méthode d'une autre classe pourtant instanciée aussi.
Et c'est à ce moment que j'ai mon problème.
Je vais de toute façon mettre les sources en pièce attachée mais j'explique un peu.
Voici le log.php
L'endroit au cela plante..... dans subscribe.php
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
19
20
21
22 [09-Aug-2010 16:03:09] PHP Notice: Undefined property: Subscribe::$msgInst in F:\WebSites\jecrapahute\class\subscribe.php on line 207 [09-Aug-2010 16:03:09] PHP Stack trace: [09-Aug-2010 16:03:09] PHP 1. {main}() F:\WebSites\jecrapahute\lostpassword.php:0 [09-Aug-2010 16:03:09] PHP 2. setScreen->execute() F:\WebSites\jecrapahute\lostpassword.php:14 [09-Aug-2010 16:03:09] PHP 3. Skeleton->execute() F:\WebSites\jecrapahute\class\setScreen.php:136 [09-Aug-2010 16:03:09] PHP 4. Skeleton->displayPage() F:\WebSites\jecrapahute\class\newSkelt.php:261 [09-Aug-2010 16:03:09] PHP 5. require_once() F:\WebSites\jecrapahute\class\newSkelt.php:342 [09-Aug-2010 16:03:09] PHP 6. require_once() F:\WebSites\jecrapahute\config\myPage.php:175 [09-Aug-2010 16:03:09] PHP 7. require_once() F:\WebSites\jecrapahute\doc\do_lostpassword.php:77 [09-Aug-2010 16:03:09] PHP 8. require_once() F:\WebSites\jecrapahute\includes\canevas.php:31 [09-Aug-2010 16:03:09] PHP 9. Subscribe->getMessage() F:\WebSites\jecrapahute\form\lostpassword.php:159 [09-Aug-2010 16:03:09] PHP Fatal error: Call to a member function readMsg() on a non-object in F:\WebSites\jecrapahute\class\subscribe.php on line 207 [09-Aug-2010 16:03:09] PHP Stack trace: [09-Aug-2010 16:03:09] PHP 1. {main}() F:\WebSites\jecrapahute\lostpassword.php:0 [09-Aug-2010 16:03:09] PHP 2. setScreen->execute() F:\WebSites\jecrapahute\lostpassword.php:14 [09-Aug-2010 16:03:09] PHP 3. Skeleton->execute() F:\WebSites\jecrapahute\class\setScreen.php:136 [09-Aug-2010 16:03:09] PHP 4. Skeleton->displayPage() F:\WebSites\jecrapahute\class\newSkelt.php:261 [09-Aug-2010 16:03:09] PHP 5. require_once() F:\WebSites\jecrapahute\class\newSkelt.php:342 [09-Aug-2010 16:03:09] PHP 6. require_once() F:\WebSites\jecrapahute\config\myPage.php:175 [09-Aug-2010 16:03:09] PHP 7. require_once() F:\WebSites\jecrapahute\doc\do_lostpassword.php:77 [09-Aug-2010 16:03:09] PHP 8. require_once() F:\WebSites\jecrapahute\includes\canevas.php:31 [09-Aug-2010 16:03:09] PHP 9. Subscribe->getMessage() F:\WebSites\jecrapahute\form\lostpassword.php:159
$this->msgInst->readMsg fait appel à un pointeur sur une instance de msg (msgInst) définit dans une classe skeleton.
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 }/** * function getMessage() * ===================== */ function getMessage() { switch( $_SESSION['subscribe_curr']) 207=> { case INITSUB : $message = $this->msgInst->readMsg( $this->message[ $_SESSION['subscribe_curr'] ] ) ; break ; case INITUPD : $message = $this->msgInst->getMsg("UPDDATA") ; break ; case INITPSW : $message = $this->msgInst->getMsg("INEMAIL") ; break ;
On trouve la classe subscribe qui fait appel à une méthode de la classe message, toutes 2 instanciées dans la classe "maitre" skeleton.
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 /** * Instanciation de la classe Message * ---------------------------------- */ if ($this->debug) print("==========> Instanciating Message" . CRLF ); $this->msgInst = new Message($this->dbInst,$this->debug) ; $this->msgInst->execute() ; /** * Instanciation de la classe Subscribe * ------------------------------------ */ if ($this->debug) print("==========> Instanciating Subscribe" . CRLF ); $this->subInst = new Subscribe($this,$this->debug) ; $this->subInst->execute() ;
Je bloque actuellement sur ce problème et j'ai essayé bcp de syntaxes sans trouver la bonne.
J’oubliais l'endroit ou j'appelle la classe suscribe, dans do_lostpassword.php
Tout cela semble peut être un peu compliqué - je le concède - je suis passé au modèle OOP pensant simplifier mon site, je ne pense pas y être encore arrivé....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $this->subInst->actualize ( array( INITPSW , CATPCHA , CONFIRM ) , array( INEMAIL ) , // Message array( "Rentrez votre Email" , "Rcopiez le code" , "Vous confirmez ?" ) // Button ) ;
Merci à celui qui me sortira de là car cela lui demandera un peu de fouilles....
Partager