Bonjour,
J'essaie de faire un require_once sur un fichier mais celui-ci ne fonctionne pas.
Mon code est le suivant : require_once("http://localhost/classe/classe.php");
Hors si je fais un require_once("classe/classe.php"), ça fonctionne.
Merci,
Version imprimable
Bonjour,
J'essaie de faire un require_once sur un fichier mais celui-ci ne fonctionne pas.
Mon code est le suivant : require_once("http://localhost/classe/classe.php");
Hors si je fais un require_once("classe/classe.php"), ça fonctionne.
Merci,
allow_url_fopen est bien activé dans ton php.ini ?
Tu as bien une version de PHP > 4.3.0 ?
Salut,
J'ai installé la version 5.1.4 de php.
J'ai vérifié dans le php.ini, et je n'ai pas de directive allow_url_fopen.
Merci,
Et dans le phpinfo ?Citation:
Envoyé par f1vincent
Oups, désolé, j'ai mal recherché.
J'ai bien cette directive et elle est bien à on.
Ce qui est étrange, c'est que j'ai l'impression qu'il charge bien le fichier puisque je n'ai pas de message d'erreur quant à l'ouverture du fichier.
C'est juste que lorsque j'essaie d'instancier la classe qui est dans ce fichier, j'ai un message qui me dit qu'il ne peut trouver la classe.
Merci,
Alors c'est que le problème provient sans doute du code, et pas de l'inclusion. Petite démonstration de l'intérêt qu'il y a à bien cerner son problème...Citation:
Envoyé par f1vincent
On attend donc le code d'instanciation, le message d'erreur, et des extraits choisis du code de déclaration de la classe.
Tout à fait, j'ai pas bien vu le pb au départ !
Alors voici mon architecture :
J'ai un répertoire c:\www qui est mon DocumentRoot.
Pour être bref, j'ai dedans mon fichier index.php ainsi qu'un répertoire classe dans lequel je glisse mes fichiers qui correspondent à des classes.
Voici un extrait de mon code d'index.php :
$hote="http://localhost";
require_once($hote."/classe/classemysql.php");
$mysql = new ClasseMysql();
Avec ce code, j'ai le message d'erreur suivant :
Fatal error: Class 'ClasseMysql' not found in C:\www\index.php on line X
Si le code est :
require_once(classe/classemysql.php");
$mysql = new ClasseMysql();
La classe est bien instanciée.
J'espère que c'est clair !
Merci,
Finalement, j'ai opté pour la solution faite dans GLPI (Gestionnaire Libre de Parc Informatique), pour la reconnaissance des chemins absolus.
Ca fonctionne.
Enfin, si quelqu'un a une solution a mon problème, ca m'intéresse quand même !
Lorsque tu fais une inclusion de fichier à distance par HTTP, le serveur apache interprète le code PHP correspondant. Ce que tu inclus est donc le résultat, du code HTML (sans doute rien dans ton cas) et pas du PHP. C'est donc normal que quand tu passes par HTTP, le code de ta classe ne soit pas disponible.
Désolé, j'aurais dû percuter plus tôt.
Ok, merci pour la réponse.
Maintenant je saurais !
;)