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

الموضوع: دالة خفيفة ظريفة .. وتختصر المسافات :)

  1. #1
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2003
    المشاركات
    305

    دالة خفيفة ظريفة .. وتختصر المسافات :)



    السلام عليكم ورحمة الله وبركاته ..

    بما أننا في في عالم الOpen Source , فيجب ألا نكون Open Code فقط .. بل Open Mind ..
    لا تكن أنانياً فالعلم ما جعل لكي نختزنه داخل عقولنا ويموت بموتنا .. فلو نظرنا بعين بصيرة لوجدنا أنه لو تبادل وتناقش الناس الافكار مع بعضهم لخرج الطرفين بالفائدة ..
    لكن عندنا لو سوا واحد شي بسييط يعني سطر ولا سطرين برمجة وما كتب عليه جميع الحقوق محفوظة وجميع أنواع القسم والحلفان عشان لا يشيل المستخدم اسمه .. ما يرتاح .. يعني لا يكفي أننا أمة مستهلكة كمان بخيلة !! .. انا لا أقصد من هذي النقطة أني أقلك لا تحط حقوقك ولا كأني احرض على مسح الحقوق لا والله .. بل أقصد أننا نحب البروز مفردين .. (عموماً اذا لم تهضم هذه النقطة أو لم تدخل لك بمزاج أنساها ) ..

    نقطة أخيرة .. [ اذا لم تكن غايتك من تعلم العلم نفع الأمة والمساهمة في نهضتها .. فأرجوك راجع حساباتك ]
    وأنا عارف أني مقصر كثيييير .. لكن .. هل من معين !!

    ========================================
    وأخيراً راح أدخل في الموضوع ..
    هذي الدالة جاءت فكرتها كي تختصر الوقت وبعض الأجراءات الروتينية في برنامجك

    ممكن توضح أكثر ؟؟
    ابشر ..

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

    قبل التعامل مع الدالة كنت استخدم الطريقة هذي:

    كود PHP:
    <?php
     
    if ( empty($var) ) echo 'خطأ لايمكن أن يكون المتغير هذا فارغاً';

    else{
    echo 
    "مرحباً بك";
    //...
    }

    ?>
    بعد استخدام الدالة :

    كود PHP:
    <?php
    $ERROR_MSG
    ='';

    if ( !
    Validation($var'NOT_Empty''خطأ لايمكن أن يكون المتغير هذا فارغاً'$ERROR_MSG) ){/* اذا كنت تريد القيام بعض العمليات */ }

    echo 
    $ERROR_MSG;
    ?>
    هذا مثال بسيط وخفيف ولكن لا يوضح أي ميزة لهذي الدالة فقط كيفية استخدامها .. ميزة هذي الدالة الاختصار
    دعونا نفهم الدالة ووسائطها ..
    الشكل العام للدالة
    كود PHP:
    bool Validation($variable$function$message, &$ERROR_MSG
    اذاً فهي تعيد قيمة منطقية (صح أو خطأ) أو (True | False)
    والوسائط التي تسخدمها
    + $variable : المتغير الذي تريد التحقق من قيمته .
    + $function : الدالة التي تريد استخدامها لكي تتحقق من المتغير .. هناك قيمتين يمكنك أدخلها وهي =
    # [ NOT_Empty ] : لكي تتحقق من أن المتغير له قيمة (كما في المثال السابق) .
    # [ ... ] : اسم أي دالة خاصة تستخدمها للتحقق من المتغير (وسيأتي توضيح ذلك).
    + $message : الرسالة التي تريد عرضها اذا فشلت الدالة في التحقق أي أعادت قيمة False.
    + $ERROR_MSG : المتغير الذي سيحمل رسالة الخطأ ويجب تعريفه مسبقاً .

    راح أوضح الوسيط الأخير $ERROR_MSG .. والفرق بينه وبين $message ..
    القيمة المعادة من الدالة قيمة منطقية .. أي أنها لا تفرض عليك طباعة الرسالة فوراً فهذا قد يؤثر على الاسلوب الذي تتبعه في برنامجك .. البعض يستخدم القوالب واي أمر طباعة يشوه الصفحة أي أن الرسالة راح تظهر في أعلى الصفحة بدون أي تنسيق ..
    لذا فضلت أن أجعل متغير لنص رسالة الخطأ ومتغير يحمل هذه الرسالة ويمكن أستخدامه في أي مكان من البرنامج ..

    ومع الامثلة توضح الامور :

    مثال2 : التحقق من أكثر من متغير وأنهم ليسوا فارغين .
    كود PHP:
    <?php
    $ERROR_MSG
    ='';

    if ( !
    Validation(array($_POST['name'], $_POST['pass'], $_POST['email']), 'NOT_Empty''لم تدخل كافة البيانات'$ERROR_MSG) ){}

    //دالة تطبع رسالة الخطأ بتسيق معين وتأخذ متغير الخطأ كوسيط
    Print_Error($ERROR_MSG);

    ?>
    اذاً لو لدينا نموذج لإدخال بعض البيانات .. ولم يدخل الزائر أحد البيانات أو جميعها .. فسوف تظهر له رسالة الخطأ في التنسيق الذي قمت به في الدالة Print_Error
    ما قمنا به هو وضع المتغيرات التي نريد التحقق منها في مصفوفة واحدة في الوسيط الأول



    مثال3 : ماذا لو أردت أن تظهر مع كل متغير رسالة خطأ خاصة
    يعني اذا لم يدخل اسمه راح تظهر له رسالة خطأ كذا
    واذا لم يدخل كلمة المرور راح تظهر له رسالة خطأ كذا كذا .. وغيره
    فإليك التوضيح :
    كود PHP:
    <?php
    $ERROR_MSG
    ='';

    if ( !
    Validation(array('لم تدخل اسمك'=>$_POST['name'], 'لم تدخل كلمة المرور'=>$_POST['pass'], 'لم تدخل بريدك'=>$_POST['email']), 'NOT_Empty'''$ERROR_MSG) ){}

    //دالة تطبع رسالة الخطأ بتسيق معين وتأخذ متغير الخطأ كوسيط
    Print_Error($ERROR_MSG);

    ?>
    الاضافة التي قمنا بها هو وضع مفتاح key لعنصر المصفوفة يحمل رسالة الخطأ الخاص التي نريد عرضها مع وضع الوسيط الثالث فارغاً !!


    مثال 4 : وهو مختلف عن طريقة التحقق السابقة .. وسوف نستخدم قيمة غير 'NOT_Empty' في الوسيط الثاني
    أي أننا سوف نستخدم طريقة الاستدعاء الخلفي callback .. والتي قام الاستاذ عبدالله عيد جزاه الله خيراً بشرحها بالتفصيل هنا
    كود PHP:
    <?php
    $ERROR_MSG
    ='';

    //دالة لتحقق من صحة البريد
    function Check_Email($mail)
    {
        if ( 
    eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z]+(\.[a-zA-Z]{1,4})*$"$mail) ) return TRUE;
        else return 
    FALSE;
    }

    if ( !
    Validation($_POST['email'], 'Check_Email''الرجاء التأكد من صحة البريد'$ERROR_MSG) ){}

    //دالة تطبع رسالة الخطأ بتسيق معين وتأخذ متغير الخطأ كوسيط
    Print_Error($ERROR_MSG);

    ?>
    ما هو التغيير في هذا المثال ؟؟
    هو أننا استخدمنا الطريقة الاستدعاء الخلفي لدالة معرفة مسبقاً للتحقق من قيمة متغير ما
    سوف نضع المتغير الذي نريد التحقق منه في الوسيط الاول
    واسم الدالة مجرداً من الوسائط
    والباقي كما في الامثلة السابقة

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


    مثال 5 : وهذا مثال أخير وشامل بعض الشئ لتوضيح الدالة
    كود PHP:
    <?php
    $ERROR_MSG
    ='';

    //دالة لتحقق من صحة البريد
    function Check_Email($mail)
    {
        if ( 
    eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z]+(\.[a-zA-Z]{1,4})*$"$mail) ) return TRUE;
        else return 
    FALSE;
    }
    //دالة للتحقق من تماثل كلمتي المرور المدخلة
    function Check_Passwords_Equals($pw1$pw2)
    {
        if (
    $pw1 === $pw2) return TRUE;
        else return 
    FALSE;
    }

    if ( !
    Validation($_POST['name'], 'NOT_Empty''لم تدخل اسمك'$ERROR_MSG) ){}
    else if ( !
    Validation(array($_POST['pw1'], $_POST['pw2']), 'Check_Passwords_Equals''الرجاء التحقق من تماثل كلمتي المرور'$ERROR_MSG) ){}
    else if ( !
    Validation($_POST['email'], 'Check_Email''الرجاء التأكد من صحة البريد'$ERROR_MSG) ){}

    else{
    //في حالة النجاح من كل عمليات التحقق سيتم تنفيذ الامور التالي
    //.....
    //......
    }

    //دالة تطبع رسالة الخطأ بتسيق معين وتأخذ متغير الخطأ كوسيط
    Print_Error($ERROR_MSG);

    ?>


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


    أعذروني لو بدا مني أي شئ يزعل ..
    تقبلوا تحياتي
    اخوكم في الله .. نواف





    __________________
    # مشاريع :
    - الفوائد .. خلاصة العلم والمعرفة
    - غواصة .. اجمع اصدقاءك وابحر بالغواصة

    # مدونتي nawaf.me
    العملاق غير متواجد حالياً


  2. #2
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2003
    المشاركات
    305


    ااااااااااااااخ .. اناشد إدارة سوالف بالتدخل لحل مشكلة ظهور كود الPHP ..

    عموماً الملف المرفق .. فيه الشرح منسق في ملف وورد وملف الدالة التي تم شرحها ..
    وشكراً





    الملفات المرفقة الملفات المرفقة
    __________________
    # مشاريع :
    - الفوائد .. خلاصة العلم والمعرفة
    - غواصة .. اجمع اصدقاءك وابحر بالغواصة

    # مدونتي nawaf.me
    العملاق غير متواجد حالياً

  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2002
    المشاركات
    2,289


    ما شاء الله تبارك الله


    جزاك الله الف خير الشرح الجميل والداله الجميله بعملها .... ساراجعها واجربها واعود لك





    المهمة9 غير متواجد حالياً

  4. #4


    مبدع

    سلمت اناملك





    __________________
    سبحان الله وبحمده سبحان الله العظيم

    ThE jOy Of HaCkEiNg WiTh UsA sItE
    CoDe HaCkEr غير متواجد حالياً

  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2004
    المشاركات
    361


    بارك الله فيك





    __________________
    أستغفر الله :: أستغفر الله :: أستغفر الله ::
    لا إله إلا أنت سبحانك أستغفرك وأتوب إليك إنى كنت من الظالمين

    phparabia @ msn.com
    PHP-ARABIA.com غير متواجد حالياً

  6. #6
    عضو نشيط
    تاريخ التسجيل
    Apr 2004
    المشاركات
    296


    بارك الله فيك
    وجعله الله في ميزان حسناتك





    __________________
    ===========================
    ====================
    ==========
    فروم مراسله
    http://light4arab.arabform.com
    ==========
    ====================
    ===========================
    light4arab غير متواجد حالياً

  7. #7
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2004
    المشاركات
    2,307


    رد مقتبس من light4arab
    بارك الله فيك
    وجعله الله في ميزان حسناتك






    __________________
    بي اتش بي العرب : php-ar.com
    دروس PHP خاص : phpfaq.php-ar.com

    new site : www.naifphp.net/web
    Mr.php-ar غير متواجد حالياً

  8. #8
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2003
    المشاركات
    2,047


    شكرا جزيلا لك و جزاك الله خير على كل حرف نفعت به اخوانك





    __________________
    -{Only God Can Judge Me}-
    القانون فوق الجميع و الجميع يموت بالجوع
    Dr-dre67 غير متواجد حالياً

  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2003
    المشاركات
    305


    جزاكم الله خير يا أخوان على ردودكم ودعواتكم الطيبة ..
    والله يوفقك الجميع ..





    __________________
    # مشاريع :
    - الفوائد .. خلاصة العلم والمعرفة
    - غواصة .. اجمع اصدقاءك وابحر بالغواصة

    # مدونتي nawaf.me
    العملاق غير متواجد حالياً





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

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

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