كيفية إنشاء نظام تسجيل دخول بسيط باستخدام PHP و HTML

تمت الكتابة بواسطة: عبد الحكيم

تارخ آخر تحديث: 18 سبتمبر 2024

محتوى المقال

كيفية إنشاء نظام تسجيل دخول بسيط باستخدام PHP و HTML

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

المتطلبات الأساسية

قبل البدء، تأكد من توفر المتطلبات التالية:

  • معرفة أساسية بـ PHP و HTML.
  • خادم ويب محلي مثل XAMPP أو WAMP.
  • قاعدة بيانات MySQL لإنشاء جداول المستخدمين.

الخطوة 1: إعداد قاعدة البيانات

أولاً، سنحتاج إلى إنشاء قاعدة بيانات وجداول لتخزين معلومات المستخدمين.

إنشاء قاعدة البيانات

قم بفتح phpMyAdmin أو أي أداة أخرى لإدارة قواعد البيانات، وأنشئ قاعدة بيانات جديدة باسم login_system.

إنشاء جدول المستخدمين

أنشئ جدولًا جديدًا باسم users بالحقول التالية:

  • id: مفتاح أساسي، رقم تعريف المستخدم، نوع INT، زيادة تلقائية.
  • username: اسم المستخدم، نوع VARCHAR.
  • password: كلمة المرور، نوع VARCHAR.

كود SQL لإنشاء الجدول

CREATE TABLE users (
    id INT(11) NOT NULL AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(255) NOT NULL,
    PRIMARY KEY (id)
);

الخطوة 2: إنشاء نموذج تسجيل الدخول

سنبدأ بإنشاء نموذج HTML يسمح للمستخدمين بإدخال اسم المستخدم وكلمة المرور.

<!DOCTYPE html>
<html>
<head>
    <title>تسجيل الدخول</title>
</head>
<body>
    <form action="login.php" method="post">
        <label>اسم المستخدم:</label>
        <input type="text" name="username">

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

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

الخطوة 3: معالجة بيانات تسجيل الدخول باستخدام PHP

الآن، سننشئ ملف login.php لمعالجة بيانات النموذج والتحقق من صحة بيانات المستخدم.

الاتصال بقاعدة البيانات

أولاً، سنقوم بإنشاء اتصال بقاعدة البيانات.

<?php
// الاتصال بقاعدة البيانات
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "login_system";

$conn = mysqli_connect($servername, $username, $password, $dbname);

if (!$conn) {
    die("فشل الاتصال: " . mysqli_connect_error());
}
// باقي الكود سيأتي هنا
?>

التحقق من بيانات المستخدم

سنقوم الآن بالحصول على بيانات اسم المستخدم وكلمة المرور من النموذج والتحقق منها في قاعدة البيانات.

// الحصول على البيانات من النموذج
$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);

// استعلام للتحقق من وجود المستخدم
$sql = "SELECT * FROM users WHERE username='$username'";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) == 1) {
    $row = mysqli_fetch_assoc($result);
    // التحقق من كلمة المرور
    if (password_verify($password, $row['password'])) {
        // تسجيل الدخول ناجح
        session_start();
        $_SESSION['username'] = $username;
        header("Location: welcome.php");
    } else {
        // كلمة المرور غير صحيحة
        echo "كلمة المرور غير صحيحة.";
    }
} else {
    // اسم المستخدم غير موجود
    echo "اسم المستخدم غير موجود.";
}

mysqli_close($conn);

الخطوة 4: إنشاء صفحة الترحيب

بعد تسجيل الدخول بنجاح، سيتم توجيه المستخدم إلى صفحة ترحيب.

<?php
session_start();
if (!isset($_SESSION['username'])) {
    header("Location: index.html");
    exit();
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>مرحبًا</title>
</head>
<body>
    <h1>مرحبًا، <?php echo $_SESSION['username']; ?></h1>
    <a href="logout.php">تسجيل الخروج</a>
</body>
</html>

الخطوة 5: إنشاء وظيفة تسجيل الخروج

لتمكين المستخدمين من تسجيل الخروج، سننشئ ملف logout.php.

<?php
session_start();
session_unset();
session_destroy();
header("Location: index.html");
?>

الخطوة 6: تأمين كلمات المرور

من المهم جدًا تأمين كلمات المرور قبل تخزينها في قاعدة البيانات. سنستخدم الدالة password_hash() لتشفير كلمات المرور عند التسجيل.

مثال على تسجيل مستخدم جديد

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

// تشفير كلمة المرور
$hashed_password = password_hash($password, PASSWORD_DEFAULT);

// تخزينها في قاعدة البيانات
$sql = "INSERT INTO users (username, password) VALUES ('$username', '$hashed_password')";

الخطوة 7: تحسين الأمان

لتعزيز أمان نظام تسجيل الدخول، يجب مراعاة النقاط التالية:

  • التحقق من صحة البيانات: تأكد من التحقق من جميع البيانات المُدخلة من المستخدم لمنع هجمات SQL Injection.
  • استخدام عبارات مُعدة: استخدم عبارات مُعدة مع PDO أو MySQLi لتحسين الأمان.
  • تأمين الجلسات: استخدم session_regenerate_id() لمنع هجمات جلسات القراصنة.
  • الاتصال الآمن: إذا كان ذلك ممكنًا، استخدم HTTPS لتأمين نقل البيانات بين العميل والخادم.

الخلاصة

لقد قمنا في هذا المقال بإنشاء نظام تسجيل دخول بسيط باستخدام PHP و HTML. تعلمنا كيفية إعداد قاعدة البيانات، إنشاء نماذج تسجيل الدخول، معالجة البيانات، وتطبيق أفضل ممارسات الأمان. هذا النظام يُعتبر أساسًا يمكنك البناء عليه لتطوير نظام أكثر تعقيدًا يتضمن وظائف إضافية مثل تسجيل المستخدمين، إعادة تعيين كلمات المرور، وتأكيد البريد الإلكتروني.

تذكر دائمًا أن الأمان هو عامل حاسم عند التعامل مع معلومات المستخدمين. لذا، تأكد من متابعة أحدث الممارسات والتحديثات في مجال أمان الويب.

طور مهاراتك: مقالات يجب قراءتها في البرمجة