Gros souci avec includes
Résolu
Bonjour,
je rencontre des difficultés avec mes fichiers includes
Après quelques recherches, mon souci est lié à l'utilisation de require dans mon code php
EDIT: Ajout des balises de code
en local tout est parfait,
mais chez l'hebergeur, c'est
Cette page ne fonctionne pas Impossible de traiter cette demande via je2menage.net à l'heure actuelle.
HTTP ERROR 500
Merci encore
je rencontre des difficultés avec mes fichiers includes
Après quelques recherches, mon souci est lié à l'utilisation de require dans mon code php
<?php require 'includ/includ.php'; ?>
EDIT: Ajout des balises de code
en local tout est parfait,
mais chez l'hebergeur, c'est
Cette page ne fonctionne pas Impossible de traiter cette demande via je2menage.net à l'heure actuelle.
HTTP ERROR 500
Merci encore
Configuration: Windows / Chrome 71.0.3578.80
9 réponses
-
ModérateurBonjour,
Que contient le fichier que tu cherches à inclure ?
As tu la même version de php en local et sur ton hébergeur ?
Es tu sûr du chemin vers le fichier ?
NB: Pour poster du code sur le forum, merci de le faire en utilisant LES BALISES DE CODE (et en y précisant le langage)
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
-
Je pense que le souci ne provient pas de la version de php en local et sur ton hébergeur , ni
du chemin vers le fichier ?
mais qu'il est lié au contenu du fichier que veux inclure.<?php require 'Classes/Db.php'; require 'Classes/panier.php'; require 'Classes/auth.php'; $DB = new Db(); $panier = new Panier($DB); // cacher les erreurs pour la production ini_set('error_reporting', 0); // afficher les érreurs lors du developpement //ini_set('error_reporting', E_ALL); ?>
EDIT : Ajout des balises de code ( encore .... !!!! )
Merci bien pour votre disponibilité-
ModérateurDéjà... le code permettant d'afficher les erreurs php se place AVANT le code php.... (donc en tout premier dans ton script ! )
Ensuite, le code que tu nous montres n'est pas, en soit, une cause de souci.
Sauf que là aussi tu y fais des require... et qu'on ne sait pas :
- Ce que contiennent ces fichiers.
- Le nom des fichiers sur le serveur et leur emplacement
NB: Attention.. si en local tu étais en windows.. et que maintenant tu es sur un linux.... le nommage des fichiers ( et l'utilisation des majuscules/minuscules) à sont importance.
Sous windows.. que le fichier se nomme : Db.php ou db.php lui importe peu... mais sous linux.. il s'agit de deux fichiers différents pour lui !
-
-
ok, je travail sur Windows en local
chez l'hébergeur c'est linux.
Pour les requires
- un fichier nommé, Db.php'; pour me connecter sur la BD, placé dans un dossier nommé classes
- un autre fichier nommé, panier.php'; pour me connecter à mon panier, placé dans un dossier nommé classes
- un 3 ème fichier nommé, auth.php'; pour me connecter sur la BD en tant que utilisateur, placé dans un dossier nommé classes
UN AUTRE DOSSIER NOMME INCLUDES? CONTENANT 3fichiers différent
- header.php
-footer.php
-includes.php
voici comment se presente les fichiers et dossier dans mon poste de travail -
Non-non
Dossier Classes avec C majuscule, et
Classes/Db.php
/panier.php
/auth.php
dossier includes/includes.php
/header.php
/footer.php
merci encore -
Modérateur- As tu activé correctement l'affichage des erreurs PHP au début du script comme je te l'ai indiqué ?
- As tu essayé d'effacer (ou au moins de mettre en commentaire) les lignes de tes fichiers puis tu les remets une par une pour voir si le souci apparait.. jusqu'à trouver la/les lignes fautives...
-
OUI, et voici comment j'ai procedé
<?php
// cacher les erreurs pour la production
ini_set('error_reporting', 0);
// afficher les érreurs lors du developpement
//ini_set('error_reporting', E_ALL);
require 'Classes/db.php';
require 'Classes/panier.php';
require 'Classes/auth.php';
$DB = new db();
$panier = new Panier($DB);
?>
As tu essayé d'effacer (ou au moins de mettre en commentaire) les lignes de tes fichiers puis tu les remets une par une pour voir si le souci apparait.. jusqu'à trouver la/les lignes fautives...
Oui et après cela
https://je2menage.net/cgi-sys/suspendedpage.cgi (résultat= page blanche)
AU NIVEAU DOSSIER includes voici le résultat
https://je2menage.net/cgi-sys/suspendedpage.cgi (résultat = http erreur 500)
https://je2menage.net/cgi-sys/suspendedpage.cgi ( c'est parfait)
https://je2menage.net/cgi-sys/suspendedpage.cgi (c'est parfait)
AU NIVEAU DU DOSSIER Classes, voici les résultats
https://je2menage.net/cgi-sys/suspendedpage.cgi (résultat= page blanche)
https://je2menage.net/cgi-sys/suspendedpage.cgi (résultat= page blanche)
https://je2menage.net/cgi-sys/suspendedpage.cgi (résultat= page blanche)-
ModérateurDéjà... comme je te l'ai déjà indique :
Pour poster du code sur le forum, merci de le faire en utilisant LES BALISES DE CODE (et en y précisant le langage)
Ensuite...
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code// Désactiver le rapport d'erreurs error_reporting(0);
Toi tu dois mettre ://mettre TOUT CA au début du fichier php pour activer l'affichage des erreurs PHP ! error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE);
Et enfin.. dans ton fichier includes.php<?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); echo "Include des fichiers :"; if( !file_exists("Classes/db.php")){ echo " Fichier : Classes/db.php introuvable !"; } if( !file_exists("Classes/panier.php")){ echo " Fichier : Classes/panier.php introuvable !"; } if( !file_exists("Classes/auth.php")){ echo " Fichier : Classes/auth.php introuvable !"; } //Si aucun echo d'erreur n'apparait.. tu peux décommenter la première ligne puis réafficher ta page // require_once 'Classes/db.php'; //Si pas d'erreur.. tu peux ensuite décommenter la seconde ligne puis réafficher ta page : // require_once 'Classes/panier.php'; // si toujours pas d'erreur.. tu peux décommenter cette troisème ligne puis réafficher ta page // require_once 'Classes/auth.php'; //Si toujours pas d'erreur... puis réafficher ta page //$DB = new db(); //et si toujours pas d'erreur... puis réafficher ta page // $panier = new Panier($DB); ?>
bien entendu.. tu n'affiche pas directement ta page "include" dans ton navigateur....
Tu affiches ta page index https://je2menage.net/cgi-sys/suspendedpage.cgi (qui elle fait un include de ton fichier include... )
-
-
Merci encore,
c'est bien noté pour le code et les balises.
après le texte avec votre orientation j'obient ce message d'erreur
Notice: Undefined variable: panier in /home/lb2vu0go/public_html/eshop/includes/header.php on line 43
Fatal error: Call to a member function count() on null in /home/lb2vu0go/public_html/eshop/includes/header.php on line 43-
-
ModérateurPar contre.. ça semble logique que tu ais ce message d'erreur.... tant que tu ne seras pas allé jusqu'au bout du "décommentage" des lignes que je t'ai indiqué.
Puisque tu as, en commentaire, la ligne// $panier = new Panier($DB);
Donc fais les différentes étapes.. pour voir ce que ça donne....
-
-
ModérateurQuestion bête qui me vient à l'esprit....
Dans ton fichier Db ... tu as bien utilisé les bons identifiants pour te connecter à la bdd ? Car je doute que ça soit les mêmes qu'en local.... il te faut utiliser ceux fournis par ton hébergeur......
-
Merci beaucoup pour votre disponibilité,
mon souci est résolut.
le problème était lié au fichier includes.php