"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > أخطاء PHP الشائعة: حلول للمشكلات التي يتم مواجهتها بشكل متكرر

أخطاء PHP الشائعة: حلول للمشكلات التي يتم مواجهتها بشكل متكرر

تم النشر بتاريخ 2024-11-17
تصفح:976

Common PHP Errors: Solutions to Frequently Encountered Issues

PHP هي لغة برمجة نصية قوية تستخدم على نطاق واسع لتطوير الويب، ولكن مثل أي لغة، من السهل الوقوع في الأخطاء التي يمكن أن تكون محبطة لتصحيح الأخطاء. في حين أن بعض الأخطاء بسيطة وسهلة الإصلاح، إلا أن بعضها الآخر قد يكون أكثر تعقيدًا بعض الشيء. تتناول هذه المقالة بعضًا من أخطاء PHP الأكثر شيوعًا وتقدم حلولاً لمساعدتك على حلها بسرعة.

1. أخطاء في بناء الجملة

مشكلة:

يحدث خطأ في بناء الجملة عندما يواجه مترجم PHP رمزًا لا يتوافق مع البنية المتوقعة. هذه هي الأنواع الأساسية من الأخطاء وغالبًا ما تؤدي إلى خطأ التحليل المروع: خطأ في بناء الجملة، ورسالة رمزية غير متوقعة.

الأسباب الشائعة:

  • الفواصل المنقوطة مفقودة (;)
  • الأقواس غير المتطابقة، الأقواس المتعرجة، أو الأقواس
  • استخدام غير صحيح لعلامات الاقتباس
  • كلمات رئيسية بها أخطاء إملائية

مثال:

echo "Hello World" // Missing semicolon

حل:

تحقق مرة أخرى من الرمز الخاص بك بحثًا عن علامات الترقيم المفقودة أو الإضافية. تأكد من تطابق جميع أقواس الفتح والإغلاق والأقواس وعلامات الاقتباس.

echo "Hello World"; // Fixed

2. خطأ متغير غير محدد

مشكلة:

يحدث خطأ "متغير غير محدد" عند محاولة استخدام متغير لم تتم تهيئته. PHP سوف يلقي إشعار: خطأ متغير غير محدد في هذه الحالة.

مثال:

echo $username; // Undefined variable

حل:

تأكد من تهيئة المتغير قبل استخدامه في التعليمات البرمجية الخاصة بك. يمكنك أيضًا منع هذا الإشعار عن طريق التحقق من تعيين المتغير باستخدام isset().

if (isset($username)) {
    echo $username;
} else {
    echo "No username provided";
}

3. خطأ فادح: استدعاء وظيفة غير محددة

مشكلة:

يحدث هذا الخطأ عند محاولة استدعاء دالة لم يتم تعريفها. يمكن أن يحدث ذلك لأنك أخطأت في كتابة اسم الوظيفة أو نسيت تضمين الملف الضروري الذي يحتوي على الوظيفة.

مثال:

myFunction(); // Undefined function

حل:

تأكد من تعريف الوظيفة بشكل صحيح أو تضمينها في البرنامج النصي الخاص بك. تحقق أيضًا من وجود أخطاء إملائية في اسم الوظيفة.

function myFunction() {
    echo "Hello World!";
}

myFunction(); // Fixed

4. تم إرسال الرؤوس بالفعل

مشكلة:

يحدث هذا الخطأ عندما تحاول PHP تعديل الرؤوس (على سبيل المثال، باستخدام header() أو setcookie()) بعد إرسال الإخراج إلى المتصفح بالفعل. تظهر رسالة الخطأ عادةً بالشكل التالي: تحذير: لا يمكن تعديل معلومات الرأس - الرؤوس التي تم إرسالها بالفعل بواسطة...

مثال:

echo "Some output";
header("Location: /newpage.php"); // Causes error because output was already sent

حل:

تأكد من عدم إرسال أي إخراج (بما في ذلك المسافة البيضاء أو BOM) قبل استدعاء وظيفة الرأس (). إذا كنت بحاجة إلى إعادة توجيه المستخدم، فتأكد من استدعاء header() قبل إنشاء أي مخرجات.

header("Location: /newpage.php"); // This must appear before any echo or print statements
exit();

5. أذونات غير صحيحة

مشكلة:

تحدث أخطاء الأذونات عندما لا يمتلك برنامج PHP النصي أذونات القراءة أو الكتابة المناسبة للوصول إلى الملفات أو الدلائل. قد تظهر لك أخطاء مثل تحذير: fopen(/path/to/file): فشل في فتح الدفق: تم رفض الإذن.

حل:

التحقق من أذونات الملف والدليل. عادةً، يجب أن يكون لدى مستخدمي خادم الويب أذونات قراءة للملفات وأذونات كتابة للأدلة التي تحدث فيها عمليات التحميل أو معالجة الملفات. استخدم الأمر التالي لضبط الأذونات:

chmod 755 /path/to/directory
chmod 644 /path/to/file

ملاحظة: كن حذرًا عند تعيين الأذونات، لأن الإعدادات المفرطة في التساهل يمكن أن تشكل مخاطر أمنية.

6. استنفدت حد الذاكرة

مشكلة:

عندما ينفد PHP من الذاكرة المخصصة، سترى خطأ فادحًا: خطأ استنفاد حجم الذاكرة المسموح به X بايت. يحدث هذا عندما يستخدم البرنامج النصي ذاكرة أكبر من الحد المحدد في php.ini.

حل:

يمكنك زيادة حد الذاكرة مؤقتًا عن طريق إضافة السطر التالي إلى برنامج PHP النصي الخاص بك:

ini_set('memory_limit', '256M'); // Adjust as needed

بدلاً من ذلك، يمكنك زيادة حد الذاكرة بشكل دائم في ملف php.ini:

memory_limit = 256M

تأكد من تحسين التعليمات البرمجية الخاصة بك لتقليل استخدام الذاكرة حيثما أمكن ذلك.

7. خطأ في اتصال MySQL

مشكلة:

قد يفشل الاتصال بقاعدة بيانات MySQL في بعض الأحيان، مما يؤدي إلى خطأ مثل خطأ فادح: لم يتم اكتشاف mysqli_sql_exception: تم رفض الوصول للمستخدم 'اسم المستخدم'@'المضيف المحلي'.

الأسباب الشائعة:

  • بيانات اعتماد قاعدة البيانات غير صحيحة (اسم المضيف، اسم المستخدم، كلمة المرور، اسم قاعدة البيانات)
  • خادم MySQL لا يعمل
  • امتداد PHP MySQL غير صحيح (على سبيل المثال، استخدام mysql_connect() بدلاً من mysqli_connect())

حل:

تأكد من صحة بيانات الاعتماد الخاصة بك ومن تشغيل خادم MySQL. تأكد أيضًا من استخدام وظيفة الاتصال المناسبة. إليك مثال صحيح باستخدام mysqli_connect():

$mysqli = new mysqli('localhost', 'username', 'password', 'database');

if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

8. أخطاء تحميل الملف

مشكلة:

غالبًا ما تفشل عمليات تحميل الملفات بسبب الإعدادات غير الصحيحة أو قيود حجم الملف. قد تواجه أخطاء مثل UPLOAD_ERR_INI_SIZE أو UPLOAD_ERR_FORM_SIZE.

حل:

التحقق من إعدادات php.ini التالية وضبطها حسب الحاجة:

file_uploads = On
upload_max_filesize = 10M
post_max_size = 12M

تأكد أيضًا من أن علامة النموذج الخاصة بك تحتوي على سمة enctype الصحيحة:

9. فهرس/إزاحة غير محددة

مشكلة:

يحدث هذا الإشعار عند محاولة الوصول إلى عنصر صفيف غير موجود، مما يتسبب في ظهور إشعار: فهرس غير محدد أو إشعار: خطأ إزاحة غير محدد.

مثال:

echo $_POST['username']; // Undefined index if 'username' is not in the form data

حل:

تحقق دائمًا من وجود مفتاح الصفيف قبل محاولة الوصول إليه. استخدم isset() أو array_key_exists() لمنع هذا الخطأ.

if (isset($_POST['username'])) {
    echo $_POST['username'];
} else {
    echo "Username not provided.";
}

10. لم يتم العثور على الفصل

مشكلة:

يؤدي PHP إلى ظهور خطأ فادح: لم يتم العثور على خطأ "ClassName" للفئة عند محاولة إنشاء فئة لم يتم تعريفها أو تضمينها بشكل صحيح.

حل:

تأكد من تضمين الملف الذي يحتوي على الفئة باستخدام require() أو include(). وبدلاً من ذلك، استخدم وظيفة spl_autoload_register() الخاصة بـ PHP لتحميل ملفات الفئة تلقائيًا.

spl_autoload_register(function ($class_name) {
    include $class_name . '.php';
});

$object = new ClassName();

11. تم تجاوز الحد الأقصى لوقت التنفيذ

مشكلة:

إذا استغرق تنفيذ البرنامج النصي PHP وقتًا طويلاً، فقد تواجه خطأ فادحًا: تم تجاوز الحد الأقصى لوقت التنفيذ وهو X ثانية. يحدث هذا عادةً عند العمل مع مجموعات بيانات كبيرة أو استدعاءات واجهة برمجة التطبيقات الخارجية.

حل:

يمكنك زيادة الحد الأقصى لوقت التنفيذ مؤقتًا من خلال:

set_time_limit(300); // Extends to 300 seconds (5 minutes)

لتعيينه عالميًا، اضبط توجيه max_execution_time في ملف php.ini:

max_execution_time = 300

أخطاء PHP أمر لا مفر منه، ولكن معرفة كيفية التعامل مع الأخطاء الأكثر شيوعًا يمكن أن يوفر عليك الكثير من الوقت في تصحيح الأخطاء. سواء كانت مشكلة في بناء الجملة، أو مشكلة في اتصال قاعدة البيانات، أو خطأ في إذن الملف، فإن فهم السبب الجذري والحل هو المفتاح لتصبح مطور PHP ماهرًا.

باتباع الإرشادات الواردة في هذه المقالة، يجب أن تكون قادرًا على تحديد هذه المشكلات وحلها بشكل فعال. حافظ على تمكين الإبلاغ عن الأخطاء أثناء التطوير لاكتشاف هذه الأخطاء مبكرًا وضمان عملية ترميز أكثر سلاسة!

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/prahladyeri/common-php-errors-solutions-to-frequently-encountered-issues-3mn0?1?1?1إذا كان هناك أي انتهاك، يرجى الاتصال بـ Study_golang@163. كوم لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3