𝗧𝗲𝗻 𝗣𝗲𝗽𝗶𝗷𝗮𝘁 𝗣𝗛𝗣 𝗨𝘁𝗮𝗺𝗮 𝘆𝗮𝗻𝗴 𝗦𝗲𝗿𝗶𝗻𝗴 𝗗𝗶𝗹𝗮𝗸𝘂𝗸𝗮𝗻 𝗼𝗹𝗲𝗵 𝗣𝗲𝗺𝘂𝗹𝗮

Anda menulis kod. Anda menyegarkan halaman. Anda melihat skrin putih kosong.

Ini berlaku kerana PHP gagal secara senyap secara lalai. Jika anda tidak melihat ralat, anda tidak dapat membaikinya.

Mulakan pembangunan anda dengan menambah baris-baris ini di bahagian atas fail anda:

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

Ini memaksa PHP menunjukkan kepada anda apa yang salah. Jangan gunakan ini dalam persekitaran produksi.

Berikut adalah 10 pepijat biasa dan cara untuk memperbaikinya.

  1. Titik Bertitik (Semicolon) yang Hilang PHP memerlukan titik bertitik untuk mengakhiri sesuatu pernyataan. Jika anda tertinggal satu, skrip akan terhenti. Penyelesaian: Sentiasa akhiri baris anda dengan titik bertitik.

  2. Perbandingan Longgar (Loose Comparison) Operator == menukar jenis (type) sebelum membuat perbandingan. Ini membawa kepada keputusan yang salah. Penyelesaian: Gunakan ===. Ini menyemak kedua-dua nilai dan jenisnya.

  3. Pemboleh Ubah Tidak Ditakrifkan (Undefined Variables) Menggunakan pemboleh ubah yang tidak anda cipta akan menyebabkan ralat logik. Penyelesaian: Gunakan operator null coalescing. $name = $_GET['name'] ?? 'Guest';

  4. Skop Pemboleh Ubah Global Fungsi tidak dapat melihat pemboleh ubah di luar fungsinya. Penyelesaian: Masukkan pemboleh ubah ke dalam fungsi sebagai parameter.

  5. Suntikan SQL (SQL Injection) Memasukkan input pengguna secara terus ke dalam pertanyaan (query) adalah berbahaya. Penyerang boleh mencuri data anda. Penyelesaian: Gunakan pernyataan sedia (prepared statements) dengan placeholder.

  6. Cross-Site Scripting (XSS) Mencetak input pengguna mentah ke skrin membolehkan skrip berniat jahat dijalankan dalam pelayar web. Penyelesaian: Gunakan htmlspecialchars() pada semua output.

  7. Ralat Header Anda tidak boleh menghantar header selepas anda menghantar sebarang teks atau ruang kosong ke pelayar. Penyelesaian: Letakkan panggilan header() di bahagian paling atas. Sentiasa gunakan exit() selepas pengalihan (redirect).

  8. Kunci Borang yang Hilang Mengakses kunci borang yang tidak wujud akan menyebabkan ralat. Penyelesaian: Gunakan operator null coalescing untuk menyediakan nilai lalai.

  9. Include vs Require Arahan include hanya memberikan amaran jika fail hilang. Skrip akan terus berjalan dan mengalami kegagalan (crash) kemudiannya. Penyelesaian: Gunakan require_once untuk fail kritikal seperti sambungan pangkalan data.

  10. Nilai Pulangan yang Tidak Disemak Banyak fungsi PHP mengembalikan nilai false jika ia gagal. Menggunakan nilai false tersebut dalam langkah seterusnya akan menyebabkan kegagalan (crash). Penyelesaian: Semak jika fungsi mengembalikan false sebelum anda menggunakan hasilnya.

Ringkasan untuk kod yang lebih baik: • Aktifkan pelaporan ralat semasa pembangunan. • Gunakan === dan bukannya ==. • Semak nilai pulangan. • Bersihkan (sanitize) semua input pengguna.

Sumber: https://dev.to/bikkisingh/top-10-php-bugs-every-beginner-makes-and-how-to-fix-them-1anh