require_once

Eléphant du PHP | 94 Messages

18 févr. 2011, 19:19

Bonjour,

Aurais-je une peau de saucisson devant les yeux ?

Il y a un truc que je ne comprends vraiment pas.

J'ai un fichier php, qui contient un switch sur une variable amenée en POST.
Selon les cas, je vais bien sûr faire différentes actions, dont des require_once pour appeler un fichier php.

Dans plusieurs options du switch, cela fonctionne.

Là, je suis dans le cas où ma variable = 6.
J'appelle par un require_once un fichier php, puis je fais suivre d'un exit();.
Le problème, c'est que là, quand j'arrive à cet appel. J'ai droit à une page blanche, puis plus rien.
Si avant l'appel require_once, je fais un echo ("blabla"), il s'affiche.
Si j'en met un après le require_once et avant le exit(); il ne s'affiche pas.
Si je mets un echo ("blabla") en premier dans le fichier appelé par le require_once, il ne s'affiche pas.

Et plus fort : si dans le require_once, je met une faute pour le faire pointer sur un fichier qui n'existe pas : rien ne se passe, pas de message d'erreur, et toujours ma page blanche.
Mon switch ne se trouve pas dans une fonction (je dis ça, car j'ai déjà remarqué des problèmes dans ces cas-là.

Une idée ?

Je met un morceau du code, à partir du case 3 qui fonctionne lui. Les case 4 et 5 ne sont pas encore opérants, et donc le 6 ne fonctionne pas.

Merci de l'aide éventuelle.

Code : Tout sélectionner

case 3 : // affichage paye précédente $cpt = (int)$_POST["cpt"]; $cpt--; if ($cpt <0) erreur(2, __LINE__); if (!file_exists($nom_fich) || (filesize($nom_fich) % 8) != 0) erreur(2, __LINE__); if ($cpt == 0) $cpt = filesize($nom_fich) / 8;//8 = taille zone numero de fiche dans fichier tempo $fiche = lect_fich_tempo($nom_fich, $cpt, 8);//8 étant la taille d'un enregistrement if ($fiche[0] == FALSE) af_message("Problème de base de données<br /> Re-essayez plus tard, Merci.<br />", $nom_fich); $passage="OnyVa"; require_once("graphisme/appel/payes/affich_paye.php"); exit(); case 4 : //début de recherche par critère break; case 5 : //retour de recherche selon critère break; case 6 : //Suppression d'une fiche de paye echo (__LINE__."<br />"); //juste pour voir, c'est mon echo ("blabla") require_once("graphisme/appel/payes/sup_paye.php");// c'est celui-là qui fume des joints ! exit(); break; default : // Cas nomalement impossible erreur(2, __LINE__); } //fin du switch

Eléphant du PHP | 94 Messages

18 févr. 2011, 20:06

Bon, j'ai avancé...

enfin, si l'on veut...


J'ai tout mis en commentaire dans mon fichier appelé par le require_once, sauf le echo ("blala"); et du coup, cela fonctionne.

Apparemment il y a un problème dans mon fichier appelé.

Ce qui n'explique en rien :

- Pourquoi pas de message d'erreur.

- Pourquoi si je fais pointer mon require_once vers un fichier qui n'existe pas, je n'ai pas d'erreur fatale, comme c'est sensé être le cas avec require_once.

Toujours pas d'idée ?

ViPHP
ViPHP | 5462 Messages

18 févr. 2011, 20:11

ton niveau d'erreur est bien en E_ALL | E_STRICT ? et ton display_errors sur On ?

Eléphant du PHP | 94 Messages

18 févr. 2011, 23:47

Bingo !

Je viens de re-installer lamp il y a 3 jours.

Mon phpinfo me dit que display_error est sur off.

Je vais changer ça et voir si tout venait de là.


Merci

Eléphant du PHP | 94 Messages

18 févr. 2011, 23:50

C'était bien ça.

Donc, je n'avais pas de la peau de saucisson devant les yeux.

Merci