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

السؤال

نشر (معدل)

 ممكن طريقة عمل كود php للتحقق من ان الشخص قام بتسجيل الدخول وتوجية لصفحتة الشخصية لانة انا لما عملت الكود واجهتني عدة مشاكل ومايتم نقلة لصفحتة 

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

Recommended Posts

  • 0
نشر

هناك عدة طرق لفعل ذلك وفيما يلي مثال بسيط:

1- إنشاء نموذج تسجيل الدخول (login form) ومعالجته:

<form action="login.php" method="post">
  <label for="username">اسم المستخدم:</label>
  <input type="text" name="username" id="username">

  <label for="password">كلمة المرور:</label>
  <input type="password" name="password" id="password">

  <button type="submit">تسجيل الدخول</button>
</form>

ثم يمكن معالجة هذا النموذج في ملف PHP باستخدام الكود التالي:

<?php
session_start();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  // تحقق من أن الاسم وكلمة المرور تم توفيرها في النموذج
  if (!isset($_POST['username']) || !isset($_POST['password'])) {
    die('يجب توفير اسم المستخدم وكلمة المرور');
  }

  // تحقق من صحة اسم المستخدم وكلمة المرور
  $username = $_POST['username'];
  $password = $_POST['password'];

  // تمثيل عملية التحقق من صحة اسم المستخدم وكلمة المرور هنا
  // إذا كانت البيانات صحيحة، يتم إنشاء جلسة جديدة وتوجيه المستخدم إلى صفحته الشخصية
  if ($username === 'myusername' && $password === 'mypassword') {
    $_SESSION['username'] = $username;
    header('Location: profile.php');
    exit;
  } else {
    die('اسم المستخدم أو كلمة المرور غير صحيحة');
  }
}
?>

2- إنشاء الصفحة الشخصية:

<?php
session_start();

// التحقق من أن المستخدم قام بتسجيل الدخول
if (!isset($_SESSION['username'])) {
  die('يجب تسجيل الدخول لعرض هذه الصفحة');
}

// عرض معلومات المستخدم هنا
echo 'مرحباً ' . $_SESSION['username'];
?>

3- استخدام دالة header() لتوجيه المستخدم إلى صفحته الشخصية بعد تسجيل الدخول. يمكن استخدامها على النحو التالي:

// تحقق من البيانات المدخلة بقاعدة البيانات
if ($username == $db_username && $password == $db_password) {
    // إنشاء جلسة للمستخدم وتخزين بياناته
    session_start();
    $_SESSION['username'] = $username;
    $_SESSION['logged_in'] = true;
    
    // توجيه المستخدم إلى صفحته الشخصية
    header("Location: profile.php");
    exit;
} else {
    echo "اسم المستخدم أو كلمة المرور خاطئة";
}

في المثال، تم تحقق من بيانات تسجيل الدخول مع قاعدة البيانات وإنشاء جلسة للمستخدم باستخدام session_start() وتخزين بياناته في $_SESSION.

ثم يتم استخدام header() لتوجيه المستخدم إلى صفحته الشخصية profile.php باستخدام Location:. يجب عليك التأكد من أن الجلسة قد تم إنشاؤها بشكل صحيح في صفحة الوجهة، وإلا فقد يتم توجيه المستخدم إلى صفحة تسجيل الدخول مرة أخرى.

  • 0
نشر

يختلف سياق شيفرة التحقق من تسجيل الدخول وتوجيه المستخدم لصفحته الشخصية حسب لغة البرمجة التي تستخدمها ونوع قاعدة البيانات التي تستخدمها لتخزين بيانات المستخدمين ومعلومات تسجيل الدخول الخاصة بهم وما الى ذلك. ففي PHP مثلا سيكون الكود مشابها لـ:

<?php
session_start(); // بدء جلسة لتخزين معلومات تسجيل الدخول

if(isset($_POST['login'])){ // التحقق من الضغط على زر تسجيل الدخول

    // اتصال بقاعدة البيانات والتحقق من تطابق بيانات تسجيل الدخول
    $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){ // التحقق من توافق بيانات تسجيل الدخول
        $_SESSION['username'] = $username; // تخزين اسم المستخدم في الجلسة
        header('Location: profile.php'); // توجيه المستخدم لصفحته الشخصية
    }
    else{
        echo "خطأ في اسم المستخدم أو كلمة المرور!";
    }
}

?>

وهذا كعينة، سيمكن بالطبع تخصيص الشيفرة وفق ما لديك. 

انتبه ايضا الى أن المتغير conn الذي يتم استعماله في تنفيذ استعلام MySql هو متغير يفترض ان يعبر عن كائن الاتصال بقاعدة البيانات، يتم عادة تخزين هذا المتغير بملف منفصل يخص الاتصال بقاعدة البيانات واعداده.

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...