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

السؤال

نشر (معدل)

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

تم التعديل في بواسطة Sara Mohammed9

Recommended Posts

  • 0
نشر

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

و عندها عندما تريد عرض أو تنفيذ أي شيء يمكنك التحقق من هذه القيمة لمعرفة إن كان يحق لهذا المستخدم تنفيذ ما تريد.

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

  • 0
نشر

الطريقة الأسهل هي لإنشاء مستخدمين وتقسيمهم حسب الصلاحيات في PHP، يمكنك استخدام نظام إدارة المحتوى (CMS) الشهيرة مثل WordPress أو Drupal أو Joomla. ولكن إذا كنت ترغب في بناء نظام إدارة مستخدمين مخصص، فيمكنك اتباع الخطوات التالية:

  1.  تصميم قاعدة بيانات لحفظ بيانات المستخدمين والصلاحيات المتعلقة بهم.
  2.  إنشاء صفحة تسجيل الدخول والتحقق من بيانات المستخدمين باستخدام PHP و MySQL.
  3.  تصميم لوحة تحكم للمدير لإدارة المستخدمين وتحديد صلاحياتهم. يمكن أيضاً تحميل صور المستخدمين وتحديث معلوماتهم الشخصية.
  4.  تحديد الصلاحيات المناسبة لكل دور مثل مدير، طبيب، ممرض، مستخدم عادي، ومريض. على سبيل المثال، يمكن للمدير إضافة وتحرير وحذف المستخدمين وتحديد صلاحياتهم، بينما يمكن للمستخدم العادي فقط عرض البيانات الخاصة به.
  5.  توجيه المستخدمين إلى صفحاتهم المناسبة بناءً على صلاحياتهم. على سبيل المثال، بعد تسجيل الدخول، يجب توجيه المدير إلى لوحة التحكم، بينما يجب توجيه المستخدم العادي إلى صفحته الشخصية.

ويمكن تحديد الصلاحيات المختلفة لكل دور (مثل المدير والطبيب والممرض والمستخدم العادي والمريض) عن طريق تعيين الأذونات المختلفة لكل مجموعة، وذلك بتحديد الأذونات باستخدام رموز رقمية أو رموز نصية وتحديد مستوى الوصول لكل مستخدم.

 أيضًا بإمكانك استخدام إطار عمل PHP مثل Laravel أو CodeIgniter لتسهيل إنشاء نظام إدارة المستخدمين.

 

  • 0
نشر

بجانب ما اقترح المدربون، يمكنك نمذجة جزئيات هاته الفكرة الى جدولين بقاعدة البيانات: 

  • أولهما هو جدول المستخدمين وليحمل الحقول: اسم المستخدم - عنوان بريده الالكتروني - كلمة مروره. 
  • ثانيهما هو جدول الأدوار وليحمل الحقول: اسم الدور (طبيب - ممرض .. الخ),

يجب أن يميز كل مستخدم يسجل في النظام بدور معين، ولذلك سنحتاج اضافة حقل يميز صفا من جدول الأدوار في جدول المستخدمين. وليكن الحقل او العمود role_id

سيمكن بعد ذلك استعمال هاته البيانات في: 

  • فحص دور المستخدم المسجل دخوله
  • تصيير الصفحات او التعامل مع التوجيه بشكل شرطي بناءا على هذا الدور

فإن كان مثلا المستخدم A طبيبا وقد طلب صفحة البروفايل الشخصي تعرض صفحة doctor-profile.php مثلا  وان كان المستخدم B ممرض وقد طلب صفحة البروفايل الشخصي تعرض صفحة nurse-profile.php وهكذا. 

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

  • 0
نشر

الخطوات الأساسية في إنشاء نظام المستخدمين هي:

  • إنشاء جدول في قاعدة البيانات لتخزين معلومات المستخدمين وصلاحياتهم: يتم إنشاء جدول يحتوي على حقول لاسم المستخدم وكلمة المرور ودور المستخدم. يمكن أيضًا إضافة حقول إضافية حسب احتياجات التطبيق.
  • إضافة بعض البيانات الافتراضية إلى جدول المستخدمين: يتم إضافة بعض الحسابات الافتراضية التي يمكن استخدامها لتسجيل الدخول فيما بعد. يمكن أيضًا للمسؤولين إضافة المزيد من المستخدمين وتحديد صلاحياتهم.
  • إنشاء صفحة تسجيل الدخول login.php: تستخدم هذه الصفحة لتحقق من اسم المستخدم وكلمة المرور وتحديد دور المستخدم. يتم استخدام الطريقة POST لنقل بيانات تسجيل الدخول مثال على ذلك . 
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
      $username = $_POST['username'];
      $password = $_POST['password'];
    
      $query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
      $result = mysqli_query($conn, $query);
    
      if (mysqli_num_rows($result) == 1) {
        $row = mysqli_fetch_assoc($result);
        $_SESSION['user_id'] = $row['id'];
        $_SESSION['user_role'] = $row['role'];
        header('Location: profile.php');
        exit;
      } else {
        $error = 'Invalid username/password';
      }
    }

     

  • إنشاء صفحة الملف الشخصي profile.php: تستخدم هذه الصفحة لتحقق من دور المستخدم وتوجيهه إلى الصفحة المناسبة، بحيث يمكن للإداريين الوصول إلى صفحة الإدارة والأطباء الوصول إلى صفحة الأطباء والممرضين الوصول إلى صفحة الممرضين والمرضى الوصول إلى صفحة المرضى مثال على ذلك
    session_start();
    if (!isset($_SESSION['username']) || !isset($_SESSION['role'])) {
        header("Location: login.php");
        exit();
    }
    
    if ($_SESSION['role'] == 'admin') {
        header("Location: admin.php");
        exit();
    } elseif ($_SESSION['role'] == 'doctor') {
        header("Location: doctor.php");
        exit();
     
  • إنشاء صفحات المستخدمين الفردية: يتم إنشاء صفحات المستخدمين الفردية وتصميمها وفقًا للاحتياجات المحددة، بحيث تحتوي صفحة الإدارة على الوظائف التي يمكن للإداريين القيام بها وصفحة الأطباء تحتوي على الوظائف التي يمكن للأطباء القيام بها وهكذا.

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...