Cannot instantiate non-existent class: session

Cannot instantiate non-existent class: session - PHP - Programmation

Marsh Posté le 26-12-2006 à 12:22:23    

Bonjour,
je viens de récuperer un code contenant un

Code :
  1. $this->Session =& new Session();


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  :pt1cable:  
Et Php me retourne une pas jolie erreur fatale:  

Citation :

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  :fou:  
 
Si je fais un test avec

Code :
  1. !class_exists('Session')


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 !  :hello:


Message édité par papanoramix le 26-12-2006 à 12:43:56
Reply

Marsh Posté le 26-12-2006 à 12:22:23   

Reply

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).

Reply

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  

Reply

Marsh Posté le 26-12-2006 à 12:59:56    

Ton error_reporting est sur E_ALL ?

Reply

Marsh Posté le 26-12-2006 à 14:04:40    

oui

Reply

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 ? :??:

Reply

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 :spamafote:


Message édité par sielfried le 26-12-2006 à 15:09:07
Reply

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  :(


Message édité par papanoramix le 26-12-2006 à 15:14:17
Reply

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.


Message édité par sielfried le 26-12-2006 à 15:14:51
Reply

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 !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed