مقدمة: لماذا تبدو PHP صعبة رغم أنها ليست كذلك
\n\nقررت تعلم PHP. اختيار ممتاز! هذه اللغة تغذي أكثر من 78% من جميع المواقع على الإنترنت - من المدونات الصغيرة إلى العمالقة مثل Facebook (في سنواته الأولى). ولكن لماذا يتخلى الكثير من المبتدئين عن PHP بعد الأسبوع الأول فقط؟
\n\nالجواب بسيط: أخطاء تعلم PHP تحول العملية الممتعة إلى لغز جهنمي. يتوقف الكود عن العمل، وتحصل على شاشة بيضاء بدلاً من الصفحة، وفي رأسك فوضى من $ و $_POST و mysqli_connect().
في هذه المقالة، سنحلل 10 من أكثر الأخطاء شيوعًا التي يقع فيها المطورون المبتدئون. ستتعلم ليس فقط ما تفعله بشكل خاطئ، ولكن أيضًا كيف تصلحه. هيا بنا!
\n\n1. تجاهل بناء الجملة الأساسي والفاصلة المنقوطة
\n\nأكثر أخطاء PHP النمطية شيوعًا - عدم وجود فاصلة منقوطة ; في نهاية كل تعليمة. في PHP، هذه ليست مجرد إجراء شكلي، بل قاعدة نحوية صارمة.
مثال على الخطأ:
\n<?php\necho "مرحبًا بالعالم"\necho "كيف حالك؟"; // خطأ: Parse error: syntax error, unexpected 'echo'\n?>\n\n\nبشكل صحيح:
\n<?php\necho "مرحبًا بالعالم";\necho "كيف حالك؟";\n?>\n\n\nنصيحة: ضع دائمًا فاصلة منقوطة بعد echo، وتعيين المتغير، واستدعاء الدالة. الاستثناء الوحيد هو تركيبات if و while و for (بعد قوس الإغلاق المتعرج لا حاجة لفاصلة).
2. الخلط بين علامات الاقتباس المفردة والمزدوجة
\n\nيعتقد العديد من المبتدئين أنه لا يوجد فرق. لكن في PHP، مشاكل بناء جملة PHP غالبًا ما تنشأ بسبب علامات الاقتباس.
\n\nالفرق:
\n- \n
- علامات الاقتباس المفردة (
' ') - تتعامل مع النص حرفيًا. لا تتم معالجة المتغيرات داخلها. \n - علامات الاقتباس المزدوجة (
" ") - تقوم بإقحام المتغيرات (استبدال قيمها). \n
مثال على الخلط:
\n<?php\n$name = "آنا";\necho 'مرحبًا، $name'; // سيطبع: مرحبًا، $name (وليس "مرحبًا، آنا")\necho "مرحبًا، $name"; // سيطبع: مرحبًا، آنا\n?>\n\n\nالقاعدة الذهبية: إذا لم يكن هناك متغيرات داخل النص - استخدم علامات الاقتباس المفردة. فهي أسرع وأكثر أمانًا.
\n\n3. خلط HTML و PHP في فوضى واحدة
\n\nأحد أخطاء مبتدئي PHP الرئيسية - كتابة كل الكود في ملف واحد، وخلط المنطق والعرض.
\n\nكود سيء:
\n<?php\n$users = ["إيفان", "ماريا", "بيتر"];\necho "<ul>";\nforeach($users as $user) {\n echo "<li>$user</li>";\n}\necho "</ul>";\n?>\n\n\nنهج جيد (فصل المنطق عن القالب):
\n<?php\n// index.php\n$users = ["إيفان", "ماريا", "بيتر"];\nrequire 'templates/users-list.php';\n?>\n\n<!-- templates/users-list.php -->\n<ul>\n<?php foreach($users as $user): ?>\n <li><?= htmlspecialchars($user) ?></li>\n<?php endforeach; ?>\n</ul>\n\n\nنصيحة: استخدم محركات القوالب (Twig, Blade) أو على الأقل افصل المنطق (controller.php) عن العرض (view.php).
4. إهمال الأمان: حقن SQL
\n\nهذه أخطاء PHP خطيرة قد تكلفك بياناتك. يكتب العديد من المبتدئين الاستعلامات مباشرة في النص، بإدراج بيانات المستخدم.
\n\nكود ضعيف:
\n<?php\n$id = $_GET['id'];\n$query = "SELECT * FROM users WHERE id = $id"; // خطير!\n$result = mysqli_query($conn, $query);\n?>\n\n\nإذا قام المهاجم بتمرير ?id=1 OR 1=1، فسيحصل على جميع المستخدمين.
كود آمن (مع استعلامات محضرة):
\n<?php\n$stmt = $conn->prepare