البرمجة

تحسين أمان وأداء تقييمات PHP

الشيفرة التي قدمتها تحتوي على العديد من الأخطاء التي تمنع تشغيلها بشكل صحيح. دعنا نفحصها ونصحح الأخطاء:

  1. الاتصال بقاعدة البيانات:
    أولاً وقبل كل شيء، يجب التأكد من أن الاتصال بقاعدة البيانات يتم بشكل صحيح. يبدو أن اسم المستخدم وكلمة المرور للاتصال بقاعدة البيانات غير صحيحة. يجب استبدال “akdnaklnd” باسم مستخدم صحيح و “lfnlfns” بكلمة مرور صحيحة.

  2. الاستعلامات SQL:
    في الاستعلامات SQL، يجب تمرير الاتصال بقاعدة البيانات كمعلمة أولى. كما أنه يجب استخدام دالة mysqli_query() بشكل صحيح لتنفيذ الاستعلامات.

  3. التحديثات والحوسبة:
    في السطر الأول من حلقة while، يجب أن تكون المتغيرات $current_hits و $id معرفة قبل استخدامها في التحديث. يجب تحديث $current_hits لتضمن القيمة الصحيحة للعداد قبل زيادته بواحد.

  4. التوجيه:
    يبدو أن توجيهك في النهاية لا يحتوي على تنسيق صحيح. يجب أن يكون السطر header() كما يلي: header("Location: average.php"); دون أي فراغ بين “Location” والقيمة المحددة.

تصحيح هذه الأخطاء يمكن أن يؤدي إلى تشغيل الشيفرة بشكل صحيح. إليك الشيفرة مع التصحيحات المطلوبة:

php
$connection = mysqli_connect("localhost", "اسم_المستخدم", "كلمة_المرور", "اسم_قاعدة_البيانات"); $game = $_POST['game']; $post_rating = $_POST['rating']; $find_data = mysqli_query($connection, "SELECT * FROM rates WHERE game='$game'"); while($row = mysqli_fetch_assoc($find_data)){ $id = $row['id']; $current_rating = $row['rating']; $current_hits = $row['hits']; } $new_hits = $current_hits + 1; $update_hits = mysqli_query($connection, "UPDATE rates SET hits = '$new_hits' WHERE id='$id'"); $pre_rating = $current_rating + $post_rating; $new_rating = $pre_rating / $new_hits; $update_rating = mysqli_query($connection, "UPDATE rates SET rating ='$new_rating' WHERE id='$id'"); header("Location: average.php"); ?>

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

المزيد من المعلومات

بالطبع، سأقوم بتكملة المقال:

  1. تحقق من البيانات المدخلة:
    ينبغي دائماً التحقق من البيانات المدخلة من قبل المستخدم لتجنب هجمات الحقن SQL. يمكن استخدام دوال مثل mysqli_real_escape_string() لتنظيف البيانات المدخلة.

  2. الأمان والأداء:
    في الشيفرة الحالية، لا يتم التحقق من نجاح تنفيذ الاستعلامات SQL. يجب دائماً التحقق من النتائج المعادة من mysqli_query() للتأكد من نجاح التنفيذ والتعامل مع الأخطاء بشكل صحيح.

  3. تحسين الأداء:
    يمكن تحسين أداء الشيفرة عن طريق استخدام استعلامات معيارية أكثر فعالية، مثل استخدام استعلام UPDATE واحد بدلاً من عدة استعلامات منفصلة لتحديث البيانات.

  4. إعادة التصميم:
    يمكن إعادة تصميم الشيفرة لتحسين الهيكل والوضوح. يمكن تجزئة العمليات المختلفة إلى دوال منفصلة لتحسين قابلية الصيانة وإعادة الاستخدام.

  5. توثيق الشيفرة:
    يجب دائمًا توثيق الشيفرة بشكل جيد ليسهل فهمها وصيانتها في المستقبل، مما يشمل شروحات لكيفية عمل الشيفرة والمتغيرات المستخدمة.

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

  7. تحسينات إضافية:
    يمكن إضافة مزيد من الميزات مثل إدخالات تحقق الهوية لمنع الوصول غير المصرح به، أو إضافة إشعارات تأكيد بعد تقديم التقييم لتحسين تجربة المستخدم.

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

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!