النتائج 1 إلى 4 من 4

الموضوع: درس عمل برنامج بسيط والتخزين فى ملفات تكست txt

  1. #1
    عضو جديد
    تاريخ التسجيل
    Jun 2008
    المشاركات
    25

    درس عمل برنامج بسيط والتخزين فى ملفات تكست txt



    السلام عليكم ورحمة الله وبركاته هذا الدرس هو طريقة عمل برنامج مستخدمين بلغة php وتخزين البيانات فى ملفات txt طريقة عمل برنامج مستخدمين عن طريق تخزين بيناتهم داخل ملفات تيكست text
    فكرة هذا الدرس قد لا تصلح لعمل برنامج كبير مثل منتدى او مجلة او غيرة ولكن الهدف هو تسليط الضوء على أجزاء مهمة قد يغفل عنها المتعلم و حتى المحترف ... المطلبات: يجب تتعرف على اساسيات ال php . فى هذا الدرس سنتعرف على التالى:
    1. كيفية التعامل مع ملفات النصية text
    2. كيفية تخزين بيانات كل مستخدم
    3. كيفية إعطاء تصريح (444) للملفات
    4. كيفية الاستعلام عن بيانات المستخدم المخزنة فى الملف النصى
    5. عمل إحصائيات الاعضاء

    الفكرة العامة: هو أنشاء ملف نصى text بإسم كل مستخدم يقوم بالإشتراك وتشفير كلمة المرور التابعة له وتخزينها داخل الملف . محتوى البرنامج: - ملف index.php - مجلد data
    صفحة index.php مقسمة الى 4 صفحات بإستخدام الدالة switch بإستخدام المتغير $page كالتالى:
    كود PHP:
     switch($_GET['page']) { case'register': break; case'check_reg': break; case'login':  break; default; } 
    بالنسبة لمجلد data وهو المجلد الذى سيتم تخزين الملفات النصيه بيه التطبيق: 1- صفحة التسجيل: index.php?page=register
    الكود:
    كود HTML:
                                                                                                                                                                                    التسجيل                                                                                       
                                                                                                                                                                    إسم المستخدم                                                                                                                                                  كلمة المرور                                                                                                                                                  إعادة كلمة المرور
    ومن هنا سيتم تسجيل الاعضاء من خلال هذا الإسكربت حيث سيتم ارسال البيانات الى صفحة index.php?page=check_reg وهى إسم المستخدم وكلمة المرور =========================================== 2- صفحة تخزين البيانات: index.php?page=check_reg
    كود PHP:
     if($_POST['password'] && $_POST['username'])         {             if($_POST['password'] != $_POST['password2'])             {                 echo 'كلمتى المرور غير متطابقين 
     [ << رجوع ]'
    ;                 exit();             }              if($_POST['username'] && !ereg("^[a-zA-Z0-9_/-]+$"$_POST['username']))             {                 echo 'يجب ان يكون إسم المستخدم بالحروف الانجليزية وبدون مسافات 
     [ << رجوع ]'
    ;                 exit();             }              if(file_exists("data/".$_POST['username'].".txt"))             {                echo 'المستخدم '.$_POST['username'].' موجود بالفعل 
     [ << رجوع ]'
    ;                 exit();             }              $create = @fopen("data/".$_POST['username'].".txt"w) or die('خطأ اثناء إنشاء الملف '.$_POST['username'].'.txt');             fputs($createmd5($_POST['password']));             fclose($create);              @chmod("data/".$_POST['username'].".txt"0444);              echo 'تم إنشاء الحساب '.$_POST['username'].
     يمكنك الآن[ تسجيل الدخول ]'
    ;         }         else         {             echo 'يجب تكملة الخانات الفارغة 
     [ << رجوع ]'
    ;         } 
    شرح الكود:
    كود PHP:
     if($_POST['password'] && $_POST['username']) 
    وهنا التأكد من ان المستخدم قام بكتابة البيانات كلها أم لا .... وان كان لا سيتم اظهار الرسالة يجب تكملة الخانات الفارغة كما بالكود:
    كود PHP:
     }         else         {             echo 'يجب تكملة الخانات الفارغة 
     [ << رجوع ]'
    ;         } 
    ============
    كود PHP:
     if($_POST['password'] != $_POST['password2'])             {                 echo 'كلمتى المرور غير متطابقين 
     [ << رجوع ]'
    ;                 exit();             } 
    هنا نقوم بفحص كلمتى المرور والتأكد من انهما متطابقان , ان كان لا سيتم اظهار الرسالة: كلمتى المرور غير متطابقين ============
    كود PHP:
     if($_POST['username'] && !ereg("^[a-zA-Z0-9_/-]+$"$_POST['username']))             {                 echo 'يجب ان يكون إسم المستخدم بالحروف الانجليزية وبدون مسافات 
     [ << رجوع ]'
    ;                 exit();             } 
    وهنا يتم فحص اسم المستخدم والتأكد من انه تم كتابة الاسك بالحروف الانجليزية من خلال الدالة ereg , وان كان لا يتم اظهار الرسالة يجب ان يكون إسم المستخدم بالحروف الانجليزية وبدون مسافات =============
    كود PHP:
     if(file_exists("data/".$_POST['username'].".txt"))             {                echo 'المستخدم '.$_POST['username'].' موجود بالفعل 
     [ << رجوع ]'
    ;                 exit();             } 
    التأكد من ان إسم المستخدم موجود بالفعل ام لا من خلال التاكد من وجود ملف المستخدم فى مجلد data ==========
    كود PHP:
     $create = @fopen("data/".$_POST['username'].".txt"w) or die('خطأ اثناء إنشاء الملف '.$_POST['username'].'.txt');             fputs($createmd5($_POST['password']));             fclose($create); 
    ان لم يكن هناك اخطاء فسيقوم البى اتش بى بتكملة الكود حتى الوصول لهذه الخطوة وهى مرحة انشاء الملف للمستخدم, حيث يتم عمل الملف ثم كتابة كلمة المرور بالملف مع تشفيرها بالدالة md5 ===========
    كود PHP:
     @chmod("data/".$_POST['username'].".txt"0444); 
    وهنا يتم وضع صلحية القراءة والكتابة للملف الى 444 ==========
    كود PHP:
     echo 'تم إنشاء الحساب '.$_POST['username'].
     يمكنك الآن[ تسجيل الدخول ]'

    وهنا يتم كتابة الرسالة للمستخدم بانه تم انشاء الحساب .... =========================================== 3- صفحة الدخول: index.php
    كود HTML:
                                                                                                                                                                                    يتوجب عليك تسجيل الدخول                                                                                       
                                                                                                                                                                    إسم المستخدم                                                                                                                                                  كلمة المرور                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          إشترك الآن
    وهنا كود فورم تسجيل الدخول وهو مكون من اسم المستخدم وكلمة المرور ورابط اشترك الان للتسجيل بالاسكربت ============= 4- صفحة التاكد من بيانات التسجيل: index.php?page=login
    كود PHP:
     if($_POST['username'] && $_POST['password'])        {             if(!file_exists("data/".$_POST['username'].".txt"))             {                echo 'إسم المستخدم غير موجود
     [ << رجوع ]'
    ;                exit();             }             $read = @fopen("data/".$_POST['username'].".txt"r) or die('خطأ اثناء قراءة الملف '.$_POST['username'].'.txt');;             while(!feof($read))             {                 $data .= fgets($read1024);             }              if($data != md5($_POST['password']))             {                echo 'خطأ فى كلمة المرور
     [ << رجوع ]'
    ;                exit();             }              $_SESSION['user'] = $_POST['username'];             header("location: index.php");        }        else        {           echo 'يجب تكملة الخانات الفارغة 
     [ << رجوع ]'
    ;        } 
    الشرح:
    كود PHP:
     if($_POST['username'] && $_POST['password']) 
    التأكد من ان جميع البيانات تم كتابتها وان لم يتم كتابة البيانات كاملة يتم اظهار الرسالة: يجب تكملة الخانات الفارغة
    كود PHP:
     }        else        {           echo 'يجب تكملة الخانات الفارغة 
     [ << رجوع ]'
    ;        } 
    ==========
    كود PHP:
     if(!file_exists("data/".$_POST['username'].".txt"))             {                echo 'إسم المستخدم غير موجود
     [ << رجوع ]'
    ;                exit();             } 
    التاكد من ان اسم المستخدم موجود واحضار البيانات وان لم يتم العثور على الملف يتم اظهار ان المستخد غير مسجل من قبل: إسم المستخدم غير موجود ===========
    كود PHP:
     $read = @fopen("data/".$_POST['username'].".txt"r) or die('خطأ اثناء قراءة الملف '.$_POST['username'].'.txt');;             while(!feof($read))             {                 $data .= fgets($read1024);             } 
    فتح ملف التيكست الخاص بالمستخدم لجلب كلمة المرور ===========
    كود PHP:
     if($data != md5($_POST['password']))             {                echo 'خطأ فى كلمة المرور
     [ << رجوع ]'
    ;                exit();             } 
    بعد ان تم جلب كلمة المرور يتم تشفير كلمة المرور المرسلة (التى قام المستخدم بكتابتها ) ثم التاكد من انها مساوية لكلمة المرور التى بالملف ام لا , ان كانت غير مساوية يتم اظهار رسالة: خطأ فى كلمة المرور ============
    كود PHP:
     $_SESSION['user'] = $_POST['username'];             ?>                                                                        مرحباً بك يا , لتسجيل الخروج إنقر هنا 
    وهنا رابط تسجيل الخروج حيث عند نقر المستخدم رابط تسجيل الخروج سيتم ارساله الى هذه الصفحة =============
    كود PHP:
     ?>                        مرحباً بك يا , لتسجيل الخروج إنقر هنا                                                                                               إحصائيات الأعضاء                                             
                          عدد الأعضاء          عضو 
    الشرح:
    كود PHP:
     $openfolder opendir("data/"); 
    فتح المجلد data لجلب ملفات الاعضاء
    كود PHP:
     $count 0
    وهذا المتغير سوف يتم وضع عدد الاعضاء به
    كود PHP:
     while(($filename readdir($openfolder)) !== false
    وهنا قراءة الملفات التى بداخل المجلد data وتخزين اسم الملف بالمتغير $filename
    كود PHP:
     $ext_ar explode("."$filename); 
    وهنا جلب امتداد الملف بحيث كسر اسم الملف من خلل النقطة "." وتخريجها كمصفوفة
    كود PHP:
     if(is_file("data/".$filename) && $ext_ar[count($ext_ar) - 1] == 'txt'
    وهنا التأكد من أن المحدد فى $filename نوعه ملف وليس مجلد من خلال is_file("data/".$filename) وهنا $ext_ar[count($ext_ar) - 1] == 'txt' يتم التأكد من ان نوع الملف txt من بحيث جلب اخر قيمة بالمصفوفة مثال: لو كان اسم الملف ahmed.txt يتم تقسمها فى المصفوفة من خلال الدالة explode واخراجها كالتالى:
    كود PHP:
     $ext_ar[0] = "ahmed"$ext_ar[1] = "txt"
    وبالتالى لكى نحضر امتداد الملف نستعمل $ext_ar[1] مع العلم هنا ان عدد قيم المصفوفة 2 ...(قيمتين)
    1- ahmed 2- txt
    وبالتالى نقوم بالتعويض عن (1) بـ count($ext_ar) - 1 بحيث عدد القيم بالمصفوفة - 1
    كود PHP:
     $count++; 
    اضافة 1 على كل ملف ($count++ معناها ==> $count = $count + 1
    كود:
     $count++; ===> $count = $count + 1;
    ==========
    كود HTML:
                                                                                  إحصائيات الأعضاء                                             
                          عدد الأعضاء          عضو
    وهنا كود الإحصائيات ============ واخيرا حماية المجلد data بال .htaccess قم بإنشاء ملف بإسم .htaccess داخل مجلد data وضع به الكود التالى لمنع اى شخص بمحاولة فتح المجلد من خلال الموقع
    كود:
      order deny,allow deny from all
    ================================ اتمنى ان ينال التطبيق اعجابكم بإذن الله اترككم فى رعاية الله






    __________________
    أحمد حسن القادرى
    مبرمج PHP & Javascript

    www.expbuilder.com
    www.arabjquery.com

    السيرة الذاتية:
    http://www.expbuilder.com/elkadreycv/

    الإتصال بى:
    elkadrey@gmail.com


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    232


    شكرا اخي على الشرح الوافي ولكن حسب رايي فقاعدة البيانات اسهل





    __________________
    www.morobile.com

  3. #3
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2008
    المشاركات
    324


    احيانا انت بحاجة لعمل تخزين في ملف

    شكرا علي الموضوع الجميل.






  4. #4
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2003
    المشاركات
    695


    موضوع جميل ومشكور عليه لكن عندي اقتراح
    1- أن لا يقبل اقل من 4 احرف للاسم و6 أحرف للكود.
    2- أن لا يقبل الاسماء العربية لانها سوف تنتج مشكلة.

    فما رأيك؟





    __________________
    لا خير في كاتـــــــــ العلم ــــــــم.





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض