Bernardo, si tu mets $userobj=new erozia_user(); ligne 40 avant l'include, est-ce que ça passe ? (j'espère que non, mais bon... on ne sait jamais...)
Bernardo, si tu mets $userobj=new erozia_user(); ligne 40 avant l'include, est-ce que ça passe ? (j'espère que non, mais bon... on ne sait jamais...)
Tu viens de faire quoi ?oui, je viens de le faire, même resultat
J'ai pas étudier en détail tout tes include et require, mais je soupconne fortement que le problème viens de la
c'est ce que j'etais en train de faire, ca ne fonctionne pas et j'obtiens une autre erreur qui me dit que l'objet n'exite pas
Fatal error: Call to a member function on a non-object in f:\indeeplight.net\demo\news\news_bibliotheque\scripts\erozia_liste_sender_ticket.php on line 15
par contre en ecrivant ceci juste avant l'include de la ligne 40
je vois que l'objet existe mais que je ne peux pas l'utiliser dans le fichier inclus a la ligne 40
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $userobj= new erozia_user(); var_dump($userobj);
effectivement Eric93, si je prend la totalité du fichier inclus a la ligne 40 et que je remplace l'include, ca marche.
Mystere, pourquoi?
Je dois partir, pas le temps d'étudier en détail, mais le problème viens de tes include et require, cherche de ce coté la
Merci pour tout en attendant,
je viens de verifier, le fichier est inclus correctement, la seule difference, c'est que ca ne marche pas depuis le fichier inclus et ca marche si le code est en dure a la place de l'include.
Y a t'il un bug existant au niveau des incluse?
Je sais que depuis PHP4 il n'y a plus de différences, mais si tu mets require au lieu d'include ligne 40, as-tu le même résultat ?
En fait, j'ai lu un truc dans la doc php qui dit que les variables sont adapté au contexte dans lequel elle sont importeés.
je pense que la porté des variables est modifiée par l'include et ca marche plus
faut que je verifis ca demain
Non, il y a une grande différence : require génère une erreur fatale, ce qui confirme ou infirme la bonne inclusion. Personnellement, je ne fais que des require_once, et j'utilise très rarement les include, car la plupart du temps le code dépend d'une inclusion réussie.
Normalement ça aurait dû coincé avant, mais je pense qu'il serait bon, de rendre au moins le constructeur public. Je crois que sans déclaration explicite, les functions sont privées. Et c'est de toute façon une bonne habitude à prendre de spécifier private ou public.
oui, oui, il y a cette différence, mais ce n'est pas ce qui m'interessait dans mon propos. La différence en question était require inclus quoiqu'il arrive (donc avant interprétation) et include peut être soumis à condition (donc inclusion pendant le déroulement du code).
Bernardo. Toujours pour tester, si tu remplace le require_once qui inclus ta classe par un require, juste pour voir (vu qu'on ne connait pas tout le code... on ne sait jamais)
Bonjour à tous,
En remplacant le require_once par require, le resultat est le même.
Il faut quand même que j'explique une chose.
Dans le script de base la fonction afficher_box est appeler pas mal de fois, en fonction des boites a afficher sur l'ecran.
A chaque fois quelle est appelée, il peut y avoir un script venant d'une biblliotheque qui est inclus et qui s'execute a ce moment.
Jusqu'a maintenant, a l'affichage de la page, tous les scripts sont inclus correctement et s'execute.
Il n'y a que celui avec l'instanciation de l'objet qui me donne l'erreur
cannot instantiate non-existent class: erozia-user
par contre comme le l'expliquais plus haut, si je remplace l'include par le code en dur, ca marche.
Ce que je constate par le message d'erreur, c'est qu'avec l'include le script se comporte comme s'il ne pouvait voir la class importé par require_once ou require.
Il y a des fois ou je suis vraiment trop con.
J'ai trouvé pourquoi ca ne fonctionne pas.
Au depart, quand la page se charge, le script en question n'est pas inclus.
celui ci est inclus au moment ou je click sur un petit bouton qui declenche une fonction ajax.
Donc la effectivement cela ne peut que ne pas fonctionner si le require est hors de ce script.
Desolé de vous avoir fait chercher pour rien, il y a des fois ou on est aveuglé par une erreur sans voir le detail tres simple qui est en evidence
C'est rassurant on peut continuer à utiliser les includes alors
Bonne continuation
stf
Partager