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

السؤال

نشر (معدل)

كيف يمكن عمل تنظيم ملفات php عموماً مثل الدوال وغيرها بحيث عمل نظام مشترك لمستخدمين النظام تكون نفس صفحة الكود ولكن تظهر لكن مستخدم حسب صلاحيته

 

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال

Recommended Posts

  • 1
نشر

سؤالك غير واضح جيدا ويحتاج تفصيلا أكثر، ان كنت تحاول البحث عن طريقة لهيكلة مشروع PHP فأنت في الغالب سوف تحتاج التعامل مع نمط تصميم شائع معين، من مثل نمط MVC الذي يقتضي فصل مكونات التطبيق إلى ثلاث:

  • النموذج (Model): يمثل النموذج البيانات والمنطق الأساسي للتطبيق.يقوم بمعالجة وإدارة البيانات والتفاعل مع قاعدة البيانات إذا كان ذلك ضروريًا.
  • العرض (View): يمثل العرض وواجهة المستخدم (UI) للتطبيق. يتعامل مع عرض البيانات وتقديمها للمستخدمين بشكل مناسب. يتفاعل مع المستخدم ويمكنه إرسال طلبات إلى المتحكم للتحكم في التطبيق.
  • المتحكم (Controller): يعمل المتحكم كوسيط بين النموذج والعرض. يتلقى الطلبات من العرض وينفذ العمليات المنطقية اللازمة. يحدد أي نموذج وأي عرض يجب استخدامهما وكيف يجب تنسيقهما معًا.

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

  • 0
نشر

1- عليك أولاً إنشاء قاعدة بيانات تحتوي على جدولين:

  • جدول المستخدمين ويحتوي على معلومات المستخدمين، مثل الاسم، والبريد الإلكتروني، والصلاحيات.
  • جدول الأدوار ويحتوي على أسماء الأدوار وصلاحياتها.

2- ثم إنشاء نموذج تسجيل دخول لتسجيل المستخدمين في النظام.

3- وعند تسجيل دخول المستخدم، يتم تحديد صلاحيته بناءً على الدور الذي تم تعيينه له في قاعدة البيانات.

4- بعد ذلك يتم استخدام تلك الصلاحية لعرض الصفحة لكل مستخدم حسب صلاحيته.

وإليك مثال بسيط:

// إنشاء قاعدة بيانات
$db = new PDO("mysql:host=localhost;dbname=mydb", "root", "");

// إنشاء جدول المستخدمين
$sql = "CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255),
  email VARCHAR(255),
  role VARCHAR(255)
);";
$db->query($sql);

// إنشاء جدول الأدوار
$sql = "CREATE TABLE roles (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255),
  permissions VARCHAR(255)
);";
$db->query($sql);

// إدخال بيانات في جدول المستخدمين
$sql = "INSERT INTO users (name, email, role) VALUES
  ('John Doe', 'johndoe@example.com', 'admin'),
  ('Jane Doe', 'janedoe@example.com', 'user');";
$db->query($sql);

// إدخال بيانات في جدول الأدوار
$sql = "INSERT INTO roles (name, permissions) VALUES
  ('admin', 'all'),
  ('user', 'view');";
$db->query($sql);

// إنشاء نموذج تسجيل دخول
echo '<form action="login.php" method="post">
  <input type="text" name="email" placeholder="البريد الإلكتروني">
  <input type="password" name="password" placeholder="كلمة المرور">
  <input type="submit" value="تسجيل الدخول">
</form>';

// تحديد صلاحية المستخدم
if (isset($_POST['email']) && isset($_POST['password'])) {
  $email = $_POST['email'];
  $password = $_POST['password'];

  // تسجيل دخول المستخدم
  $sql = "SELECT * FROM users WHERE email = :email AND password = :password";
  $stmt = $db->prepare($sql);
  $stmt->bindParam(':email', $email);
  $stmt->bindParam(':password', $password);
  $stmt->execute();

  // الحصول على بيانات المستخدم
  $user = $stmt->fetch();

  // تحديد صلاحية المستخدم
  $role = $user['role'];
} else {
  $role = null;
}

// عرض الصفحة حسب صلاحية المستخدم
if ($role == 'admin') {
  // عرض الصفحة للمسؤول
  echo '<h1>صفحة المسؤول</h1>';
} else if ($role == 'user') {
  // عرض الصفحة للمستخدم
  echo '<h1>صفحة المستخدم</h1>';
} else {
  // عرض رسالة خطأ
  echo '<p>أنت غير مصرح لك بدخول هذه الصفحة.</p>';
}

 

  • 0
نشر

لإنشاء نظام مشترك لمستخدمين في PHP حيث يتم عرض نفس صفحة الكود لكل مستخدم وفقًا لصلاحياته، يمكنك اتباع بعض المبادئ والتقنيات التالية:

1. إنشاء نظام مصادقة المستخدمين: قم بإنشاء نظام مصادقة المستخدمين الذي يتيح للمستخدمين تسجيل الدخول إلى التطبيق باستخدام اسم المستخدم وكلمة المرور الخاصة بهم. يمكنك استخدام قاعدة بيانات لتخزين معلومات المستخدمين وتنفيذ التحقق من صحة بيانات تسجيل الدخول.

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

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

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

على سبيل المثال، يمكنك استخدام الكود التالي لتنفيذ نظام التحقق من الصلاحيات:

// تحقق من صلاحيات المستخدم الحالي
if ($userRole === 'admin') {
    // عرض صفحة المشرف
    include 'admin-page.php';
} elseif ($userRole === 'user') {
    // عرض صفحة المستخدم العادي
    include 'user-page.php';
} else {
    // صفحة الوصول المرفوض
    include 'access-denied.php';
}

في الكود أعلاه، يتم التحقق من الدور (صلاحية) المختلفة للمستخدم الحالي، وبناءً على ذلك يتم تضمين الملف الصحيح الذي يحتوي على محتوى الصفحة المناسبة لكل دور.

باستخدام هذه الخطوات والتقنيات، يمكنك إنشاء نظام مشترك للتنظيم ملفات PHP بشكل عام، يمكنك اتباع بعض المبادئ والممارسات التالية:

1. تقسيم الوظائف: قم بتقسيم الكود إلى وظائف منفصلة ومجمعة وفقًا لوظيفة كل ملف. على سبيل المثال، يمكنك إنشاء ملف مخصص للاتصال بقاعدة البيانات، وملف آخر لإجراء العمليات الخاصة بالمستخدمين، وملف آخر للتعامل مع الصفحات الرئيسية، وهكذا.

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

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

4. استخدام الـ include والـ require: استخدم الأوامر include و require لتضمين ملفات PHP الأخرى داخل صفحاتك. يمكنك استخدامها لتنفيذ وظائف محددة في ملفات منفصلة وإعادة استخدام الكود بشكل فعال.

عند العمل على نظام مشترك للمستخدمين، يمكنك تنفيذ نفس أسلوب تنظيم الملفات المذكور أعلاه. قم بتقسيم الكود وفقًا للوظائف المختلفة واستخدم الأوامر include أو require لتضمين الملفات المناسبة وفقًا لصلاحيات المستخدم.

على سبيل المثال، يمكنك إنشاء ملف "user-page.php" لعرض صفحة المستخدم العادي وملف "admin-page.php" لعرض صفحة المشرف. ثم، في صفحة الكود الرئيسية، قم بتحقق من صلاحيات المستخدم واستدعاء الملف المناسب باستخدام الأمر include:

// تحقق من صلاحيات المستخدم
if ($userRole === 'admin') {
    include 'admin-page.php';
} elseif ($userRole === 'user') {
    include 'user-page.php';
} else {
    // صفحة الوصول المرفوض
    include 'access-denied.php';
}

بهذه الطريقة، يمكنك تنظيم ملفات PHP وعرض نفس صفحة الكود للمستخ

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...