Lebih
Bagaimana cara saya mendapatkan kesalahan PHP untuk menampilkan?
Saya telah memeriksa PHP saya init file (php.ini
) dan display_errors
diatur dan juga pelaporan kesalahan E_ALL
. Saya restart Apache webserver.
Aku bahkan telah menempatkan garis-garis di bagian atas naskah saya, dan itu doesn't bahkan menangkap sederhana mengurai kesalahan. Sebagai contoh, saya mendeklarasikan variabel dengan "$"
dan aku don't menutup pernyataan";"
. Tapi semua script saya tampilkan halaman kosong pada kesalahan ini, tapi aku ingin benar-benar melihat error di browser saya output.
error_reporting(E_ALL);
ini_set('display_errors', 1);
Apa yang tersisa untuk dilakukan?
1636
28
Ini selalu bekerja untuk saya:
Namun, hal ini tidak't membuat PHP untuk menunjukkan kesalahan parse - satunya cara untuk menunjukkan kesalahan-kesalahan ini adalah dengan memodifikasi php.ini dengan baris ini:
(jika anda don't memiliki akses ke
php.ini
, kemudian menempatkan baris ini dalam.htaccess
mungkin bekerja terlalu):Anda dapat't menangkap mengurai kesalahan ketika mengaktifkan output kesalahan pada saat runtime, karena mem-parsing file sebelum benar-benar melaksanakan apa-apa (dan karena itu pertemuan kesalahan selama ini, itu tidak't melakukan apa-apa). Anda'll perlu mengubah sebenarnya konfigurasi server sehingga display_errors dan sesuai error_reporting tingkat digunakan. Jika anda don't memiliki akses ke php.ini, anda mungkin dapat menggunakan .htaccess atau serupa, tergantung pada server.
Pertanyaan akan memberikan info tambahan.
Dalam php.ini:
Kemudian restart server web anda.
Untuk menampilkan semua kesalahan yang perlu anda:
1. Memiliki baris ini di script PHP anda're panggilan dari browser (biasanya
index.php
):2.(a) memastikan bahwa script ini tidak memiliki kesalahan sintaks
—atau—
2.(b) Mengatur
display_errors = On
diphp.ini
Jika tidak, itu bisa't bahkan menjalankan 2 garis!
Anda dapat memeriksa kesalahan sintaks dalam naskah anda dengan menjalankan (pada baris perintah):
Jika anda termasuk script dari yang lain script PHP maka akan * menampilkan kesalahan sintaks dalam termasuk* script. Misalnya:
index.php
my_script.php
Beberapa penyedia web hosting memungkinkan anda untuk mengubah PHP parameter dalam
.htaccess
.Anda dapat menambahkan baris berikut:
Saya memiliki masalah yang sama seperti milik anda dan ini solusi tetap.
Anda mungkin menemukan semua pengaturan untuk "kesalahan pelaporan" atau "display kesalahan" tidak muncul untuk bekerja di PHP 7. Itu adalah karena kesalahan penanganan telah berubah. Coba ini sebagai gantinya:
Atau, untuk menangkap pengecualian dan kesalahan dalam satu pergi (ini adalah tidak kompatibel dengan PHP 5):
Ini akan bekerja:
Gunakan:
Ini adalah cara terbaik untuk menulis itu, tapi kesalahan sintaks memberi kosong output, sehingga menggunakan konsol untuk memeriksa kesalahan sintaks. Cara terbaik untuk men-debug kode PHP untuk menggunakan konsol; berjalan sebagai berikut:
Set ini anda index.php file:
Buat file bernama php.ini dalam folder di mana file PHP anda berada.
Di dalam php.ini tambahkan kode berikut (saya memberikan sebuah kesalahan sederhana yang menunjukkan kode):
Berikut ini adalah script PHP:
Untuk penjelasan yang lebih rinci dari kesalahan PHP, kunjungi Error PHP - error_reporting().
Jika, meskipun setelah semua jawaban diatas (atau anda dapat't mengedit php.ini file), anda masih dapat't mendapatkan pesan kesalahan, coba membuat file PHP baru yang memungkinkan pelaporan kesalahan dan kemudian memiliki masalah file. misalnya:
Meskipun memiliki segalanya diatur dengan benar di
php.ini
file, ini adalah satu-satunya cara saya bisa menangkap sebuah namespace error. Saya skenario yang tepat adalah:Saya biasanya akan pergi dengan kode berikut ini di saya polos PHP proyek.
Ketika menggunakan PHP sebagai modul Apache, kita dapat mengubah pengaturan konfigurasi menggunakan petunjuk di file konfigurasi Apache (misalnya httpd.conf) dan .htaccess file. Anda akan perlu "AllowOverride Pilihan" atau "AllowOverride All" hak untuk melakukannya.
Cek ini
http://funbird.co.uk/blog/tech-articals/linux-tech-articals/enabling-error-display-php-via-htaccess
Seperti kita sekarang menjalankan PHP 7, jawaban yang diberikan di sini adalah tidak benar lagi. Satu-satunya yang masih OK salah satu dari Frank Forte, karena ia berbicara tentang PHP 7.
Di sisi lain, daripada mencoba untuk menangkap kesalahan dengan mencoba menangkap anda dapat menggunakan trik: gunakan seperti.
Berikut tiga buah kode:
File: tst1.php
Berjalan ini di PHP 7 akan menunjukkan apa-apa.
Sekarang, coba ini:
File: tst2.php
File: tst3.php
Sekarang jalankan tst2 yang menetapkan kesalahan pelaporan, dan kemudian termasuk tst3. Anda akan melihat:
Jika anda entah bagaimana menemukan diri anda dalam situasi di mana anda dapat't modifiy pengaturan melalui
php.ini
atau.htaccess
anda're beruntung untuk menampilkan pesan kesalahan saat anda mengandung script PHP parse errors. Anda'd kemudian harus menyelesaikan linting file pada command line seperti ini:Jika anda meng-host begitu dikunci sehingga tidak memungkinkan mengubah nilai melalui
php.ini
atau.htaccess
, mungkin juga melarang mengubah nilai melaluiini_set
. Anda dapat memeriksa bahwa dengan mengikuti script PHP:Anda dapat melakukan sesuatu seperti di bawah ini:
Mengatur parameter di bawah ini di indeks utama file:
Kemudian berdasarkan pada kebutuhan anda, anda dapat memilih yang anda ingin tampilkan:
Untuk semua kesalahan, peringatan dan pemberitahuan:
Untuk semua kesalahan:
Untuk semua peringatan:
Untuk semua pemberitahuan:
Untuk informasi lebih lanjut, cek disini.
Anda dapat menambahkan anda sendiri custom error handler, yang dapat memberikan tambahan informasi debug. Selain itu, anda dapat mengatur untuk mengirim informasi melalui email.
Kode ini di atas harus bekerja:
Namun, cobalah untuk mengedit kode di telepon dalam file:
Terbaik/mudah/cepat solusi yang dapat anda gunakan jika itu's cepat debugging, adalah untuk mengelilingi kode anda dengan menangkap pengecualian. Yang's apa yang saya'm lakukan ketika saya ingin memeriksa sesuatu yang cepat dalam produksi.