صفحة 2 من 3 الأولىالأولى 123 الأخيرةالأخيرة
النتائج 16 إلى 30 من 36

الموضوع: (سوالف مبرمجين) فكرة عسى أن تحوز على رضاكم بإذن الله تعالى

  1. #16
    Banned
    تاريخ التسجيل
    Aug 2005
    المشاركات
    72


    اقتباس المشاركة الأصلية كتبت بواسطة TheQ8
    : معرفة شبه تامه بلغة HTML
    فلذلك ننتظر الأن من احد الاشخاص مشكوراً بشرح لغة html

    حتى لو كان سطر لعلا وعسى ان تنجح هذه الفكره






  2. #17
    عضو فعال جدا
    تاريخ التسجيل
    Dec 2004
    المشاركات
    4,037


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





    __________________
    ....
    محمد حسام
    انترنت بلس

  3. #18
    Banned
    تاريخ التسجيل
    Aug 2005
    المشاركات
    72


    php:

    مقالة مقتبسه من الاخ مازن http://www.mazen.ws

    رسالة إلى من يواجه مصاعب في تعلم الـ PHP

    السلام عليكم و رحمة الله وبركاته ...
    طرأ هذا الموضوع على بالي عندما قرأت رسالة الأخ Saad Alsaif بخصوص تعلم اللغة ..

    الحقيقة أن أغلب الأشياء التي نريد إنجازها في مواقعنا سواء بلغة PHP أو أي لغة أخرى هي أعمال روتينية في العادة ، لا تخرج عن عدة أشياء منها :

    @ إدخال بيانات إلى قاعدة بيانات .

    @ استخراج البيانات التي تمت إضافتها من قاعدة البيانات .

    @ معالجة نموذج ( Form ) عن طريق إرساله محتوياته إلى البريد الإلكتروني ( مثل نموذج اتصل بنا ) .

    @ التعامل مع الملفات النصية (مثلاً لإنشاء عداد زوار) .




    أليس هذا صحيحاً ! ، حاول أن تفكر في الأشياء التي تريد أن تنجزها في موقعك بلغة الـ PHP لن تجدها تخرج عن الأربعة أشياء السابقة ( قد تكون أحياناً بحاجه إلى أشياء أخرى مثلاً الاتصال بسيرفر أو استخراج بيانات من موقع آخر لكن بشكل عام هذه أهم الأشياء المشتركة بين أغلب المواقع) إذاً في البداية على الأقل أنت بحاجه إلى تعلم هذه الأربع أشياء فقط و كيفية عملها في الـ PHP ثم بعد ذلك الباب مفتوح أمامك لتعلم الأشياء الأخرى في اللغة ، هذا الكلام سواء كنت تريد تعليم منهجي أو غير منهجي ، فعندما تبدأ بتعلم هذه الأشياء سوف تجد نفسك قد بدأت بتطوير برامج حقيقية و تجد ثمار ما تعلمته أمامك مباشرة بعكس ذلك عندما تتعلم بشكل منهجي متسلسل قد يصيبك بالملل و لن تصل إلى المرحلة التي تبدأ فيها بتطوير البرامج إلا بعد مدة طويلة تكون خلالها فقدت حماسك للتعلم .



    اذا اقتنعت أن عمل هذه الأشياء الأربعه هو ما تحتاج تعلمه لتبدأ ببناء موقعك بلغة PHP فتابع القراءة أو اترك الرسالة جانباً إن لم تقتنع ....



    بما أنك اقتنعت فسوف أخبرك بالخطوات العملية التي تحتاجها في البداية لبدء أي مشروع بالـ PHP ( كل خطوه سوف تشرح عملياً لا حقاً بإذن الله لكن هنا وصف لهذه الخطوات حتى تعلم أن الأمر بغاية البساطة ) :



    سوف تحتاج إلى تركيب web server على جهازك الشخصي و تجهيزه لمعالجه ملفات الـ PHP
    أمر آخر هو أن تقوم بتركيب سيرفر قاعدة البيانات MySQL، و لجعل العملية أسهل سوف تحتاج إلى تركيب واجهة تستطيع من خلالها التحكم بقاعدة البيانات .
    كلا الأمرين السابقين بغاية البساطة ، بل هما تقريباً بسهولة تركيب أي برنامج على الويندوز ، ( كما قلت سوف نشرحهما لا حقاً بإذن الله ) الخطوتين السابقتين تحتاج إليهما لتطوير أي برنامج يعتمد على الـ PHP ، لكن عندما تبدأ بتطوير برنامج معين يعتمد على قواعد البيانات سوف تقوم بالمرور بخطوات أخرى و هي :

    @ بناء هيكل قاعدة البيانات : معنى ذلك أن تحدد الطريقة التي سوف تخزن بها البيانات في قاعدة البيانات .

    @ تصميم النماذج (forms) التي سوف يتم الإدخال عن طريقها .

    @ كتابة الـ code الخاص بمعالجة هذه النماذج و إدخال محتوياتها إلى قاعدة البيانات .

    @ تصميم الصفحات التي توضع فيها البيانات المحفوظة في قاعدة البيانات و كتابة الـ code الخاص بإستخراج البيانات .


    ( أعتقد أن هذا الكلام سوف يغضب الإخوه المتخصصين في هندسة البرامج فقد تجاهلت مسألة تحليل النظام و تحديد المتطلبات و قفزت مباشرة إلى كتابة الـ code لكن ما نريده هو أن نصل إلى النتائج مباشرة بغض النظر عن الجوده في الوقت الحالي ) صدقني يجب أن تقتنع أن العملية بغاية البساطة ولا يغرك حجم الكتب الموجوده للغة الـ PHP و كبرها و كثرة عدد صفحاتها ، فهذه الكتب تشرح اللغة من كل النواحي في الوقت الذي تكون فيه أنت بحاجه إلى جزء واحد فقط وهو ( كيفية تطوير موقع بلغة PHP يعتمد على قواعد البيانات ) .






  4. #19

    بسم الله الرحمن الرحيم



    بسم الله الرحمن الرحيم

    SQL :

    SQL SELECT



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

    اولاً الصيغة العامة او الشكل العام للجملة SELECT هو كالتالي :
    كود PHP:
    SELECT column1,column2,...  FROM Table 


    لاحظ معي الآن عزيزي القارئ .. أولاً وضعنا كلمة SELECT و بعدها جاءت الحقول التي سنختارها وهي اختيارية فكلمة column1 هي اسم حقل من حقول الجدول الموجود لديك
    وأما Table فهو أسم الجدول المراد اختيار او جلب البيانات منه ولتوضيح الفكرة اكثر انظر الجدول التالي :



    FirstName
    LastName
    Email
    DOB
    Phone

    عبدالله
    المحمادي
    eid200@gawab.com
    4/4/1974 323 455-4545
    عماد
    اللحياني
    thelonely22@hotmail.com
    5/24/1978 416 323-3232

    وكان اسم الجدول Customer وهو للعملاء فإذا اردت ان اختر جميع البيانات مع جميع الحقول فسأكتب التالي:



    كود PHP:
    SELECT FirstName,LastName,Email,DOB,Phone  FROM Customer 


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

    جلب جميع البيانات من الجدول وأريد حقلي الأسم الأول والأسم الأخير فقط فسأكتب :


    كود PHP:
    SELECT FirstName,LastName FROM Customer 



    وتكون النتيجة كامل البيانات ولكن ليس كامل الحقول لأنني حددت الأسم الأول والأخير (ستكون النتيجة كالتالي) :


    FirstName
    LastName

    عبدالله
    المحمادي

    عماد
    اللحياني



    وأرجوا أن تكون الفكرة الأولى قد وصلت ....

    ولكن قد يتبادر إلى ذهننا ......... سؤال وهو : ماذا لوكان عدد الحقول في الجدول يبلغ 20 حقل مثلاً واريد اختيارها كلها فهل سأكتب جميع الحقول في جملة SELECT ؟
    سؤال جيد والجواب طبعاً لا . فإذا كنت تريد اختيار جميع مهما كان عددها فبامكنك استخدام علامة (*) النجمة وبذلك سيتم اختيار جميع الحقول ولو اردت اختيار جميع الحقول في جدول Customer فسأكتب شئ كالتالي :

    كود PHP:
    SELECT FROM Customer 



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

    النقطة الأخيرة في موضوعنا هذا هو جملة WHERE وأرجوا منك العودة إلى WHERE لفهمها جيداً ضمن الدروس المكتوبة .
    المهم للتذكرة فقط فهي جملة الشرط او الشروط فعند استخدامي لها مع جملة SELECT فكأني أقول (اختار جميع البيانات من الجدول الفلاني التي تطابق الشرط...) وهذه الثلاث نقاط هي الشرط .

    اما الصيغة العامة لها او الصورة او الشكل العام هو كالتالي :

    كود PHP:
    SELECT column1,column2,...  FROM Table  WHERE Condition 


    لاحظ الآن ان الجملة كما هي وبإمكان استخدام (*) بدل اسماء الحقول اذا كنت اريدها جميعها كما شرحنا في الأعلى ولكن ما تم زيادته هو جملة WHERE وهي شرط معين سيتم اختيار البيانات وفقه أو طبقه أي بمعنى أخر سيتم اختيار البيانات من الجدول الفلاني والتي تطابق الشرط Condition اي لن يتم اختيار جميع البيانات من الجدول . فقط سيتم جلب ما يوافق الشرط وهذا ممتاز عندما لا أحتاج لجلب الا البيانات التي تريدها فمثلاً لو لدي جدول به 1000 سجل او صف وأنا أريد سجل واحد فقط فهل سأجلبها جميعها ثم ابحث فيها واحد تلو الأخر .. اظن انك تقول الآن من المجنون الذي يريد فعل ذلك وماذا لوكان عدد السجلات او الصفوف اكبر من ذلك مثل البنوك والوزارات وغيرها .... لذلك يجب توضيح الفكرة بمثال .. فمثلاً لو أردت احضار صف البيانات من جدول Customer والذي يكون فيه الأسم الأول هو عبدالله فسأكتب جملة او شئ كهذا :


    كود PHP:
    SELECT FROM Customer  WHERE FirstName 'عبدالله' 


    لاحظ الآن لن يجلب لي بيانات عماد ولا اي بيانات اخرى في الجدول الا اذا كان الحقل FirstName فيها هو عبدالله فإذا كان الجدول يحتوي على 100 صف او سجل منها اربع تمثل عبدالله فسيحضر لي اربع صفوف وفي جدولنا هذا الذي عرضناه بالأعلى رأينا أنه يحتوي على صفين واحد به بيانات عبدالله والأخر به بيانات عماد لذلك بعد تنفيذ هذا الأستعلام ستكون النتيجة كالتالي :



    FirstName
    LastName
    Email
    DOB
    Phone

    عبدالله
    المحمادي
    eid200@gawab.com
    4/4/1974 323 455-4545

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





    __________________
    قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)

  5. #20


    بسم الله الرحمن الرحيم

    هذا موضوع عن htaccess وأحببت أن أقتبسه ...

    htaccess : مقتبس من موقع الفريق العربي للتكنولوجيا

    ما هو ملف htaccess. ؟


    هو عبارة عن ملف يتواجد عادة بين ملفات الموقع ويكون مخفيا بحيث لا يظهر من خلال برامج FTP وإنما فقط من خلال أداة التحكم بالملفات في لوحة تحكم الموقع ..



    ما هو عمل هذا الملف ؟




    نحتاج إلى ملف htaccess. للتحكم في الكثير من خصائص الموقع و الملفات ... وذلك من خلال أوامر يتم إدخالها في هذا الملف ... وبالتالي يقوم بقراءة هذه الأوامر وتنفيذها على ملفات الموقع ..



    ما الذي نستطيع فعله من خلال ملف ملف htaccess. ؟


    هذا الملف يحتوي على كثير من الأوامر ... ومنها :
    1- عمل صفحات الأخطاء , كالتي تراها عندما تدخل إلى صفحة خطأ في موقع ما .. custom error messages
    2- حماية مجلدات الموقع باسم مستخدم وكلمة مرور ..
    3- توجيه صفحة البداية للموقع أو لمجلد على الموقع .. كأن تكون مثلا .. main.html بدلا من index.html
    4- تعريف السرفر المستضيف للموقع بأوامر SSI التي تصممها لموقعك ...
    5- حماية الباندويث في الموقع من الاستهلاك الخارجي .. سواء في الملفات والصور ..
    6- توجيه صفحة قديمة في الموقع إلى صفحة جديدة بدلا منها ..
    7- إخفاء محتويات المجلد عن الأعضاء أو نوع معين من الملفات فقط في المجلد ..
    8- حجب الموقع عن الزوار من دولة معينة أو جعله لزوار دولة معينة أو حجبه عن IP محدد ..
    9- تعريف الخادم بلاحقات الملفات باستخدام Mime Types

    وهناك أيضا أوامر أخرى ... ولكن سنكتفي بشرح هذه الأوامر لكثرة استخدامها ..



    كيف أنشئ ملف htaccess. جديد ؟

    يتم إنشاء ملف htaccess. جديد من خلال أي محرر نصوص .. وليكن مثلا المفكرة notebad .. ومن ثم حفظ الملف بالاسم التالي كاملا :



    "htaccess."


    مع ملاحظة وجود علامتي التنصيص ..



    كيفية عمل صفحات الأخطاء .. custom error messages


    بداية لا بد من شرح الأخطاء المحتملة لدخول الزوار إلى صفحات الموقع وهي :
    400 - Bad Request .. وتعني طلب خاطئ للصفحة
    401 - Authorization Required ... وتعني انه غير مرخص للزائر بعرض الصفحة
    403 - Forbidden .. وتعني انه ممنوع للزائر من دخول الصفحة
    404 - File not found ... وتعني أن الصفحة التي قام الزائر بطلبها غير موجودة
    500 - Internal Server Error وتعني أن هناك خطأ في خادم الموقع
    503 - Service Unavailable ... وتعني أن الخدمة غير متوفرة
    هذه هي الأخطاء الشائعة وهناك المزيد غيرها ..
    ولعمل صفحة الخطأ نكتب في ملف htaccess. الكود التالي :




    كود PHP:
    ErrorDocument [error number] [path


    ولتفصيل هذا الأمر ..
    ErrorDocument .. وهي الدالة الخاصة بصفحة بتعيين صفحة الخطأ .
    error number ... رقم الخطأ الذي سيظهر للمتصفح ... كما هو مشروح في الأعلى
    path .. مسار الخاص بالصفحة التي ستظهر للزائر عندما يطلب صفحة خطأ .

    والأمر بالكامل يكون كالتالي :



    كود PHP:
    ErrorDocument 404 [url]http://www.arab-team.com/404.html[/url] 


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



    كود PHP:
    ErrorDocument 400 [url]http://www.arab-team.com/400.html[/url]
    ErrorDocument 401 [url]http://www.arab-team.com/401.html[/url]
    etc ... 



    حماية مجلدات وملفات الموقع ...



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

    في الواقع هناك الكثير من أنواع الحماية باستخدام لغات البرمجة كـ PHP أو جافا سكربت أو غيرها .. ولكن الأقوى هي الحماية بواسطة أوامر htaccess.
    كل ما عليك هو أن تنشئ ملف htaccess. جديد وتضع فيه الكود التالي ثم تضعه في المجلد الذي ترغب بحمايته :



    كود PHP:
    Username1:Password1 
    Username2
    :Password2
    Username3
    :Password3 

    طبعا هنا تستبدل Username1 باسم المستخدم و Password1 بكلمة المرور الخاصة به .. وإذا أردت مزيدا من الأمن لكلمة المرور فيمكن أن تشفرها بأحد أدوات تشفير DES المستخدمة في أنظمة يونيكس والمتوفرة بكثرة في مواقع النت .. وفي هذه الحالة طبعا ستضع مكان Password1 كلمة المرور المشفرة .. وعند عملية الدخول سيدخل المستخدم كلمة المرور قبل تشفيرها .. وستظهر في الملف بهذا الشكل تقريبا :



    كود PHP:
    kattan:vrAQKeuzMpslh 

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



    كود PHP:

    AuthUserFile 
    /usr/local/you/safedir/.htpasswd
    AuthGroupFile 
    /dev/null 
    AuthName 
    [أدخل اسم المستخدم و كلمة المرور]
    AuthType Basic
    <Limit GET POST>
    order allow,deny 
    allow from all 
    require valid-user
    </limit
    حيث أن /usr/local/you/safedir/.htpasswd هو مسار ملف htaccess. الذي وضعنا فيه أسماء المستخدمين المصرح لهم بالدخول وكلمات المرور الخاصة بهم ..

    ويمكن الدخول للمجلد المحمي مباشرة عن طريق وضع الرابط التالي في المتصفح :




    http://usernameassword@www.website.com/directory/




    فقط ضع اسم المستخدم وكلمة المرور وعنوان الموقع والمجلد المحمي ..

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


    كود PHP:
    <files "prog.exe|pass.php|file.zip">
    AuthUserFile [/path/to/file]
    AuthType Basic
    AuthName 
    [Text that prompts the user]
    require 
    valid-user 

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



    توجيه صفحة البداية للموقع أو لمجلد على الموقع


    عادة عندما نرفع ملف باسم index.html أو index.php إلى الموقع .. يكون هذا الملف هو الصفحة الرئيسية للموقع ..
    الآن هل سألت نفسك لماذا هذه الصفحة ؟؟
    للإجابة على سؤالك .. افتح ملف htaccess. الموجود في الموقع .. ستلاحظ فيه كود كالتالي :



    كود PHP:
    DirectoryIndex index.htm index.html index.php 



    الدالة DirectoryIndex مهمتها التعريف أن أسماء الصفحات التي تلي الدالة هي صفحات البداية للموقع ..
    كيف يقرأ ملف htaccess. هذه الدالة :
    يبدأ باسم أول صفحة وهي index.htm فإن وجدها على الموقع فسيعتبرها هي ملف الصفحة الرئيسية ..والا سينتقل للاسم الثاني index.html .. وهكذا ..
    الآن لنفرض أن صفحة البداية لموقعك اسمها مختلف .. مثلا .. user.htm فهنا ستضع هذا الاسم بعد الدالة DirectoryIndex مباشرا ... وهنا ستكون هذه الصفحة هي صفحة البداية فعلا ..
    فالدالة هي :



    كود PHP:
    DirectoryIndex [file


    ومكان file يكون اسم الصفحة المطلوبة ...





    __________________
    قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)

  6. #21


    تكملة ...

    htaccess :


    تعريف السرفر المستضيف للموقع بأوامر SSI التي تصممها لموقعك ...


    SSI هي اختصار لـ Server Side Includes
    وهو بروتوكول خاص بتضمين الكود لجميع الصفحات فإذا أردت مثلا وضع كود معين أو لنفرض هيدر لكل الصفحات فليس من الضروري وضعه في جميع صفحات الموقع وإنما من خلال SSI تضعه في صفحة واحدة ثم تضع شفرة SSI في رأس كل ملف ...
    في بعض الأحيان عندما تنشئ صفحة أو برنامج تحتوي على أوامر SSI وترفعها إلى موقعك تجد أن الملف لا يعمل .. والسبب يعود في ذلك إلى عدم تعريف هذا الملف للسرفر ..
    كل ما عليك فعله هو تعريف الملف الذي يحتوي على أوامر SSI للسرفر عن طريق ملف htaccess. وذلك بواسطة الكود التالي :


    كود PHP:
    AddType text/html [Extension 1] [Extension 2]
    AddHandler server-parsed [Extension 1] [Extension 2

    حيث أن [Extension 1] و [Extension 2] هي امتداد الملفات التي تريد للسرفر أن يتعرف عليها ليعطيها الصلاحية بتنفيذ أوامر الـ SSI بشكل اتوماتيكي ..

    مثال ذلك :


    كود PHP:
    AddType text/html .dhtml .html
    AddHandler server
    -parsed .dhtml .html 

    حيث الملفات التي تعطي أوامر للسرفر باستقبال أوامر الـ SSI هي الملفات التي تنتهي بالامتداد .. dhtml و html




    حماية الباندويث في الموقع من الاستهلاك الخارجي

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

    الحل أيضا هنا يكون باستخدام أوامر ملف htaccess.
    لحجب الصور عن الظهور في موقع غير موقعك استخدم الكود التالي :

    كود PHP:

    RewriteEngine on 
    RewriteCond 
    %{HTTP_REFERER} ^$ [OR] 
    RewriteCond %{HTTP_REFERER} !^http://site/.com/.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://www/.site/.com/.*$ [NC] 
    RewriteRule .*\.([jpg|gif|jpe?g]+)$ - [NC,F
    لاحظ أن هذا الكود يحجب كل وصلات الصور الخارجة من موقعك .. ويمنعها من الظهور إلا في موقعك سواء كان :

    http://site.com/
    أو
    http://www.site.com/

    فقط عدل الكود السابق وضع مكان site اسم موقعك ..
    والدالة الأخيرة في الكود RewriteRule هي لتحديد لاحقات الصور المراد منعها .. ويمكنك الزيادة عليها كما ترغب ..
    وأيضا إضافة لاحقات الملفات التي تريد منع تحميلها من موقعك كالملفات المضغوطة zip , rar .. أو اللاحقات التنفيذية .. exe ..
    وبذلك لن يتمكن أحد من وضع وصلة في موقعه لبرنامج عندك في الموقع .. وإذا فعل ذلك فلن يعمل معه الرابط .. وعلى الزائر التوجه إلى موقعك والتحميل منه مباشرة ...





    توجيه الصفحات القديمة في الموقع ...


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


    كود PHP:
    Redirect /olddirectory/oldfile.html http://yoursite.com/newdirectory/newfile.html 

    كل ما عليك هو تغير الوصلات في الكود بما يتوافق مع موقعك ...

    /olddirectory/oldfile.html تشير إلى الصفحة القديمة
    و newdirectory/newfile.html هي العنوان الجديد الذي سيستخدمه زوار الموقع ..




    إخفاء محتويات المجلد عن الأعضاء أو نوع معين من الملفات فقط في المجلد ..


    إذا كان لديك في الموقع مجلد وتريد إخفاء محتوياته عن الزوار فما هي الحلول المقترحة لذلك ؟؟
    لتوضيح الأمر أكثر ..
    لنفرض أن لديك مجلد في الموقع تضع فيه ملفات للتحميل بشكل مؤقت أو صور أو ما شابه ذلك .. ولكنك تريد منع الزوار من رؤية محتويات هذا المجلد .. فهناك عدة طرق لذلك منها إعطاء تراخيص 751 لهذا المجلد .. ولكن عن طريق ملف htaccess. تستطيع التحكم بذلك بشكل أكبر بكثير ..
    فأنت هنا تستطيع منع الزوار من مشاهدة كل محتويات المجلد .. وذلك بوضع الكود التالي في الملف :



    كود PHP:
    IndexIgnore 


    لاحظ أن ( * ) تعني جميع الملفات الضمنة داخل المجلد ..
    وقد تمنعهم فقط من عرض ملفات الصور وهنا تضع الكود التالي :
    IndexIgnore *.gif *.jpg
    ويمكنك إضافة ما تريد من لواحق ملفات الصور والملفات الأخرى كـ zip . rar ..




    حجب الموقع عن الزوار من دولة معينة أو جعله لزوار دولة معينة أو حجبه عن IP محدد ..


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

    ملف htaccess. يعينك كثيرا في هذا الأمر ... فإذا أردت حجب الموقع عن IP معين .. فقط ضع في ملف htaccess. الموجود في جذر موقعك الكود التالي :



    كود PHP:
    deny from 000.000.000.000 


    وأما إذا أردت أن تجعله متاحا لـ IP واحد فقط فهنا ستضع الكود المعاكس التالي :


    كود PHP:
    allow from 000.000.000.000 


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

    كود PHP:
    deny from 212.212.212.1
    deny from 212.212.212.2
    allow from 212.212.212.1
    allow from 212.212.212.2 
    وفي حال تركت الخانة الأخيرة من رقم الـ IP فارغة فأنت هنا تكون قد منعت نطاق كاملا ( دولة في الغالب ) من تصفح موقعك .. مثال :


    كود PHP:
    deny from 000.000.000
    وكذلك تفعل في حال أردت السماح فقط لنطاق معين في تصفح الموقع ..


    كود PHP:
    allow from 000.000.000

    وأما إذا أردت منع الجميع من تصفح الموقع .. فاستخدم الكود التالي :


    كود PHP:
    deny from all 


    تعريف الخادم بلاحقات الملفات باستخدام Mime Types


    في بعض الأحيان قد لا تعمل ملفات MP3 أو الفلاش أو PHP على الخادم .. والسبب في ذلك أن تعريف هذه الملفات غير موجود على الخادم .. فإذا كان الخادم لديك يدعم ملفات MP3 أو PHP ولكن لم تعمل عندك .. فهنا أنت بحاجة إلى تعريف الخادم بها بواسطة Mime Types ...
    فعند إضافتها يخبر الخادم المتصفح أن هذا الملف هو ملف MP3 أو ملف فلاش .. وبالتالي يكمل المتصفح المهمة ويقوم بقراءته بالشكل المناسب للملف ..
    بالنسبة لـ MIME فهي اختصار لـ Multipurpose Internet Mail Extensions
    وهو أحد البروتوكولات المتخصصة بنقل البيانات غير النصية ( كالصور وملفات الفيديو و ملفات الفلاش ) عبر الانترنت سواء كان بالمتصفح أو البريد الالكتروني ( وغالبا يكون للبريد الالكتروني ) ...
    ولتعريف ملف فلاش مثلا .. فقط اكتب الكود التالي في ملف htaccess.



    كود PHP:
    AddType application/x-shockwave-flash swf 


    بافتراض أن shockwave هو اسم الملف ..

    ولتعريف ملف midi استخدم الكود التالي :



    كود PHP:
    AddType audio/x-midi mid 


    ولتعريف ملفات ريل بلير استخدم الكود التالي :



    كود PHP:
    AddType audio/x-pn-realaudio .real 


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

    أخيرا .. هذه أغلب استخدامات ملف htaccess. وقد يكون له استخدامات أخرى غير شائعة كثيرا ..

    مراجع الموضوع :
    http://www.javascriptkit.com/howto/htaccess.shtml
    http://www.freewebmasterhelp.com/tutorials/htaccess

    تحياتي





    __________________
    قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)

  7. #22


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


    php :

    PHP-GTK


    الكثير منا يعلم المدى الذي وصلت إليه PHP في الوقت الحالي .. ومع ذلك لم يتم ذكر PHP-GTK بشكل من الأشكال او يتم الشرح عنها ... وأرجوا من الله العلي القدير ان اوفق في اعطاء مقدمة بسيطة عنها ؟



    ماهي phpgtk ؟



    بالنسبة لـ phpgtk فإنه عبارة عن مكتبة تمكنك من انشاء برامج تطبيقية بإختصار كأنك تعمل على فيجوال بيسك مثلاً وبرامج phpgtk تسمى Client Side أي من جهة العميل ولقد تم تطوير هذه المكتبة لجعل php لغة موسعة على ناحيتين وهي

    الأولى Server Side وهي السكربتات التي تعرفها والتي تكتبها مثل المنتدى الذي نكتب فيه الآن

    الثانية Client Side وهي برامج phpgtk والتي من خلالها يتم عمل برامج تطبيقية بعيدة عن السيرفر ولقد قمت بتجربتها وكتبت بهذه المكتبة ولاتحتاج لسيرفر معين لتنفيذه وأنما هي مكتبات تحمل تحت Command line ويأتي ملف معين يعمل معها كمترجم لها .

    أما بالنسبة للكتابة فأستخدم اي محرر تكتب به السكربتات فأنت لن تكتب شئ جديد وإنما ستكتب Php ولكن ستتعلم فقط شئ جديد وهي تحتوي على مكتبات منها gtk و gdk الرسومية .

    ومكتبات phpgtk هي عبارة عن مجموعة من class كل واحدة منها تقوم بعمل معين مثل GtkWindow وهذه الكلاس خاصة بالنافذة وانشائها وطريقة التعامل مع النافذة و GtkButton للأزرار ... وقس على ذلك .

    وهي تكتب كما تكتب كائن php من صنعك وبشكل سهل

    وبالنسبة للمحرر فإنه يوجد محرر بأسم Winglade وهو موجود في sourceforge.net وبشكل مجاني ويسهل عليك عمل الواجهات وبشكل رسومي

    أما بالنسبة لمعرفة الكائنات الموجودة ضمن هذه المكتبة وطريقة عمل الكائنات والدوال الخاصة بها فيمكنك الحصول على phpgtk Documintaion الخاصة بالمكتبة من موقعهم الخاص وأنا لدي هذا الـ manual وهو شامل لجميع ماتحتويه المكتبة من اشياء وبالأمثلة طبعاً وايضاً يجب عليك ان تقوم بتنزيل حزمة phpgtk
    والتي ستقوم بتنفيذ برامجك التي تصنعها ...

    وهذا مالدي الآن فإن اخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل

    أخوكم المحمادي





    __________________
    قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)

  8. #23
    Banned
    تاريخ التسجيل
    Aug 2005
    المشاركات
    72


    php:
    مقتبس من ارسن

    الدرس الثاني: اول برنامج PHP

    اهداف الدرس:

    تنصيب لغة PHP وسيرفر Apache و قواعد بيانات MySQL

    @ أختيار محرر مناسب للكتابه

    @ كتابة اول برنامج PHP

    @ وسوم الكتابه في PHP

    @ الطباعه للمتصفح في PHP

    @ دمج PHP مع HTML

    @ التعليقات


    ------------------------------------------------------------------------

    تنصيب لغة PHP و الخادم الشخصي Apache و قاعدة البيانات MySQL:

    هل تذكر عندما قلنا ان لغة PHP تحتاج الى مترجم لكي يقوم بمعرفة ما يقوم به الكود في الدرس الاول ؟ في هذه النقطه سوف تعرف كيف يتم تنصيب مترجم PHP , ولكن لا يستطيع مترجم PHP العمل بمفرده , لانه يحتاج الى خادم شخصي يكون به المترجم ليظهر المعلومات الى المتصفح , ولهذا سوف نقوم بتركيب Apache وهو يعتبر من افضل الخوادم الشخصيه الموجوده , لكي تقوم بإنهاء عناء تركيب هذه البرامج قامت مجموعه Appserv Network بعمل برنامج يقوم بتنصيب PHP و Apache و MySQL معاً , وحجم الملف صغير جدا مقارنة بتحميل كل برنامج على حده, لكن شرح تركيب هذا البرنامج هنا خارج عن نطاق موضوعنا ولذلك سوف تجد في مكتبة البرامج وصلة تحميل برنامج appserv و ايضا سوف تجد شرح خارجي لطريقة تركيب برنامج Appserv .

    أنتبه يجب وضع الروابط لشرح تركيب الاباتشئ وتحميل السكربت

    ----------------------------------------------

    اختيار محرر مناسب لكتابة اكواد PHP :

    يوجد كثير من البرامج لكتابة اكواد PHP ولكن لا اتحيز الى واحد منهم بشكل معين , انت كمبتدئ تحتاج الى ان تكتب الكود البرمجي بإستخدام احد هذه البرامج لانها تساعد على تتبع الاخطاء وترتيب الكود البرمجي وتلوينه , وهذا يساعد كثيرا في البرمجه , لمشاهدة هذه البرامج اذهب الى صفحة برامج تحرير لغة PHP .

    أنتبه يجب وضع الروابط للبرنامج




    كتابة اول برنامج PHP :

    هل انت مستعد ؟ هل قمت بتنصيب برنامج AppServ واخترت محرر كتابة الاكواد المناسب من مكتبة البرامج ؟ اذن لنقم بكتابة اول برنامج PHP . قم بفتح محرر الاكواد وابدأ بإنشاء صفحه جديد وقم بكتابة الكود التالي :



    قم بحفظ البرنامج وقم بتسميته الى first.php في ملف www واذا كنت اخترت المكان الافتراضي لتنصيب AppServ سوف يكون مكان وضع الملف هنا C:/AppServ/www بعد ذلك اذهب الى متصفحك واكتب التالي http://localhost/first.php وسوف تشاهد التالي :



    بارك لك , لقد قمت بكتابة اول برنامج PHP واصبح اسمك مبتدئ PHP او مبرمج مبتدئ للغة PHP


    وسوم الكتابه في لغة PHP :

    هناك كثير من وسوم الكتابه في لغة PHP , ونعني بوسوم الكتابه المكان الذي يكون يبدأ معه كتابة الكود والمكان الذي ينتهي معه , انظر الى الصوره الاولى في الاعلى وسوف تجد ان وسم بداية الكتابه هو
    <?php
    ونهاية الكتابه هو
    ?>
    هل عرفت الان معنى وسوم الكتابه ؟
    تلميح : (( وسوم = tags ))



    فهمت النقطه الى الان ؟ اذن لنقم بتطبيق هذه الوسوم على برنامجنا الاول , لنرى كيف تعمل , ولكي تعرف ماهي افضل طريقه احببت في كتابة الوسوم


    النمط الافتراضي :




    النمط القصير :




    نمط Script :




    هل قمت بإختيار النمط المريح لك ؟ اذن انتهينا من الجزء الثاني من درس اليوم , هل انت مستعد و مندفع للمتابعه ؟ اذن سوف نبدأ النقطه ( الخامسه لهذا اليوم )



    الطباعه للمتصفح في PHP:

    اعتقد انك قمت بالتركيز في الشرح بالاعلى وقلت لنفسك ( انا اعرف كيف اطبع للمتصفح ) , نعم انت تعرف , نفسها كلمة print() هي للطباعة في المتصفح , ولكن ما هي print() , هذه الداله داخليه في PHP اي موجوده في المترجم وتستطيع استخدامها , نقوم في معظم الحالات بطباعة مخرجات الى المتصفح , قد تتسائل ماهو معنى كلمة داله ؟ اليس ذلك صحيح ؟ اذن داله تعني ( امر يقوم بفعل شي معرف مسبقا بداخله ) لم تعرف ما اعني ؟ لا تتعجل سوف تقوم بفهم هذا كله لاحقا وفي دروس متقدمه , ودائما المدخلات الى الدوال تكون بين الاقواس كما تشاهد في اول برنامج لك , في حالتنا بالاعلى قمنا بطباعة نص اليس ذلك صحيحا ؟ اذن يجب ان نضع النص بين علامتي التنصيص " نص معين " والا سوف يكون هناك خطأ , اذا ماذا لو اردنا ان نقوم بطباعة رقم ؟ الجواب هو ان نقوم بطباعته بدون علامتي التنصيص. ولا تنسى ان تقوم بإنهاء كل سطر في كودك البرمجي بعلامة ; ولا سوف يكون هناك خطأ , لمذا نحتاج هذه العلامه ؟ لكي نقول للمترجم ان هنا ينتهي طلب هذا الامر وقم بتنفيذه.



    دمج PHP مع HTML:

    الكود البرمجي الذي قمنا بكتابته في الاعلى , عباره عن PHP فقط ويسمونه باللغه الانقليزيه (( pure php )) == (( مجرد PHP )) ولكن لو اردنا ان نجعل معه بعض من اكواد ال HTML ؟ الجواب بسيط جدا , وهو ان نقوم بكتابة كود ال HTML قبل وبعد وسوم البدايه والنهايه في PHP , اليك مثال يوضح لك الصوره , لنقم بكتابة البرنامج بالاعلى بطريقه اخرى:



    لن اقوم بشرح كود ال HTML هنا , لاني اعتقد ان عندك خبره او معلومات سابقه عن HTML , اما اذا لم تعرف فالامر بسيط انظر الى مخرجات هذا الكود , ومخرجات الكود في المثال الاول (( بدون دمج مع لغة PHP )) وسوف تلاحظ الفرق. وتذكر انه يمكن اضافة العدد الذي تريد من هذه الاكواد , لا يوجد هناك عدد محدد , فقط اكمل الدرس هذا اليوم وقم بعمل صفحه خاصه بك بهذه الطريقه (( الدمج )) وسوف تشعر انك مبرمج حقيقي. هل انت مصر على معرفة معنى الكود ؟ اذن سوف اشرح لك بطريقه بسيطه , في هذا الكود لاحظ ان الجمله ظهرت بخط عريض وذلك لاستخدامنا لكود HTML الذي تلاحظه في المثال <b> و </b> ووضعنا بين هذا الكود سطر لغة PHP ليطبع الجمله , والناتج الجمله بخط عريض. هل تريد ان تعرف كيف يكتب هذا الكود بلغة HTML , اذن لاحظ التالي :



    اعتقد انه الان قد وضحت لك الصوره بالكامل



    التعليــقات:

    عندما تكتب كود برمجي كبير , او اسطر برمجيه كثيره سوف تكون لك سهله في البدايه وسوف تعرف عمل هذا الكود , لكن اترك العمل على الكود لمدة سنه , وارجع له مره ثانيه لتقوم ببعض التعديلات وبعض الاصلاحات ؟ هل تعتقد انك سوف تتذكر جميع الاكواد ؟ , اذن هذه هي التعليقات , تعبير او شرح بسيط عن الاكواد التي قمت بعملها وبمعنى اخر (( هي اسطر كتابيه تقوم بشرح اكواد معنيه ولا يقوم المترجم بترجمتها )) لنأخذ بعض انواع التعليقات وبعض الامثله على التعليقات وكيف يتم استعمالها :

    @ سطر واحد :

    // this is a comment

    او

    # this is a comment


    @ عدة اسطر :

    /*
    this a comment
    i am learning php
    i love it
    */

    لا داعي للقلق اذا لم تفهم هذه النقطه , مع الدرس القادمه سوف تعرف معنى استخدام التعليقات وفوائد استخدامها بشكل مفصل




    --------------------------------------------------------------------------------



    اسئـــله على الــدرس:

    ماهو افضل وسم في رأيك يمكنك استخدامه في كتابة اكوادك ؟

    لماذا تحتاج ان تقوم بإستخدام التعليقات ؟

    قم بكتابة برنامج PHP يقوم بطباعة اسمك الاول بخط عريض في سطر واسم والدك في سطر اخر بخط مائل واسم عائلتك بخط عادي في سطر ثالث. (( يمكنك ان تجرب كتابة الارقام وتليون الاكواد )) تلميح : استخدم برنامج Front Page للمساعده




    الــدرس القــــادم:

    في الدرس القادم سوف نقوم بشرح المتغيرات وانواعها بالتفصيل , لكي تعرف قوى لغة PHP ولتبدأ مسيرتك كمبرمج PHP محترف






  9. #24
    عضو نشيط
    تاريخ التسجيل
    Jan 2005
    المشاركات
    285


    PHP :

    حلقة التكرار foreach

    http://www.swalif.net/softs/showthread.php?t=129679

    كتبت في الرد ما قبل الاخير شرح مفصل للحلقة بالامثلة







    __________________
    "من علمني حرفا صرت له عبدا"
    |+|PHP|+|loowy|+|PHP|+|
    "عامل الناس بما تحب أن يعاملوك به"
    لـــــــــــــــــــــــــــــؤي

  10. #25


    ياشباب أين المشاركات يالله شدو الحيل ...

    ^
    up





    __________________
    قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)

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


    ايش رأيكم لو تكون الشغلة مرتبة, بحيث يكون هناك موضوع فقط لتقنية معينة, وندردش فيها
    يعني مثلا: سوالف مبرمجين-SQL أو سوالف مبرمجين-AJAX
    وهكذا

    لان الموضوع صار كوكتيل
    صدعت وانا اقرأه !!
    لكن لو نحدد شي معين ونتكلم فيه, بيكون الكلام مركّز أكثر والفائدة ان شاء الله أكبر

    والله الموفق






  12. #27
    عضو فعال
    تاريخ التسجيل
    Jun 2001
    المشاركات
    1,410


    الاخ عبد الله عيد وكافة الاخوة الذين شاركوا معه

    بصراحة موضوع يعتبر هو سيد المواضيع في كافة المنتديات العربية

    وفكره اكثر من رائعة لا يسعنا الا ان نتقدم لكم بجزيل الشكر والعرفان

    وانا كذلك مع وجهة نطر الاخ العملاق الذي قبل ردي هذا

    سيروا الى الامام بارك الله في سعيكم






  13. #28
    عضو نشيط
    تاريخ التسجيل
    Jan 2005
    المشاركات
    285


    أنا فكرت نسوي قسم خاص بالفكرة

    لكن بعيدة شوي

    أنا مع العملاق....





    __________________
    "من علمني حرفا صرت له عبدا"
    |+|PHP|+|loowy|+|PHP|+|
    "عامل الناس بما تحب أن يعاملوك به"
    لـــــــــــــــــــــــــــــؤي

  14. #29


    بسم الله الرحمن الرحيم

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

    -----------------------------------------------------------------------

    أستاذي العزيز Al7addi شكراً على حسن الإطراء وأتمنى لك ولبقية الأعضاء التوفيق ولاتحرمونا من مشاركاتكم معنا ولو بالشئ القليل ...

    -----------------------------------------------------------------------

    أستاذي العزيز 3bdullah فكرة القسم اللي اقترحتها رائعة ولكن العين بصيرة واليد قصيرة على قولهم وهي كما ذكرت بعيدة شوي وأنا أقترحت هذا الإقتراح في موضوع (وجهة نظر يا أعضاء سوالف وكفاية لحد كذا) ...

    -----------------------------------------------------------------------

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

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


    ومن لديه الآن موضوع أو معلومة فليتحفنا بها جعله الله في ميزان حسناته بإذن الله تعالى


    وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل

    تحياتي
    أخوك عبدالله عيد





    __________________
    قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)

  15. #30

    Callback Functions



    بسم الله الرحمن الرحيم

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

    تحية طيبة اخواني الأعزاء

    php :

    الموضوع : Callback Functions

    أثناء تعلمي للغة سي كانت هناك احدى الطرق الفعالة وهي ماتسمى بـ callback
    أو الإستدعاء الخلفي (كترجمة حرفية فقط) المهم

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

    ماهو الإستدعاء الخلفي او callback وماهي فوائده (سؤال جيد)

    أولاً سأعطي مثال أوضح فيه دالة عادية بدون اي اضافات

    وهي كالتالي

    افرض اني لدي دالة تأخذ بارمترين x,y وتطبع قيمهم فستكون الدالة كالتالي :

    كود PHP:
    function point($x,$y)
    {
     print(
    $x.",".$y);


    والآن ماتراه ليس الا دالة عادية فقط لها بارمتران هما x,y وتطبعهما فقط والكل يعرف ان هذا هو عمل الدوال فالدوال تأخذ بارمترات وتنفذ عليها عمليات معينة .

    الإستدعاء الخلفي

    نظرية الإستدعاء الخلفي أو callback هي دالة عادية تأخذ دالة اخرى كبارمتر لها فلو عدنا لمثالنا الأول لأوضح طريقة الإستدعاء الخلفي فإن دالة point التي انشأنها ستكون متعددة الأوجه أي تنفذ عمليات مختلفة وليس عملية واحدة وانظر الى هذا المثال


    كود PHP:
    function point($x,$y,$callback)
    {
      
    $callback($x,$y);

    الأن طبقنا عملية الإستدعاء الخلفي كما ترى فالذي يحدث هنا أن أعدنا كتابة الدالة point بحيث تأخذ ثلاثة بارمترات الأول والثاني هما القيم x,y والثالث هو متغير عادي أيضاً ولكن سيمثل دالة تأخذ بارمترين .

    ملاحظة كما ترى داخل الدالة point أننا وضعنا callback تأخذ بارمترين لذا فإن قيمة المتغير callback يجب أن تكون أي دالة ولكن لابد أن تأخذ الدالة التي ستمثل قيمة المتغير $callback بارمترين فقط .
    المهم الآن أن الدالة point أصبحت دالة متعددة الوظائف أي أننا لانعرف ماهو عملها حتى نمرر الدالة التي ستقوم بعملية معينة على x,y
    والآن سنصنع دالتين تأخذ بارمترين واحدة تطبع والثانية تضر القيمتين وتطبعهما لنا


    كود PHP:
    function print_point($z,$t)
    {
     print(
    $z);
     print(
    "<BR>");
     print(
    $t);
    }

    function 
    mul($r,$m)
    {
     
    $total = ($r $m);
     print(
    $total)


    والآن لدينا دالة عادية تسمى print_point للطباعة والثانية mul لإجراء عملية الضرب على اي قيمتين ثم تطبع الناتج

    والآن سأنفذ الدالة point كدالة طباعة وستكون على النحو التالي


    كود PHP:
    point(40,70,"print_point"); 


    وهنا الأن تتم عملية الإستدعاء الخلفي فبما أن الدالة point ستنفذ الدالة الممررة لها فإن عملية الدالة point هنا هي الطباعة

    والآن المثال التالي


    كود PHP:
    point(77,50,"mul"); 
    والآن اختلفت عملية الدالة point ففي الأول كانت تطبع والأن فإنها ستضرب القيمتين 77 و 50 وتطبع لنا الناتج .

    وماتلاحظه الآن هو أن الدالة point غير مستقرة اي ليس لها وظيفة محددة ولكن ستكون وظيفتها حسب الدالة الممررة اليها وارجوا ان تكون المعلومة قد وصلت .

    ولكن قد يقول سائل مافائدة كل هذا فأنا يمكنني أن استدعي mul مباشرة واستدعيprint_point مباشرة فلماذا كل هذا التعب
    فأقول له أن الإستدعاء الخلفي له العديد من الفوائد و على سبيل المثال وهذا من احدى فوائد هذه الطريقة :

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


    كود PHP:
    function my_fetch($qry,$callback)
    {
      
      
    $q mysql_query($qry);

      
    $n mysql_num_rows($q);

      for(
    $i ;$i $n ;$i++)
      { 
         
    $result mysql_fetch_array($q);
         
    $callback($result);
      }


    والأن ستكون دالة callback الممررة إلى الدالة my_fetch دالة ذات بارمتر واحد وكما ترى في المثال فإننا قمنا بتمرير نتيجة الصف الأول إلى الدالة $callback ثم الصف الذي يليها.

    والدالة my_fetch ستختصر لنا الكثير من الكود والآن مابقي علي إلا أن احدد الإستعلام والدالة التي سأمررها.

    وسأفرض أن لدي جدول مستخدمين بإسم USER وفيه name و pass كأسم مستخدم وكلمة مرور

    فسأقوم الآن بعمل دالة تتعامل مع الصف وليس اجراء عملية fetch وغيرها فإن الدالة my_fetch ستتكفل بذلك والآن انظر الى الدالة التي سأسميها fetch_user
    كود PHP:
    function fetch_user($res)
    {
      print(
    $res["name"]);
      print(
    "<BR>");
      print(
    $res["pass"]);

    وستكون الدالة fetch_user مختصة بإخراج بيانات المستخدمين على الصفحة ويمكنني الآن عمل دالة اخراج مثل fetch_user لأي جدول وسيتم تمريرها الى الدالة الذكية my_fetch والتي تتغير وظيفتها حسب الدالة الممرة لها والآن اريد ان اخرج المحتويات على الشاشة (محتويات المستخدمين)


    كود PHP:
    my_fetch("SELECT * FROM USER",fetch_user); 
    والآن هذا السطر سيخرج لي بيانات جميع المستخدمين وسينسقها حسب التنسيق الموجود في الدالة fetch_user فأنظر مالذي اختصرناه من الشفرة فدالة my_fetch
    دالة واحدة تنفذ ملايييييييييييييييييييييييييييييييييين العمليات.



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

    وأسف إن حصل مني تقصير فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله سبحانه وتعالى

    أخوكم
    عبدالله عيد





    __________________
    قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)





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

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

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