وہ 10 اہم PHP غلطیاں جو ہر مبتدی کرتا ہے

آپ کوڈ لکھتے ہیں۔ آپ ریفریش کرتے ہیں۔ آپ کو ایک خالی سفید اسکرین نظر آتی ہے۔

ایسا اس لیے ہوتا ہے کیونکہ PHP ڈیفالٹ طور پر خاموشی سے فیل ہو جاتا ہے۔ آپ کو ڈویلپمنٹ کے دوران اسے غلطیاں (errors) دکھانے پر مجبور کرنا چاہیے۔

اپنی فائلوں کے اوپری حصے میں یہ لائنیں شامل کریں:

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

اسے پروڈکشن (production) میں استعمال نہ کریں۔ اس کے بجائے فائل لاگز (file logs) کا استعمال کریں۔

یہاں 10 عام غلطیاں اور انہیں ٹھیک کرنے کے طریقے دیے گئے ہیں:

  • Missing Semicolons اگر آپ سیمی کولن بھول جائیں تو PHP کام کرنا چھوڑ دیتا ہے۔ یہ اکثر خاموشی سے کریش (crash) کا باعث بنتا ہے۔ حل: یقینی بنائیں کہ ہر سٹیٹمنٹ (statement) کے آخر میں سیمی کولن ہو۔

  • Loose Comparison (== بمقابلہ ===) ڈبل ای کوالز (double equals) سائن ٹائپ کوئیرشن (type coercion) کرتا ہے۔ اس سے منطقی غلطیاں (logic errors) پیدا ہوتی ہیں۔ حل: ٹرپل ای کوالز (===) استعمال کریں۔ یہ ویلیو اور ٹائپ دونوں کو چیک کرتا ہے۔

  • Undefined Variables کسی ویری ایبل کو اس کی ویلیو دینے سے پہلے استعمال کرنا آپ کی لاجک کو توڑ دیتا ہے۔ حل: null coalescing operator استعمال کریں۔ مثال: $name = $_GET['name'] ?? 'Guest';

  • Global Variable Scope فنکشنز اپنے باہر کے ویری ایبلز کو نہیں دیکھ سکتے۔ حل: ویری ایبلز کو پیرامیٹرز (parameters) کے طور پر فنکشنز میں پاس کریں۔

  • SQL Injection صارف کے ان پٹ (user input) کے ساتھ کوئریز بنانا ہیکرز کو ڈیٹا چرانے کی اجازت دیتا ہے۔ حل: پلیس ہولڈرز (?) کے ساتھ prepared statements استعمال کریں۔

  • Cross-Site Scripting (XSS) صارف کے ان پٹ کو براہ راست پرنٹ کرنا براؤزرز میں نقصان دہ اسکرپٹس چلانے کی اجازت دیتا ہے۔ حل: آؤٹ پٹ کو htmlspecialchars() میں لپیٹ دیں۔

  • Headers Already Sent اگر آپ پہلے ہی براؤزر کو ٹیکسٹ بھیج چکے ہیں تو آپ صارف کو ری ڈائریکٹ (redirect) نہیں کر سکتے۔ ایک خالی جگہ (space) بھی اس غلطی کا باعث بن سکتی ہے۔ حل: header() کالز کو بالکل شروع میں رکھیں۔ ری ڈائریکٹ کے بعد ہمیشہ exit() استعمال کریں۔

  • Undefined Array Keys ایسی فارم کی (key) تک رسائی جو موجود نہیں ہے، وارننگز کا باعث بنتی ہے۔ حل: تمام $_POST اور $_GET ڈیٹا کے لیے null coalescing operator استعمال کریں۔

  • Include بمقابلہ Require اگر فائل غائب ہو تو Include صرف ایک وارننگ دکھاتا ہے۔ اسکرپٹ چلتا رہتا ہے اور بعد میں کریش ہو جاتا ہے۔ حل: ڈیٹا بیس کنکشنز جیسی اہم فائلوں کے لیے require_once استعمال کریں۔

  • Unchecked Return Values بہت سے PHP فنکشنز ناکامی کی صورت میں false ریٹرن کرتے ہیں۔ اگر آپ اس نتیجے کو فوری طور پر استعمال کریں گے، تو مزید غلطیاں ہوں گی۔ حل: استعمال کرنے سے پہلے چیک کریں کہ کیا نتیجہ false ہے۔

کامیابی کے لیے خلاصہ:

  • ڈویلپمنٹ میں ایرر رپورٹنگ آن کریں۔
  • تمام موازنہ جات کے لیے === استعمال کریں۔
  • تمام صارف ان پٹ کو صاف (sanitize) کریں۔
  • ریٹرن ویلیوز کو چیک کریں۔

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