Cannot instantiate non-existent class: session - PHP - Programmation
Marsh Posté le 26-12-2006 à 12:39:55
Fais du debug basique, fous un echo juste avant la définition de la classe pour vérifier que le truc est bien inclus, etc... c'est sûrement tout con.
Soit dit en passant, sous EasyPHP, tu as sûrement du PHP4, donc si les classes sont PHP5, ça risque de merder (mais pour le coup je doute que ce soit le problème).
Marsh Posté le 26-12-2006 à 12:47:24
Si je mets un echo 'bla bla'; avant la définition de la class, il s'affiche bien donc mon chemin est bon,
si je mets un echo 'bla bla'; dans la class, j'obtiens cette erreur:
Citation : Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in s:\site\incs\core\session.inc on line 21 |
Sinon la version de php qui fonctionne en ligne avec cette classe est la 4.3.10, donc la meme que moi
Marsh Posté le 26-12-2006 à 14:16:06
je viens de trouver d'où vient le problème:
le chemin dans mes includes était sous forme de lien absolu:
Citation : include('http://127.0.0.1/site/class.php'); |
et il n'en voulait pas, bien que le chemin soit valide.
si je fais un include avec lien relatif, ça fonctionne
Citation : include('class.php'); |
Pourquoi ça ?
Marsh Posté le 26-12-2006 à 15:07:54
allow_url_fopen doit être à off dans ton php.ini (ou alors t'as une version de PHP < 4.3 mais d'après ce que tu dis ce n'est pas le cas).
edit: de toute façon c'est pas génial les include avec des liens entiers comme ça
Marsh Posté le 26-12-2006 à 15:12:51
si je le mets à off, il ne trouve pas le fichier...
edit: c'est pas génial, mais ça devrait fonctionner non
Marsh Posté le 26-12-2006 à 15:14:32
"doit être à off" <=> "est sûrement à off", pas "il faut le mettre à off".
Mets-le à on si tu veux que ça passe.
Normalement c'est activé par défaut, en tout cas dans les versions récentes de PHP.
Marsh Posté le 26-12-2006 à 15:20:17
oui, il était déjà activé.
Je comprends pas pourquoi il ne charge pas les classes quand les lien est absolu...
mystere !
Marsh Posté le 26-12-2006 à 12:22:23
Bonjour,
je viens de récuperer un code contenant un
la class Session contenant une méthode Session.
avec plus haut dans la page un inlude_once appelant un include qui appelle lui-même le fichier contenant la class Session
Et Php me retourne une pas jolie erreur fatale:
Fatal error: Cannot instantiate non-existent class: session in s:\site\incs\ui\uirequesthandler.inc on line 46
Pourtant les chemins déclarer dans les includes sont bons, mais il ne charge pas la class Session
Si je fais un test avec
il me dit bien qu'il ne la trouve pas.
Qu'est ce que j'ai raté ? Y a t'il quelque chose à modifier dans le php.ini pour utiliser des class ?
j'utilise easyphp 1.8
Merci pour votre aide !
Message édité par papanoramix le 26-12-2006 à 12:43:56