اذهب إلى المحتوى

السؤال

نشر

انا انشائت موقع وردبريس على استضافة هوستينجر واريد انشاء صفحة عرض درجات الطلبة يدخل الطالب الباسورد والايدي الخاص به الحقلين موجودين في قاعدة البيانات الكود بيشبك مع قاعده البيانات و يشيك على ان ال id , الباسورد على نفس الكولم و يخرج البيانات الخاصة بية

Recommended Posts

  • 0
نشر

حسنًا ، إنشاء أي نموذج للتعامل مع قاعدة بيانات يحتاج إلى تصميم ، كما ذكرت سيكون هناك حقلان ، حقل لمُعرف الطالب وهو الـ ID number ، والحقل الآخر هو كلمة السر ، والآن لنفترض أن إسم الصفحة هو checkGrade.php

<form method="POST" action="checkGrade.php">
	<input type="text" placeholder="ID Number" name="ID" />
	<input type="password" placeholder="Password" name="password" />
	<button type="submit">Show Your Grade</button>
</form>

سيكون هذا النموذج "بشكل أولي" مع إمكانية إضافة تصميم عبر الـcss ، الآن إنتهينا من الواجهة الأمامية.

يبقى الواجهة الخلفية او الباك إند.

سنحتاج أولًا لإستدعاء wpdb لنتعامل مع قاعدة بيانات الووردبريس

global $wpdb;

ثانيًا يجب أن نتأكد أن المستخدم قام بتعبئة حقل الأيدي والباسوورد عبر الشرط التالي

if( isset($_POST['ID']) && isset($_POST['password']) ) // يتم التحقق من تعبئة إسم المستخدم وكلمة السر
{

}

داخل هذا الشرط سنقوم بإستدعاء البيانات المطلوبة من قاعدة البيانات بعد التأكد من وجود أيدي وباسوورد بنفس المُدخلات التي أدخلها الطالب ، سنستخدم الدالة التالية

$wpdb->get_results()

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

$wpdb->prepare()

وهذه الدالة تحديدًا سنقوم بوضع الـ query فيها مع المتغيرات كـ argument ثاني بعد الـ query ، طبعًا سأرفق لك التوثيقات المطلوبة من الووردبريس للإطلاع على هذه الدوال بشكل أكثر تفصيلًا في نهاية الرد.

وسيكون تجهيز الـ query بهذا الشكل:-

$query = $wpdb->prepare(
		"SELECT grade FROM grades WHERE ID_number = '%s' AND password='%s' "
		, [$_POST['ID'], $_POST['password'] ]
	)

طبعًا يمكنك تغيير الأسماء حسب إحتياجاتك ، الآن أصبح الـquery جاهز ومحمي ، تبقى فقط تمريره لقاعدة البيانات لإستدعاء الدرجة المطلوبة

ليكون بهذا الشكل

<?php
global $wpdb;
if( isset($_POST['ID']) && isset($_POST['password']) ) // يتم التحقق من تعبئة إسم المستخدم وكلمة السر
{
	$query = $wpdb->prepare(
		"SELECT grade FROM grades WHERE ID_number = '%s' AND password='%s' "
		, [$_POST['ID'], $_POST['password'] ]
	)
	$result = $wpdb->get_results($query);
	echo 'Your grade is '.$result[0]['grade'];
}
?>
<form method="POST" action="index.php">
	<input type="text" placeholder="ID Number" name="ID" />
	<input type="password" placeholder="Password" name="password" />
	<button type="submit">Show Your Grade</button>
</form>

الآن تبقى آخر شيء وهو أمر طباعة الدرجة بالشكل التالي:-

echo 'Your grade is '.$result[0]['grade'];

ليكون الكود بشكله الكامل بهذه الطريقة

وهذه هي أبسط طريقة للكود ، يمكنك إضافة تعديلات حسب إحتياجاتك.

وأخيرًا هذه هي التوثيقات الخاصة بالدوال في wordpress

wpdb::get_results()

wpdb::prepare()

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...