صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 16

الموضوع: بمناسبة استرجاع اليوزر .. دوال وكلاسات غير شكل

  1. #1
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,247

    بمناسبة استرجاع اليوزر .. دوال وكلاسات غير شكل



    السلام عليكم ورحمة الله .. بداية أشكر الأخ أبو مشعل والأخ Mr.Muslim على مساعدتي في استرجاع اليوزر الخاص بي ,, وتوبة من كلمات السر البسيطة

    وتفضلوا مجموعة من الدوال الرائعة بحق ,, ستفيدك حتما عند عملك لأي برنامج PHP .. جمعتها من سكربتات ومن مواقع وأحببت إفادتكم بها .. ودعواتكم

    أولا : كلاس فلترة النصوص
    - الوظيفة : كلاس رائع لفحص المدخلات النصية سواء كانت استعلامات للقاعدة أو نصوص أرسلها الزائر من خلال حقول معينة .. ويمكنك اختيار الوظيفة التي تحتاجها من الكلاس حسب عملك ( تعطيل الهتمل - تصفية الاستعلامات - استبدال الوسوم الغير أمنة - تجاهل المسافات الفارغة ) .

    - الكلاس : احفظ التالي في ملف وقم بتسميته filter.php

    كود PHP:
    <?
    ass Filter 
    {

            var 
    $text;

            function 
    Filter($text '') {
                    
    $this->text $text;
            }



            function 
    setText($text$filter '') {
                    
    $this->text $text;
                    if (
    $filter) {
                            
    $this->filterText($filter);
                    }
            }


            function 
    getOutput() {
                    return 
    $this->text;
            }


            function 
    getQuoted() {
                    return 
    "'$this->text'";
            }


            function 
    filterText($filter) {
                    
    $filter explode(','$filter);
                    foreach (
    $filter as $rule) {
                            switch (
    $rule) {
                                    
    //فلتر لتجاهل المسافات الفارغة
                                    
    case 'trim':
                                            
    $this->trim();
                                            break;
                                   
    //فلتر لتلافي أخطاء الاستعلام لقواعد البيانات
                                   //ولتعطيل الهتمل
                                    
    case 'db':
                                            
    $this->escapeHTML();
                                            
    $this->escapeSQL();
                                            break;
                                    
    //فلتر إضافة علامات تهريب لعلامات الاقتباس المفردة
                                    
    case 'htmlOK':
                                            
    $this->escapeSQL();
                                            break;

                                   
    //فلتر للنصوص والمشاركات الكبيرة لتعطيل الهتمل فيه
                                   //واعتماد الأسطر المتعددة وأيضاإزالة الوسوم الغير آمنة
                                    
    case 'comment':
                                            
    $this->processMultiline();
                                            break;
                            }
                    }
            }



            function 
    trim() {
                    
    $this->text trim($this->text);
            }


            function 
    escapeHTML() {
                    
    $this->text htmlspecialchars($this->text);
            }


            function 
    normalizeNewLines() {
                    
    $this->text preg_replace("/\r|\r\n|\n/""\n"$this->text);
            }


            function 
    newlines() {
                    
    $this->text '<p>' preg_replace("|\n\n|"'</p><p>'$this->text) . '</p>';
                    
    $this->text str_replace('</p><p></p>''</p>'$this->text);
                    
    $this->text nl2br($this->text);
            }


            function 
    processLinks() {
                    
    $this->text preg_replace("|\[(http://[-_./a-zA-Z0-9!&%#?,'=:~]+)\::(.+)]|",
                            
    "<a href=\"$1\">$2</a>"$this->text);
            }


            function 
    escapeSQL() {
                    
    $this->text addslashes($this->text);
            }


            function 
    processEmphasis() {
                    
    $this->text preg_replace("/\*\*(.+?)\*\*/""<strong>$1</strong>"$this->text);
                    
    $this->text preg_replace("/\*(.+?)\*/""<em>$1</em>"$this->text);
            }



            function 
    processMultiline() {
                    
    $this->escapeHTML();
                    
    $this->processEmphasis();
                    
    $this->normalizeNewLines();
                    
    $this->newlines();
                    
    $this->processLinks();
                    
    $this->escapeSQL();
            }


    }
    ?>
    - الشرح : كيف تستفيد من الكلاس .. اتبع التالي
    كود PHP:
    <?
    include("filter.php");
    //عمل إنكلود للملف الذي يحتوي على الكلاس اللي فوق
    //نقوم أولا بتعريف كائن تابع للكلاس
    $new_filter=new Filter();

    //هذا النص المراد فلترته .. ويمكن استقباله من فورم أو بتمرير قيمة مباشرة له
    //كما في هذا المثال .. لاحظ هنا أن النص عبارة عن استعلام لقاعدة البيانات
    $msg="select * from table where name='m'jed' and subject='hi i'am learning php'";

    //الخطوة هذي قمنا بتمرير النص .. ثم حددنا نوع الفلتر المطلوب استخدامه
    //وهو db
    //أي أن الفلتر سيقوم بتصفية النص من علامات الاقتباس المفردة التي تسبب الأخطاء في الاستعلامات
    $new_filter->setText($msg$filter 'db') ;

    //الان نريد طباعة النص بعد فلترته فقمت بحفظه في متغير
    $T$new_filter->getoutput();


    //ومن ثم طباعته
    echo $T;

    //لاحظ بأن الكلاس قام بعمل علامات سلاش قبل أي علامة اقتباس مفردة للنص الذي مررناه
    //ليتلافا الأخطاء المحتملة .. سيكون النص لديك بعد التنفيذ كالتالي

    /*

    select * from table where name=\'m\'jed\' and subject=\'hi i\'am learning php\'
    */
    ?>






    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه


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


    الثاني : كلاس الأقسام الرئيسية والفرعية :
    أبسط وأفضل كلاس مر علي لعمل الأقسام الشجرية ... وجربه بنفسك واحكم
    وأجمل مافيه أنه برمجة عربية للأخ : شادي علي

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





    الملفات المرفقة الملفات المرفقة
    • نوع الملف: zip CAT.zip‏ (39.0 كيلوبايت, 810 مشاهدات)
    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه

  3. #3
    عضو جديد
    تاريخ التسجيل
    Jun 2005
    المشاركات
    4


    ماشاء الله تبارك الله مبدع والله

    الف مبروك على أسترجاع العضوية أخوي Dr.Server






  4. #4
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,247


    الثالث : كلاس صناعة نماذج المراسلة :
    - وظيفته : تقوم بعمل فورم مراسلة وتضع عدد الحقول الذي تريد وأيضا تختار شكل الحقول .. هل هي حقول نص .. أم اختيار من متعدد أو أي شكل آخر .. وميزته بأنك تحدد له الحقول الإلزامية ليقوم بعمل تنبيه بالجافا سكربت عندما تكون فارغة .

    - الكلاس : لم يقبله المنتدى لأنه طويل .. بس سأرفعه في المرفقات

    - طريقة الاستخدام : تعمل ملف جديد مثلا send.php ثم تقوم بعمل انكلود لملف الكلاس السابق .. كالتالي :

    كود PHP:
    //إدراج ملف الجافا سكربت المسؤول عن التنبيه بالحقول الفارغة
    <script type="text/javascript" src="js/common.js"></script>
    <?php
    //قمنا باستدعاء ملف الكلاس
            
    include("easyform.php");

    //أنشأنا كائن جديد
            
    $form = new Form($_SERVER['REQUEST_URI']);

    //الان نريد مثلا أن نضع خانة لكتابة الاسم فنستخدم
    //الصيغة التالية ونمرر لها النص الذي سيظهر بجانب الحقل .. وأيضا اسم الحقل بالشكل التالي
    //$form->addText('اسمك :', 'Name');

            
    $form->addText('fullname''Name');
     
    //أيضا خانة لكتابة الايميل
           
    $form->addText('email''Email''');
    //هنا  تعريف خانة إلزامية ويجب أن يكون البريد حقيقي ولايقبل أي نص ليس على شكل بريد
            
    $form->addRule('email''email',
                    
    'Either fill in your <strong>email</strong> or leave the field <strong>blank</strong>.');
    //أيضا خانة لكتابة موضوع الرسالة
            
    $form->addText('subject''Subject');

    //حقل كبير (تكست اريا) لكتابة الرسالة .. ولاحظ الصياغة اختلفت عن السابق وأصبحت
    //$form->addTextarea
            
    $form->addTextarea('comment''Comments');

    //إضافة زر إرسال
            
    $form->addSubmit('Send comment');

    //هنا جعلنا حقل الموضوع إلزامي 
            
    $form->addRule('subject''required''Please enter a <strong>subject</strong> line.');

    //إلزامي .. حقل الرسالة
            
    $form->addRule('comment''required''Please enter your <strong>comments</strong>.');

            if (
    $form->valid()) {
                    
    $processed $form->getProcessed();

                    echo 
    handle_feedback($processed);
            } else {
    ?>
            <h1>Sample Contact Form</h1>
    <?php
                    $form
    ->display();
            }


    //تجميع عناصر الفورم في متغير واحد ليتم إرساله
    function handle_feedback(&$post) {
            
    $message "Message from contact form\n";
            
    $message .= "IP: $_SERVER[REMOTE_ADDR]\n";
            
    $message .= "User agent: $_SERVER[HTTP_USER_AGENT]\n";
            
    $message .= "URI: $_SERVER[REQUEST_URI]\n";
            
    $message .= "Name: $post[fullname]\n";
            
    $message .= "E-mail: $post[email]\n";

            
    $message .= "Comments:\n $post[comment]\n";

            print 
    "<pre>$message</pre>";
    }
    ?>
    ملف الكلاس و الجافا سكربت في المرفقات





    الملفات المرفقة الملفات المرفقة
    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه

  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    595

    رائع



    رائع اخي الكريم
    موفق دائما





    __________________
    لاتنس ذكر الله..

  6. #6
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,247


    الموضوع مستمر .. ولازال هناك الكثير .. وسأقوم بتحديث الموضوع بالجديد القادم .. دمتم





    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه

  7. #7
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,123


    مبروك استرجاع العضوية .





    __________________
    htaccess بكل بساطة

    الشفرة الموحدة "يونِكود"

    (إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي

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


    تعديل في الكلاس الاول

    في البناء فقط اضافة تعريف الكلاس class وليس ass طبعا هذا خطأ مطبعي واضح

    كود PHP:
    <?
    class Filter {

            var 
    $text;

            function 
    Filter($text '') {
                    
    $this->text $text;
            }



            function 
    setText($text$filter '') {
                    
    $this->text $text;
                    if (
    $filter) {
                            
    $this->filterText($filter);
                    }
            }


            function 
    getOutput() {
                    return 
    $this->text;
            }


            function 
    getQuoted() {
                    return 
    "'$this->text'";
            }


            function 
    filterText($filter) {
                    
    $filter explode(','$filter);
                    foreach (
    $filter as $rule) {
                            switch (
    $rule) {
                                    
    //فلتر لتجاهل المسافات الفارغة
                                    
    case 'trim':
                                            
    $this->trim();
                                            break;
                                   
    //فلتر لتلافي أخطاء الاستعلام لقواعد البيانات
                                   //ولتعطيل الهتمل
                                    
    case 'db':
                                            
    $this->escapeHTML();
                                            
    $this->escapeSQL();
                                            break;
                                    
    //فلتر إضافة علامات تهريب لعلامات الاقتباس المفردة
                                    
    case 'htmlOK':
                                            
    $this->escapeSQL();
                                            break;

                                   
    //فلتر للنصوص والمشاركات الكبيرة لتعطيل الهتمل فيه
                                   //واعتماد الأسطر المتعددة وأيضاإزالة الوسوم الغير آمنة
                                    
    case 'comment':
                                            
    $this->processMultiline();
                                            break;
                            }
                    }
            }



            function 
    trim() {
                    
    $this->text trim($this->text);
            }


            function 
    escapeHTML() {
                    
    $this->text htmlspecialchars($this->text);
            }


            function 
    normalizeNewLines() {
                    
    $this->text preg_replace("/\r|\r\n|\n/""\n"$this->text);
            }


            function 
    newlines() {
                    
    $this->text '<p>' preg_replace("|\n\n|"'</p><p>'$this->text) . '</p>';
                    
    $this->text str_replace('</p><p></p>''</p>'$this->text);
                    
    $this->text nl2br($this->text);
            }


            function 
    processLinks() {
                    
    $this->text preg_replace("|\[(http://[-_./a-zA-Z0-9!&%#?,'=:~]+)\::(.+)]|",
                            
    "<a href=\"$1\">$2</a>"$this->text);
            }


            function 
    escapeSQL() {
                    
    $this->text addslashes($this->text);
            }


            function 
    processEmphasis() {
                    
    $this->text preg_replace("/\*\*(.+?)\*\*/""<strong>$1</strong>"$this->text);
                    
    $this->text preg_replace("/\*(.+?)\*/""<em>$1</em>"$this->text);
            }



            function 
    processMultiline() {
                    
    $this->escapeHTML();
                    
    $this->processEmphasis();
                    
    $this->normalizeNewLines();
                    
    $this->newlines();
                    
    $this->processLinks();
                    
    $this->escapeSQL();
            }


    }
    ?>






    __________________
    htaccess بكل بساطة

    الشفرة الموحدة "يونِكود"

    (إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي

  9. #9
    عضو فعال
    تاريخ التسجيل
    Nov 2005
    المشاركات
    1,283


    السلام عليكم,,

    مبارك لك استرجاع اليوزر وجرب ولد كلمة سر معقدة من هنا http://www.byphp.net/projects/devpas...sGenerator.php

    وتعليقى على السريع على الكلاس الخاص بالفلترة فيما يخص قواعد البيانات وبالتحديد الدالة escapeSQL()
    راح اقتبس جزء من كلاسى واضعه هنا
    كود PHP:
        function escapeSQL() 
        {
            if(@
    version_compare(@phpversion(), "4.3.0") == "-1"
            {
                
    $this->text = @mysql_escape_string($this->text);
            }
            else
            {
                
    $this->text = @mysql_real_escape_string($this->text);
            }
        } 
    هذه أفضل طريقة لفلترة المدخلات الى قواعد البيانات





    __________________
    سبحان الله وبحمده ... سبحان الله العظيم.
    إقرأ .. لتتعلم
    [AJAX] سكربت إتصل بنا (ديف كونتاكت) النسخة 2.3.2
    للتواصل ..

  10. #10


    بارك الله فيك

    مبروك استعادة اليوزر





    __________________
    لا اله الا الله محمد رسول الله

    لا تقل لا أعلم بل اقرأ و تعلم

  11. #11
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,247


    أشكركم جميعا على المرور .. والله يبارك فيكم جميعا

    الأخ Developer شكرا على الدالة .. وراحت لمخزن الدوال

    يتبع قريبا إن شاء الله .. بكلاس الباور تمبلت المطور .. سأطرح الكلاس وسأشرح استخدامه باذن الله





    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه

  12. #12
    Banned
    تاريخ التسجيل
    Feb 2005
    المشاركات
    153


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






  13. #13
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,123


    هناك كلاس للرسم البياني اذا أمكن وضعه ..





    __________________
    htaccess بكل بساطة

    الشفرة الموحدة "يونِكود"

    (إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي

  14. #14
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,247


    اقتباس المشاركة الأصلية كتبت بواسطة jadweb.com
    هناك كلاس للرسم البياني اذا أمكن وضعه ..
    مرحبا عزيزي .. كلاسات رسم الشارت فيه منها البسيط اللي تعطيك شكل موحد للرسم البياني .. يعني دائرة مثلا وتقوم بتقسيمها بالألوان حسب البيانات المعطاة .. وسهل الكلاس جدا .. مرفق بالموضوع أحدها مع أمثلته


    أيضا فيه كلاسات ذات إمكانية أفضل بحيث تنوع لك نوع الرسم البياني .. أعمدة أو دوائر .. وعندك الكلاس هذا سهل ويعطيك تنوع في نوع الرسوم ..
    مثاله مع الشرح :
    http://naku.dohcrew.com/libchart/pages/samplecode/
    وللتحميل مباشرة
    http://naku.dohcrew.com/libchart/fil...art-1.1.tar.gz


    وهناك كلاسات متقدمة تعطيك مزايا أفضل .. عندك هذا :
    http://www.lutanho.net/diagram/index.html
    مشروح في موقعه مع وصلة التحميل


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





    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه

  15. #15
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,247


    عفوا .. نسيت الكلاس والأمثلة :eek2:





    الملفات المرفقة الملفات المرفقة
    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه





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

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

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