Codeigniter affiche une page blanche à la place des messages d'erreur
J'utilise Codeigniter, et au lieu de messages d'erreur, je suis juste une page blanche. Est-il possible d'afficher les messages d'erreur PHP à la place? Il est très difficile de débogage lorsque je n'ai pas de commentaires.
Mon environnement est Ubuntu avec Apache.
- comment donner les détails de votre environnement? Ma conjecture est que le son sur Windows avec IIS..?
- non, je n'ai ubuntu avec apache.
- Alors s'il vous plaît par tous les moyens, de mettre à jour votre question avec les détails pertinents, que ma supposition était fausse.
- J'ai remarqué que vous avez encore à accepter une réponse. J'ai eu le même problème, peut-être que ma solution a été celui qui a finalement fonctionné pour vous?
- utiliser mysqli pilote à la place de mysql dans database.php
Vous devez vous connecter pour publier un commentaire.
Puisque aucune de ces solutions semblent travailler pour vous, essayez celui-ci:
http://www.php.net/manual/en/errorfunc.configuration.php#ini.display-errors
Explicitement dit à PHP d' affichage les erreurs. Certains environnements peuvent avoir cette option désactivée par défaut.
C'est ce que mes paramètres d'environnement ressembler dans
index.php
:Assurez-vous que
php5-mysql
est installé.J'ai eu ce même problème et comme Shayan Husaini souligné, j'ai eu un indicible erreur de syntaxe.
Je l'ai résolu en utilisant le php linter dans le terminal:
Vous pouvez également utiliser quelque chose comme cela pour utiliser le linter dans chaque fichier dans un dossier:
Et de filtrer seulement ceux avec des erreurs:
Qui devrait afficher les fichiers avec l'analyse des erreurs et la ligne où l'erreur est.
find -type f -name '*.php' -exec php -l '{}' \; | grep '^[^N]'
Ce problème se produit lorsque vous avez de base de php erreur de syntaxe dans votre code. Dans le cas où vous avez des erreurs de syntaxe php analyseur de ne pas analyser le code complètement et didnot afficher quoi que ce soit de sorte que tous les ci-dessus suggestion ne fonctionne que si vous avez d'autres que les erreurs de syntaxe.
vous pouvez la définir dans la principale index.php
Ce qui m'arrive chaque fois que je fais de chargement automatique des trucs dans autoload.php comme la "base de données"
Pour résoudre ce problème, Si vous utilisez Windows OS
Ouvrir votre php.ini.
De recherche et de décommenter cette ligne -
extension=php_mysql.dll
(Veuillez également vérifier Si la directive PHP points à l'endroit où vos extensions est situé.
Le mien est
extension_dir = "C:\php-5.4.8-Win32-VC9-x86\ext"
)Redémarrez Apache et actualisez votre page
J'ai eu le même problème il y a quelques jours. Mon environnement de développement est Win8 et le site web a été fonctionne correctement, mais lorsque j'ai téléchargé les fichiers sur le serveur de production (Linux) a été l'affichage d'une page blanche.
S'avère que des modèles et des contrôleurs du nom du fichier doit commencer avec une lettre majuscule.
Dans l'environnement windows cette habitude de la matière depuis windows ne permet pas de différencier les majuscules et les minuscules, mais dans un environnement linux, les fichiers ne seront pas affichés.
Espère que j'ai aidé.
Essayez d'ajouter ceci à votre index.php fichier
Assurez-vous que vous n'avez pas de vide index.html fichier dans la racine de votre dossier. Il arrive 🙂
vérifier si la fonction error_reporting est SUR sur le serveur ou pas, si c'id large vous ne recevez aucun message d'erreur et juste une page vierge. si vous êtes sur un serveur partagé, alors vous pouvez activer le rapport d'erreurs via htaccess. Dans codeIgniter ajoutez ce qui suit dans votre htaccess
et définir
espère que cela va fonctionner pour vous
Tout d'abord, vous devez donner la permission de votre Codeigniter dossier, C'est peut-être le problème d'autorisation et de démarrer votre serveur.
Si vous utilisez l'IC 2.0 ou plus récent, vous pouvez changer
ENVIRONMENT
type dans votreindex.php
àdefine('ENVIRONMENT', 'testing');
.Alternativement, vous pouvez ajouter
php_flag display_errors on
à votre.htaccess
fichier.charge votre helper url lorsque vous créez une fonction
par exemple,
la il va vous montrer les erreurs ou vue que vous avez chargé.
Êtes-vous d'utiliser le symbole @ n'importe où?
Si vous avez quelque chose comme:
Vous obtiendrez une page vierge.
J'ai couru dans la ce parce que j'ai eu de la CLI de course via le cron de l'utilisateur root, donc la création de fichiers journaux avec root:root. Lorsque vous avez essayé d'accéder à une URI tout fonctionne bien, mais CI présentant la page vierge, probablement parce qu'il n'avait pas la permission d'écrire dans le fichier journal.
Codeigniter ne semble pas lancer un message d'erreur lorsque je faisait référence à une vue qui n'existe pas.
Dans mon exemple j'ai eu dans mon controller:
Parce que le fichier n'existe pas, j'ai un " vide "Une erreur s'est produite à la page". J'ai changé le code pour:
C'était comment j'ai résolu le même problème que vous semblez avoir, espérons que cela aide quelqu'un un jour.
j'ai aussi été confrontée au même problème et essayé presque toutes les choses, mais finalement, j'ai redémarré mon serveur et j'ai trouvé que tout a commencé à travailler..je ne sais pas comment.....je pense que c'était un problème côté serveur c'est pourquoi mon CODE PHP n'était pas de donner toute erreur.
Si vous avez ceci dans votre php.ini:
et vous avez ceci dans votre Application ec dans le même temps
vous obtiendrez HTTP/1.1 200 OK et un complètement de la banque de page.
C'est parce que quand display_error est sur, le php-fpm toujours retourner le code HTTP 200.
Et toutes les erreurs de sortie sont interdits par la fonction error_reporting(0).
Pour l'IC de l'application,l'entrée index.php met en place l'environnement en cours d'exécution comme un soufflet:
En bref, lorsque vous définissez ENV directive dans votre serveur web conf,dire Nginx est fastcgi_params:
puis CI sera automatiquement
Une autre méthode consiste à voir si vous avez dépassé la vérification d'erreur dans votre code par accident. Recherche de toutes les votre code pour toutes les instances de la fonction error_reporting(). Si vous l'appelez sans paramètres, il renvoie simplement au niveau actuel, et est inoffensif. Si vous l'appelez avec un paramètre tel que 0 (zéro), il va désactiver les rapports d'erreurs.
Vous pouvez le tester en CodeIgnitor en regardant leur bibliothèque de base en vertu de l' ../system/core/Common.php et de trouver un article à propos de la ligne 615 qui ressemble à:
Ajouter quelque chose comme:
et vous devriez être en mesure de piège pour dépassé les erreurs et débogage à partir de là.
Souvent quand codeigniter n'affiche rien, il y a une erreur de syntaxe. Surtout si l'application était en cours d'exécution de façon transparente précédemment, il suffit de regarder autour de vos modifications les plus récentes. Pour moi l'expérience cette fois, c'était l'ensemble de l'application, et pas seulement une page. J'ai donc fait un rapide balayage de cerveau pour les modifications les plus récentes que j'avais fait et a travaillé à l'envers, l'examen de chaque fichier que j'avais travaillé ce jour-là. S'est avéré être quelques " où " des clauses dans les deux fichiers de modèle: Par exemple, j'ai eu
J'ai eu le même problème, j'ai installé la dernière xamp version et trouvé mon site ne fonctionne pas, après la recherche et de perdre du temps, j'ai trouvé qu'.
J'ai besoin pour activer la balise suivante dans php.fichier ini short_open_tag=Sur
Assurez-vous de redémarrer apache après avoir fait cela.
Espère que cette aide, la plupart de ces problèmes sont liés à php.fichier ini ou frais d'installation si votre site est déjà en cours d'exécution comme d'autres personnes confrontées au même problème.
après l'installation de xamp/wamp, vous remarquerez peut-être quelques erreurs de nature similaire. Si votre site est déjà en cours d'exécution ne vous inquiétez pas, c'est un problème de configuration question.
1) vérifiez les connexions de base de données dans database.php fichier dans le dossier de l'application
2) vérifier config.php fichier de vérifier l'url est correcte ou pas?
3) par défaut, les balises courtes sont partis dans les nouvelles installations, puis suivez la procédure ci-dessous
en php.le fichier ini de changement "short_open_tag=Off" à "short_open_tag=Sur"
Assurez-vous de redémarrer apache après avoir fait cela.
espère que cette aide.
L'erreur, Dans mon cas, a été produit en raison de mon serveur Apache est configuré pour s'exécuter
PHP
commeFast CGI
, je l'ai changé pourFPM
et cela a fonctionné.veuillez cocher la case erreur de dossier de demande de dossier de pas de
dans mon cas, j'ai remplacer le dossier d'erreur dans le dossier de l'application