مشروع صفحة تسجيل دخول (Login Page) مع حفظ البيانات بملف نصي

 


حديثنا اليوم راح يكون عن صفحة تسجيل دخول Login Page مع حفظ البيانات بملف نصي 


المقدمة

في عالم التقنية والتطبيقات الحديثة، أصبح تسجيل الدخول (Login) من العناصر الأساسية التي لا يمكن الاستغناء عنها. فعندما تزور أي موقع أو تطبيق مثل فيسبوك أو تويتر أو إنستغرام، فإن أول ما يُطلب منك هو تسجيل الدخول باستخدام اسم المستخدم وكلمة المرور.

هذا النظام يساعد على:

  • حماية البيانات الشخصية.

  • تخصيص تجربة المستخدم.

  • منع الوصول غير المصرح به.

في هذا المقال، سوف نتعلم خطوة بخطوة كيف ننشئ صفحة تسجيل دخول بسيطة باستخدام لغة Python مع حفظ بيانات المستخدمين في ملف نصي (Text File) بدلًا من قاعدة بيانات كبيرة. هذا المشروع مناسب جدًا للمبتدئين، لأنه يجمع بين أساسيات البرمجة وفكرة عملية يمكن تطويرها لاحقًا.


ما الهدف من المشروع؟

الغرض من المشروع هو:

  1. تعلم التعامل مع المدخلات (مثل إدخال اسم المستخدم وكلمة المرور).

  2. التدريب على استخدام الملفات النصية لتخزين البيانات.

  3. فهم فكرة التسجيل وتسجيل الدخول بشكل عملي.

  4. اكتساب خبرة تساعدك لاحقًا على التعامل مع قواعد البيانات المتقدمة.


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

لإنشاء المشروع، نحتاج إلى:

  • لغة Python (يمكن تحميلها من الموقع الرسمي).

  • محرر أكواد مثل VS Code أو PyCharm.

  • ملف نصي بسيط لتخزين بيانات المستخدمين (سننشئه لاحقًا باسم users.txt).


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

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

صورة توضح شكل ملف نصي يحتوي على أسماء مستخدمين وكلمات مرور مفصولة بفاصلة


الكود جاهز للنسخ : 

username,password

مثال:

صورة توضح شكل ملف نصي يحتوي على أسماء مستخدمين وكلمات مرور مفصولة بفاصلة



الكود جاهز للنسخ : 

ali,12345

sara,abcd

هذا الملف يمثل قاعدة البيانات المصغرة الخاصة بنا.

الخطوة الثانية: كود التسجيل (Register)

عند دخول مستخدم جديد، يحتاج إلى تسجيل بياناته لأول مرة. سنكتب دالة (Function) تقوم بحفظ اسم المستخدم وكلمة المرور داخل الملف النصي.

صورة توضح كود بايثون لإنشاء دالة تسجيل مستخدم جديد وحفظ بياناته في ملف نصي






الكود جاهز للنسخ : 

def register():

    username = input("أدخل اسم المستخدم: ")

    password = input("أدخل كلمة المرور: ")


    # حفظ البيانات في ملف users.txt

    with open("users.txt", "a") as file:

        file.write(f"{username},{password}\n")


    print("تم التسجيل بنجاح!")


الخطوة الثالثة: كود تسجيل الدخول (Login)

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


صورة توضح كود بلغة بايثون لفحص اسم المستخدم وكلمة المرور من ملف نصي لتسجيل الدخول


















الكود جاهز للنسخ :
def login():
    username = input("أدخل اسم المستخدم: ")
    password = input("أدخل كلمة المرور: ")

    with open("users.txt", "r") as file:
        users = file.readlines()

        for user in users:
            stored_username, stored_password = user.strip().split(",")

            if stored_username == username and stored_password == password:
                print("تم تسجيل الدخول بنجاح!")
                return

    print("خطأ: اسم المستخدم أو كلمة المرور غير صحيحة.")

الخطوة الرابعة: القائمة الرئيسية (Main Menu)

لجمع خيارات التسجيل وتسجيل الدخول في مكان واحد، سنكتب حلقة رئيسية تعرض للمستخدم قائمة:

صورة توضح كود القائمة الرئيسية التي تحتوي على خيارات تسجيل حساب جديد وتسجيل الدخول والخروج











الكود جاهز للنسخ : 

while True:

    print("\n--- نظام تسجيل الدخول ---")

    print("1. تسجيل حساب جديد")

    print("2. تسجيل الدخول")

    print("3. خروج")


    choice = input("اختر رقم: ")


    if choice == "1":

        register()

    elif choice == "2":

        login()

    elif choice == "3":

        print("إلى اللقاء!")

        break

    else:

        print("خيار غير صحيح، حاول مرة أخرى.")

كيف يعمل المشروع عمليًا؟

  1. المستخدم يفتح البرنامج.

  2. تظهر له القائمة الرئيسية.

  3. إذا اختار التسجيل، يكتب اسم مستخدم جديد وكلمة مرور.

  4. يتم حفظ البيانات في الملف النصي.

  5. إذا اختار تسجيل الدخول، يكتب بياناته ويتم التحقق منها من الملف.

  6. إذا كانت صحيحة → يدخل، إذا كانت خاطئة → تظهر رسالة خطأ.


تطوير وتحسين المشروع

بعد الانتهاء من النسخة البسيطة، يمكننا تطوير المشروع كالتالي:

  1. إخفاء كلمة المرور أثناء الكتابة باستخدام مكتبة getpass.

  2. منع تكرار اسم المستخدم عند التسجيل.

  3. تشفير كلمة المرور (Hashing) بدلًا من تخزينها كنص عادي.

  4. إضافة واجهة رسومية باستخدام Tkinter أو PyQt.

  5. ربط المشروع بقاعدة بيانات مثل SQLite أو MySQL بدلًا من الملف النصي.


فوائد هذا المشروع للمبتدئين

  • التدريب على استخدام الملفات.

  • تعلم التحقق من المدخلات.

  • بناء أساس لفهم أنظمة تسجيل الدخول.

  • إمكانية تطوير المشروع لاحقًا ليصبح أكثر احترافية.


الخاتمة

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

يمكنك أن تعتبر هذا المشروع نقطة انطلاق لبناء مشاريع أكبر وأكثر تعقيدًا في المستقبل.

تعليقات