Menampilkan Error PHP
Ada yang berbeda dengan PHP (Personal Home Page) saat tulisan ini ditulis, error pada PHP tidak langsung ditampilkan ke browser, namun perlu di set terlebih dahulu dengan salah satunya, kode di bawah ini:
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
Sebagai developer, untuk pembuatan aplikasi berbasis web, sebelumnya penulis hampir 10 tahun tidak melakukan pengkodean langsung dari awal, untuk aplikasi yang menggunakan PHP.
Penulis lebih menggunakan Content Management System (CMS) seperti Wordpress dalam membangun website. Sehingga saat percobaan ini, penulis baru mengetahui jika ada perubahan di PHP tentang cara menampilkan error.
Penulis lebih menggunakan Content Management System (CMS) seperti Wordpress dalam membangun website. Sehingga saat percobaan ini, penulis baru mengetahui jika ada perubahan di PHP tentang cara menampilkan error.
Dulu jika terjadi kesalahan penulisan script, penempatan variabel atau lainnya, error akan langsung ditampilkan di browser.
Entah masalah keamanan atau hal lainnya, jika tidak menggunakan tambahan kode di atas, web browser akan menampilkan kurang lebih hanya seperti gambar dibawah ini, dengan tertulis pesan error dengan kode 500.
Sebagai programmer, akan sangat membingungkan jika harus mencari error baris per baris secara manual.
Namun dengan menambahkan kode di atas, error akan ditampilkan, dan akan lebih cepat dicari solusinya.
Misalnya seperti gambar di bawah ini:
Misalnya seperti gambar di bawah ini:
Dari pesan error tersebut diketahui, bahwa kode PHP penulis, terdapat kesalahan, tidak dapat mendeteksi variable $dbconnection yang terdapat dalam fungsi getLoginAccess.
Penempatan variabel $dbconnection seharusnya dapat dideteksi, jika penempatan tersebut di bahasa pemrograman lain.
Sehingga dapat penulis simpulkan, error di atas dikarenakan koneksi ke database satu halaman PHP hanya dapat dilakukan satu kali, dan untuk satu kali akses halaman PHP.
Solusinya, terkait koneksi tidak perlu ditempatkan di dalam fungsi, programmer hanya perlu menempatkannya di alur algorithma utama saja.
Algorithma pemrograman akan menempatkan koneksi menjadi satu line dengan sendirinya oleh programmer.
Kode berikut ini adalah kode lengkap halaman PHP yang penulis gunakan untuk uji coba.
Penempatan variabel $dbconnection seharusnya dapat dideteksi, jika penempatan tersebut di bahasa pemrograman lain.
Sehingga dapat penulis simpulkan, error di atas dikarenakan koneksi ke database satu halaman PHP hanya dapat dilakukan satu kali, dan untuk satu kali akses halaman PHP.
Solusinya, terkait koneksi tidak perlu ditempatkan di dalam fungsi, programmer hanya perlu menempatkannya di alur algorithma utama saja.
Algorithma pemrograman akan menempatkan koneksi menjadi satu line dengan sendirinya oleh programmer.
Kode berikut ini adalah kode lengkap halaman PHP yang penulis gunakan untuk uji coba.
<?php define('DB_SERVER', 'localhost'); define('DB_USERNAME', 'root'); define('DB_PASSWORD', '111111111'); define('DB_DATABASE', 'namadatabase'); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $dbconnection = new mysqli(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE); if ($dbconnection->connect_error){ header("Location:nopage.php"); } function getLoginAccess($user,$pass) { $myusername = filter_var($user, FILTER_SANITIZE_STRING); $mypassword = md5(filter_var($pass, FILTER_SANITIZE_STRING)); $myuserlevel=100;$passkey=""; $sql = "SELECT id,userlevel FROM users WHERE username = '$myusername' AND password = '$mypassword'"; $result = $dbconnection->query($sql); if($result->num_rows==1){ $passkey=getRandomChar(rand(20,45)); }else{ $errormsg = "Your login name or password is invalid"; } $hsl["username"]=$myusername; $hsl["password"]=$passkey; $hsl["error"]=$errormsg; return $hsl; } $hasil=getLoginAccess("administrator","000000"); echo $hasil['username']." ".$hasil['error']; ?>
Perlu diketahui, masih ada cara lain untuk menampilkan error di PHP, tergantung pada kapabilitas dan akses ke server yang digunakan untuk menampilkan halaman PHP.
Cara yang penulis tunjukkan di atas adalah cara yang paling penulis anggap mudah.
Cara yang penulis tunjukkan di atas adalah cara yang paling penulis anggap mudah.
Referensi
- Mendez, Juliet. 2018. Display All PHP Errors: Basic & Advanced Usage. https://stackify.com/display-php-errors/. Diakses tanggal 17 Desember 2019
Komentar
Posting Komentar