Apakah mungkin untuk mengirim email otomatis ke webmaster ketika pengunjung mengklik halaman kesalahan 500?

10

Apakah mungkin untuk mengirim email otomatis yang menyertakan perincian tentang halaman yang diminta ke webmaster ketika pengunjung mengklik halaman kesalahan server 500?

Dengan begitu master web bisa bertindak lebih cepat untuk menyelesaikan masalah. Ini adalah pertanyaan umum sehingga platform mana yang digunakan tidak relevan.

Tony Bolero
sumber
1
silakan tambahkan perangkat lunak server web dan bahasa yang Anda dapat (inginkan) gunakan. (apache, nginx, iis, php, asp) sehingga orang akan dapat menunjukkan kepada Anda contoh skrip.
jflaflamme

Jawaban:

7

Iya itu mungkin. Anda hanya perlu memastikan apakah server web adalah IIS atau Apache dan kemudian Anda dapat mengaturnya untuk menampilkan halaman khusus (yang akan berisi kode untuk menangkap detail yang Anda inginkan dari pengguna dan mengirimkannya kepada Anda) setiap kali 500 kesalahan ditemukan.

Untuk Apache, misalnya, sangat sederhana. Cukup buat (atau tambahkan jika ada) a .htaccessdan gunakan aturan berikut di dalamnya untuk menyiapkan dokumen kesalahan khusus Anda:

ErrorDocument 500 /error-docs/500.php
stealthyninja
sumber
dan sekarang ke nginx? :)
rogerdpack
2
@rogerdpack, error_page
Bluebaron
7

Mengirim email dengan setiap kesalahan, melalui halaman kesalahan khusus, mungkin tidak berfungsi jika masalah terkait dengan PHP: halaman kustom Anda mungkin tidak berjalan dengan baik sehingga surat tidak keluar. Anda juga akan mendapatkan satu email per kesalahan yang bisa jadi banjir.

Sebagai gantinya saya menyarankan menerapkan beberapa bentuk pemindaian log: memiliki tugas cron (atau tugas terjadwal di Windows) memindai file-file log untuk kesalahan setiap hari atau setiap beberapa jam dan mengirim ringkasan apa pun yang ditemukan sejak pemeriksaan terakhir ke admin terkait (s). Anda juga dapat membuat skrip pemeriksaan log Anda melakukan beberapa hal lain seperti memastikan layanan server web (dan setiap layanan database dan sebagainya) berjalan, jika hanya demi paranoia. Jika tidak ada yang lain, satu email per periode pelaporan dapat mencakup kode kesalahan HTTP lainnya (401, 404, ...) dan hal-hal lain yang ditemukan dalam log. Jika Anda melakukan ini, selalu kirim pesan email meskipun tidak ada yang salah : dengan begitu Anda tahu jika skrip pemindaian Anda gagal dijalankan karena Anda berhenti menerima pesan (jika tidak, tidak ada pesan yang bisa berarti semuanya baik - baik saja atau mesin laporan kerusakan rusak).

David Spillett
sumber
Sebagai alternatif, Anda dapat menghubungkan ke proses logging langsung di Apache dengan membuatnya menulis (atau pipa ) entri log ke skrip perl atau database yang mendukung kait dan fungsi yang ditentukan pengguna (atau mampu mengirim email dengan cara lain). Anda juga dapat mencegat peristiwa log Apache menggunakan modul khusus.
Lèse majesté
Dirvotasi, saya pikir jawaban Anda benar-benar layak divotasikan. itu solusi praktis.
ALH
4

Ya, kirim email untuk setiap kesalahan. Sebaiknya kirimkan info sebanyak-banyaknya sebagai bagian dari surel. Pikirkan tentang meraih:

  • isi koleksi formulir,
  • semua variabel sesi,
  • string agen pengguna browser,
  • nilai cookie,
  • URL halaman, termasuk parameter kueri apa pun.

Ini sangat membantu untuk keperluan debugging. Sangat mudah untuk mendapatkan info ini dalam ASP dan ASP.NET klasik melalui objek Permintaan dan Sesi.

Hanya saja, tidak ada kesalahan pada halaman kesalahan khusus Anda, atau Anda akan panik server web.

Daryl
sumber
3

Ya sangat mungkin. Selain email, Anda juga dapat memeriksa log Server Web.

Saya sarankan jangan mengirim email pada setiap 500, jika tidak ada bug, kotak surat Anda akan kebanjiran. Catat id kesalahan, kirim 1 untuk kesalahan yang sama pada id yang sama.

Eric Yin
sumber
Menurut saya menerima email ketika ada masalah membuat hidup webmaster sedikit lebih mudah daripada melalui server web log regualary. Poin bagus tentang ide 1 email. Suara positif!
Tony Bolero
Terima kasih. Saya menggunakan ASP, di masa lalu, ASP mendapat kode kesalahan, saya menggunakannya dan url halaman, membuat kunci unik dan menyimpan ke memori, saya mendapat 1 email pada setiap kesalahan dan setiap kali memori memerah (mis. reboot aplikasi). Tidak banyak email, tetapi cukup untuk melacak kesalahan. (btw, cara ini juga dapat melacak 404, tapi hati-hati, hari ini terlalu banyak kesalahan 404 dari bot)
Eric Yin
-1

Anda dapat menambahkan iframe yang memuat php dari server lain, maka halaman kesalahan Anda akan selalu mengirim email.

jose aburto
sumber
1
Mengapa iframe? Tidak yakin saya mengerti alasannya.
Andrew