𝗧𝗼𝗽 𝟭𝟬 𝗣𝗛𝗣 𝗕𝘂𝗴𝘀 Ambazo Mwanzo Kila Mtu Hufanya
Unaandika kodi. Unafanya 'refresh' kwenye ukurasa. Unaona ukurasa mweupe kabisa.
Hii hutokea kwa sababu PHP inafeli kimyakimya kwa asili. Ikiwa huoni makosa, huwezi kuyarekebisha.
Anza uendelezaji wako kwa kuongeza mistari hii juu ya faili yako:
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
Hii inailazimisha PHP kukuonyesha kosa lilipo. Usitumie hii kwenye production.
Hapa kuna bugs 10 za kawaida na jinsi ya kuzirekebisha.
Kukosekana kwa Semicolons PHP inahitaji semicolon ili kumalizia kauli (statement). Ukikosa moja, skriptu itasimama. Suluhisho: Kila mara malizia mistari yako kwa semicolon.
Ulinganishi Laini (Loose Comparison) Opereta ya
==hubadilisha aina (types) kabla ya kulinganisha. Hii husababisha matokeo yasiyo sahihi. Suluhisho: Tumia===. Hii hukagua thamani (value) na aina (type) kwa pamoja.Variable Ambazo Hazijatambulishwa (Undefined Variables) Kutumia variable ambayo hujaitengeneza husababisha makosa ya kimantiki (logic errors). Suluhisho: Tumia 'null coalescing operator'.
$name = $_GET['name'] ?? 'Guest';Upeo wa Global Variable (Global Variable Scope) Kazi (functions) haziwezi kuona variable zilizopo nje yake. Suluhisho: Pitisha variable kwenye functions kama 'parameters'.
SQL Injection Kuweka ingizo la mtumiaji moja kwa moja kwenye 'query' ni hatari. Washambuliaji wanaweza kuiba data zako. Suluhisho: Tumia 'prepared statements' zenye 'placeholders'.
Cross-Site Scripting (XSS) Kuchapisha ingizo ghafi la mtumiaji kwenye skrini kunaruhusu skriptu zenye nia mbaya kufanya kazi kwenye vivinjari (browsers). Suluhisho: Tumia
htmlspecialchars()kwenye matokeo yote.Makosa ya Header Huwezi kutuma 'header' baada ya kutuma maandishi yoyote au nafasi (spaces) kwenye kivinjari. Suluhisho: Weka wito wa
header()juu kabisa. Kila mara tumiaexit()baada ya 'redirect'.Kukosekana kwa Form Keys Kufikia 'form key' ambayo haipo husababisha makosa. Suluhisho: Tumia 'null coalescing operator' ili kutoa thamani ya asili (default value).
Include dhidi ya Require Amri ya
includehutoa onyo tu ikiwa faili haipo. Skriptu inaendelea kufanya kazi na itaharibika baadaye. Suluhisho: Tumiarequire_oncekwa faili muhimu kama vile miunganisho ya kanzidata (database connections).Thamani za Kurudisha Zisizokaguliwa (Unchecked Return Values) Kazi nyingi za PHP hurudisha
falseikiwa zimefeli. Kutumia thamani hiyo yafalsekatika hatua inayofuata husababisha hitilafu. Suluhisho: Kagua ikiwa kazi imerudishafalsekabla ya kutumia matokeo.
Muhtasari kwa kodi bora:
• Washa ripoti ya makosa (error reporting) wakati wa uendelezaji.
• Tumia === badala ya ==.
• Kagua thamani zinazorudishwa.
• Safisha (sanitize) ingizo zote za mtumiaji.
Chanzo: https://dev.to/bikkisingh/top-10-php-bugs-every-beginner-makes-and-how-to-fix-them-1anh