Di meja saya, saya telah membuat indeks pada 'col1' untuk mencegah duplikat entri yang berfungsi dengan baik tetapi pesan kesalahan yang dihasilkan ditampilkan kepada pengguna ketika mereka mencoba untuk menambahkan entri duplikat bagi saya menjadi masalah keamanan karena menampilkan SQL termasuk awalan tabel.
Apakah ada cara untuk menghentikan Joomla menampilkan SQL dalam pesan kesalahan?
Saya sudah mencoba mengubah pengaturan pelaporan kesalahan dalam konfigurasi global tetapi sejauh ini saya tidak memiliki pengaruh ...
Pesan contoh:
Kesalahan
Gagal menyelamatkan dengan kesalahan berikut: Duplikat entri 'Tes' untuk kunci 'TestKey' SQL = INSERT INTO `jml_mycomp_tbl1` (` id`, `col1`,` memesan`, `state`,` dibuat_by`) VALUES ('0' , 'Tes', '2', '1', '730')
sumber
display_errors
(pengaturan PHP) harus dimatikan dan kesalahan tersebut hanya harus dicatat ke log kesalahan sisi server Anda.Jawaban:
Mungkin Anda bisa menggunakan perintah try catch:
sumber
JTable
solusi terbaik adalah mengganticheck
metode seperti pada jawaban saya.Karena tampaknya tidak mungkin untuk mencegah perilaku ini, saya menerapkan solusi berikut. Tambahkan duplikat cek ke
JTable
check
metode menimpa:sumber
Anda harus mengubah kode Anda yang membuat sisipan untuk terlebih dahulu memeriksa duplikat dan mengembalikan kesalahan yang tepat (yang Anda tulis) kepada pengguna dan tidak bergantung pada menunjukkan kesalahan aktual yang dikembalikan oleh MySQL.
sumber
JTable
saya akan lebih cenderung untuk menimpacheck
metode dan menguji duplikat di sana. Saya ingin menampilkan pesan kesalahan kepada pengguna, hanya saja tidak ada SQL di dalamnya!