Pertanyaan Bagaimana cara saya menampilkan kesalahan PHP?


Saya sudah memeriksanya PHP ini kesalahan file dan tampilan diatur dan juga pelaporan kesalahan E_ALL. Saya telah me-restart server web Apache saya.

Saya bahkan meletakkan baris-baris ini di bagian atas skrip saya, dan itu bahkan tidak menangkap kesalahan parse sederhana. Sebagai contoh, saya mendeklarasikan variabel dengan "$" dan saya tidak menutup pernyataan";". Tapi semua skrip saya menunjukkan halaman kosong pada kesalahan ini, tetapi saya ingin benar-benar melihat kesalahan di output browser saya.

error_reporting(E_ALL);
ini_set('display_errors', 1);

Apa yang tersisa untuk dilakukan?


1295
2018-06-27 19:09


asal


Jawaban:


Ini selalu berhasil untuk saya:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

Namun, ini tidak membuat PHP untuk menampilkan kesalahan parse - satu-satunya cara untuk menampilkan kesalahan tersebut adalah memodifikasi php.ini dengan baris ini:

display_errors = on

2520
2018-01-29 11:25



Anda tidak dapat menangkap kesalahan parse ketika mengaktifkan output kesalahan pada saat runtime, karena mem-parsing file sebelum benar-benar mengeksekusi sesuatu (dan karena ia menemukan kesalahan selama ini, ia tidak akan melakukan apa-apa). Anda harus mengubah konfigurasi server yang sebenarnya sehingga display_errors menyala dan level error_reporting approriate digunakan. Jika Anda tidak memiliki akses ke php.ini, Anda mungkin dapat menggunakan .htaccess atau yang serupa, tergantung pada server.

Pertanyaan ini dapat memberikan info tambahan.


133
2018-06-27 19:14



Di dalam Anda php.ini:

display_errors = on

Kemudian restart server web Anda.


120
2018-01-08 09:27



Untuk menampilkan semua kesalahan yang Anda perlukan:

1. Miliki baris-baris ini dalam skrip PHP yang Anda panggil dari browser (biasanya index.php):

error_reporting(E_ALL);
ini_set('display_errors', 1);

2. (a) Pastikan skrip ini tidak memiliki kesalahan sintaksis

-atau-

2. (b) Atur display_errors = On di dalam kamu php.ini

Jika tidak, itu bahkan tidak dapat menjalankan 2 baris itu!

Anda dapat memeriksa kesalahan sintaks dalam skrip Anda dengan menjalankan (pada baris perintah):

php -l index.php

Jika kamu termasuk skrip dari skrip PHP lain lalu akan menampilkan kesalahan sintaks di termasuk naskah. Sebagai contoh:

index.php

error_reporting(E_ALL);
ini_set('display_errors', 1);

// Any syntax errors here will result in a blank screen in the browser

include 'my_script.php';

my_script.php

adjfkj // This syntax error will be displayed in the browser

78
2018-01-29 09:52



Beberapa penyedia hosting web memungkinkan Anda untuk mengubah params PHP di .htaccess mengajukan.

Anda dapat menambahkan baris berikut:

php_value display_errors 1

Saya memiliki masalah yang sama seperti Anda dan solusi ini memperbaikinya.


39
2018-05-18 15:01



Anda mungkin menemukan semua pengaturan untuk "pelaporan kesalahan" atau "kesalahan tampilan" tampaknya tidak berfungsi di PHP 7. Itu karena penanganan kesalahan telah berubah. Coba ini sebagai gantinya:

try{
     // Your code
} 
catch(Error $e) {
    $trace = $e->getTrace();
    echo $e->getMessage().' in '.$e->getFile().' on line '.$e->getLine().' called from '.$trace[0]['file'].' on line '.$trace[0]['line'];
}

Atau, untuk menangkap pengecualian dan kesalahan sekaligus (ini tidak kompatibel dengan PHP 5):

try{
     // Your code
} 
catch(Throwable $e) {
    $trace = $e->getTrace();
    echo $e->getMessage().' in '.$e->getFile().' on line '.$e->getLine().' called from '.$trace[0]['file'].' on line '.$trace[0]['line'];
}

29
2018-03-28 19:26



Ini akan bekerja:

<?php
     error_reporting(E_ALL);
     ini_set('display_errors', 1);    
?>

26
2018-05-05 13:23



Menggunakan:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

Ini adalah cara terbaik untuk menulisnya, tetapi kesalahan sintaks menghasilkan output kosong, jadi gunakan konsol untuk memeriksa kesalahan sintaks. Cara terbaik untuk debug kode PHP adalah dengan menggunakan konsol; jalankan yang berikut:

php -l phpfilename.php

25
2018-05-04 19:14