php advance 101 دورة

197
م الرحمن الرح بسم دورةPHP بعد المستوى المبتدئ لمام تقد: دس حكمت أبو حم أن[email protected] ع لجمة ل دورة مجان, ةلتجارغراض امها لجوز استخدا .... دس حكمت أبو حم أن[email protected]

Upload: anees-abu-hmaid

Post on 13-Jun-2015

1.037 views

Category:

Education


4 download

DESCRIPTION

دورة PHP للمستوى المتقدم 101 سنتطرق بهذه الدورة الى مفاهيم تنسيق الشفيرة البرمجية وكيفية التحكم بالأخطاء بشقيها الداخلية والخارجية .. بالإضافة الى التعرف على هجمات ال XSS والثغرات الأمنية ..وتجنبها ... يمكنك الإطلاع على الدورة كاملة مع ملفات الأمثلة من هنا 2nees.com (دورة مجانية)

TRANSCRIPT

Page 1: PHP Advance 101 دورة

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

لما بعد المستوى المبتدئ PHPدورة أنس حكمت أبو حمد : تقدم

[email protected]

....ال جوز استخدامها لألغراض التجارة , دورة مجانة للجمع

أنس حكمت أبو حمد

[email protected]

Page 2: PHP Advance 101 دورة

المقدمة

..الحمد هلل رب العالمن, الحمد هلل الذي بحمده تتم النعم

وه . بفضل من هللا تعالى وتوفقه أبدأ الوم دورة جددة

ف هذه الدورة ,لما بعد المستوى المبتدئ PHPدورة

سنقوم بالتركز على المرحلة الثانة من , إن شاء هللا

كثر منا , PHPمراحل التطور لمبرمجن ال

ولألسف لم نعلم كف ومتى وأن مكن البدء والتعلم

الكتساب مهارات جددة غر األمور االساسة الت

...وف كثر من األحان , نتعلمها بكثرة

أنس حكمت أبو حمد

[email protected]

Page 3: PHP Advance 101 دورة

المقدمة

تنتج الت باألمور أو , االساسة باألمور نكتف الطرق أول ف كمبرمجن أو كطالب

والت , الكثر الضعف نقاط من فها المشارع هذه أغلب ولكن... نرغب الت المشارع

لست الغالب ف أنه أي , المنتجات هذه تحدث ف كبرة صعوبة مع , تجاهلها مكن ال

...آمنة وال مرنة وال توافقة

المستوى الى االنتقال من قربن لنكون قلال نرتق أن معا سنحاول , تعالى هللا بإذن وهنا

... PHP ال لغة ف للبرمجة المحترف

تصل لم اذا أنك ذلك العن وهذا ,OOP ال مفاهم من االنتهاء بعد من بدأ المستوى هذا

توقف الكثر أن هو ذلك ف السبب ولكن... قرابتها تستطع لن أنك OOP ال مستوى

... البرمجة لمهاراته التطور تابع أن ستطع وال.. المرحلة هذه عند

.... العمل خر الى وإاكم هللا وفقنا

أنس حكمت أبو حمد

[email protected]

Page 4: PHP Advance 101 دورة

:راس الغنى .. القناعــة

فصرت بأذالها متمسك..... رأت القناعة رأس الغنى

وال ذا ران به منهمك..... فال ذا ران على بابه

أمر على الناس شبه الملك..... فصرت غنا بال درهم

..لإلمام الشافع رحمه هللا

أنس حكمت أبو حمد

[email protected]

Page 5: PHP Advance 101 دورة

أسالب تطور وتطبق البرمجات

-1-

Coding Style

أنس حكمت أبو حمد

[email protected]

Page 6: PHP Advance 101 دورة

Coding Style

أنك مهما امتكلت من , علك أن تعلم عززي المبرمج

PHP Syntaxومهارة ف استخدام ال , تقنات برمجة

وهذا , فان هذا ال عن أنه جد.. PHP Functionأو

ال عن أن المبرمجن اآلخرن أو أنت بنفسك

..ستستطع التطور أو التعدل على ما كتبت من كود..

جب علك عززي المبرمج أن تقوم بعمل اندماج بن

لصبح ... وطرقة كتابة هذا الكود , الكود الخاص بك

... مرن , كود سهل

أنس حكمت أبو حمد

[email protected]

Page 7: PHP Advance 101 دورة

Coding Style معلومات عالطار

علنا أن نعلم أنه ال وجد معار مثالة لطرقة : أوالنعم ال وجد معار ... تصمم الكود بشكل جذاب

ولكن هناك أسالب اتفق علها لسر علها , مثالةمقترنة بإسلوب , لتعط جانب من المثالة, المبرمجنفهو ندرج , وكفما فضل المبرمج ذلك , كل مبرمج

... تحت احدى األسالب

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

بسط ولكن مرن.... غر قابل للتطور

أنس حكمت أبو حمد

[email protected]

Page 8: PHP Advance 101 دورة

Coding Style -1-لنبدأ معا

:جب علك مراعاة النقاط التالة, عند تصمم أي كود

المسافة البادبة

طول السطر

الفراغات

مراعاة البنة التركبة والطرقة القواعدة لل الSQL

وه من األسالب الت تعط , هذه األمور ه األهم ... جانب من المثالة ف كتابة الكود

سننطلق الى مستوى آخر ف ..بعد معرفة هذه النقاط *( ...تصمم الكود

أنس حكمت أبو حمد

[email protected]

Page 9: PHP Advance 101 دورة

Coding Styleالمسافة البادبة

ه تلك المسافة الت تسبق , المقصود بالمسافة البادبة

, رغم بساطتها, وه مهمة جدا... أي سطر برمج

واكتشاف , فه تعط سهولة رابعة ف تتبع الكود

}مثل نسان وضع –األخطاء حتى والكثرة الشوع

األول , واآلن سنرى مثالن , -معن blockف نهاة

والحظ ... سكون بدون عالمات بادبة واآلخر بها

.... أهما أسهل بالقرابة والفهم

أنس حكمت أبو حمد

[email protected]

Page 10: PHP Advance 101 دورة

Coding Styleالمسافة البادبة

أنس حكمت أبو حمد

[email protected]

Page 11: PHP Advance 101 دورة

Coding Styleالمسافة البادبة

أنس حكمت أبو حمد

[email protected]

Page 12: PHP Advance 101 دورة

Coding Styleالمسافة البادبة

مع ..وفابدتها الرابعة ..ورأنا طرقة استخدامها ..اآلن بالنسبة للمسافة البادبة... بساطتها

:علك ان تعلم انه هناك أنواع لها , سظهر مسافة معنة tabعندما تقوم بالضغط على زر : Hard Tab: األول

...وتكمن سبته ف هذه النقطة, تختلف من محرر نصوص الى آخر

ولكنك هنا تكون قد Tabأضا نطلق عن الضغط على زر : Soft Tab: الثانوهنا كون الطول عبارة .. قمت باعداده على وضع عدد معن من الفراغات

وف الغالب فضل ...لذلك ال تأثر من محرر نصوص الى آخر ..عن فراغات .استخدام هذا النوع

العادة فهذا عن ازاحة بمقدار Spacesعند استخدامك لل : Spaces: الثالثندرج Soft tabومكن اعتبار ... )وهو ثابت ال تغر ... فراغ واحد فقط

..Tabولكن مع شرط الضغط على زر ..تحت هذا المسمى

أنس حكمت أبو حمد

[email protected]

Page 13: PHP Advance 101 دورة

Coding Styleطول السطر

فإنه صعب , عندما كون السطر البرمج طول جدا

, ق تتبع الكود..وهذا قد سبب مشكلة , تتبعه وقرابته

باالضافة الى شعور بالملل خصوصا ف وجود , قرابته

..العدد من األسطر الت تكون بهذا الشكل

لذلك تذكر دابما أنه علك فصل السطر الطول الى

وهذا جعل من الكود الخاص بك ... عدة أسطر

لننظر الفرق بن الكتابة ... سهل وسلس للقرابة ...

..بسطر واحد وعدة أسطر

أنس حكمت أبو حمد

[email protected]

Page 14: PHP Advance 101 دورة

Coding Styleطول السطر

أنس حكمت أبو حمد

[email protected]

Page 15: PHP Advance 101 دورة

Coding Styleطول السطر

وبشكل عام ال تدع السطر البرمج تجاوز ال ...طبعا...حرف مع فراغ 80

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

...الخطوط عن الطباعة غر قابلة للقرابة

علك ان تراع ذلك بالنسبة للمبرمجن من حث وبالنسبة لتعامل البرمجات المخلتفة مع طول , القرابة

...األسطر

أنس حكمت أبو حمد

[email protected]

Page 16: PHP Advance 101 دورة

إن بتا خلو من كتاب هو بت بال روح

أنس حكمت أبو حمد

[email protected]

Page 17: PHP Advance 101 دورة

Coding Styleالفراغات

ال تتعجب من ذلك ...الفراغات , نعم ...

تلعب الفراغات دورا كبرا جدا ف التركبة المنطقة

ودورها كبر ف تبسط وتسهل الرؤا ألي , للكود

...كود قد قمت بكتابته

سجع من الكود ...ان استغاللك السلم لهذه الفراغات

..رابع المنظر وسهل القرابة ...الخاص بك

....واآلن لننظر الى أمثلة توضح ذلك

أنس حكمت أبو حمد

[email protected]

Page 18: PHP Advance 101 دورة

Coding Styleالفراغات

أنس حكمت أبو حمد

[email protected]

Page 19: PHP Advance 101 دورة

Coding Style *SQL*

تستخدم بكثرة جدا حول العالم ... SQLنحن نعلم أن ال

ومن ضمنها ال ... وف تطبقات ولغات برمجة كثرة

PHP ... ونعلم أن للSQL .. مجموعة قواعد خاصة

وأمور أخرى تسهل علنا قرابة جمل ..للكتابة بها

تحتوي SQLوكما نعلم فإن ال ..االستعالم الخاصة بها

وهذا قد شكل خوف لدى ..على جمل استعالم معقدة

الكثر من المبرمجن من كتابتها بشكل سهل للقرابة

جمع ما قد ..وهذا شء خاطا ..ولس عدم علمهم ..

مكننا استخدامه ف التعامل مع أوامر ال ..ذكرناه سابقا

SQL داخل الPHP ... لنرى ذلك بمثال عمل....

أنس حكمت أبو حمد

[email protected]

Page 20: PHP Advance 101 دورة

Coding Style *SQL*

أنس حكمت أبو حمد

[email protected]

Page 21: PHP Advance 101 دورة

Coding Style *SQL*

أنس حكمت أبو حمد

[email protected]

Page 22: PHP Advance 101 دورة

ستطع الشطان أن كون مالكا والقزم

عمالقا والخفاش نسرا والظلمات نورا

.لكن أمام الحمقى والسذج فقط . .

أنس حكمت أبو حمد

[email protected]

Page 23: PHP Advance 101 دورة

Coding Style -2-

أنس حكمت أبو حمد

[email protected]

Page 24: PHP Advance 101 دورة

Coding Style -2-

تحدددثنا فدد المسددتوى األول عددن األمددور الربسددة

فددد أي مكدددان داخدددل ..التددد تمثدددل الكدددود بشدددكل عدددام

وقد قمدت ...واآلن سننطلق الى جزبة أخرى ..المحرر

أي بعدد تطبقدك وتنفدذك لمدا ...بفصلها لغاات التطبق

باستطاعتك أن تكمدل ... -Coding Style -1جاء ف

علدك بتطبدق مدا قدرأت حتدى ..وهذا شء مهم للتعلم ..

...ال تدددددددددددددددددددددددددذهب قرابتدددددددددددددددددددددددددك سددددددددددددددددددددددددددى

....واآلن لنبدأ مع الجزء الثان

أنس حكمت أبو حمد

[email protected]

Page 25: PHP Advance 101 دورة

Coding Style -2-

الجمل الشرطة والدوران...

وما هو الدوران , جمعنا علم ما ه الجمل الشرطة

وكف مكنن ...ولكن كف تم تنسق هذه األجزاء ؟ ..

الخ ...جعلها أسهل بالقرابة والتعدل

..هذا ما سنجب عنه بإذن هللا تعالى

ف لغة الPHP .. مكنك كتابة الجملة الشرطة

: بالشكل التال

أنس حكمت أبو حمد

[email protected]

Page 26: PHP Advance 101 دورة

Coding Style -2-

فستالحظ أن ..إن قمت بتدقق النظر ف الكود السابق

وهذه الصغة ..الجملة الشرطة جابت بدون استخدام

الى أنها غر محبذة ... PHPمع أنها متاحة بال ..

والصحح أن تقوم باستخدام جملة الشرط أو الدوران ..

وهذا جعل العملة التنظمة ... -- Braces–{}مع

...وأسرع للفهم والتعدل, أسهل

..الحظ طرقة الكتابة الصححة

أنس حكمت أبو حمد

[email protected]

Page 27: PHP Advance 101 دورة

Coding Style -2-

هل ...وبعد انتهابنا من النقطة األولى ..لكن اآلن

!! ..أنما أشاء ؟؟.. {}مكنن وضع

هناك ثالثة تصامم لطرقة ترتب ووضع ال : الجواب

Braces ..

هنا على أسطر Bracesتوضع ال : BSDال ( 1

: مثال...منفصلة تحت كلمة الشرط مباشرة

أنس حكمت أبو حمد

[email protected]

Page 28: PHP Advance 101 دورة

Coding Style -2-

أضا أسفل Bracesتكون هنا ال : GNUال ( 2

بحث تأت ..ولكن مع مسافة قللة ..الجملة الشرطة

:مثال..بن كلمة الشرط و الشرط Bracesال

أنس حكمت أبو حمد

[email protected]

Page 29: PHP Advance 101 دورة

Coding Style -2-ف نفس السطر مع جملة Bracesكون ال ..بهذا التصمم : K&Rال ( 3

:مثل...الشرط

!!أي التصامم هو األفضل ؟؟: ^_^ واآلن السؤال القوي

استخدم التصمم ال بعجبك ..رح ندخل بنقاش لن نته ...والجواب بكل بساطة ..هو األروع بالنسبة ل ... K&Rأفضل ال ..لكن شخصا ...

وهذا جعل من الكود الخاص ب Functionعند استخدام ال BSDوأستخدم ال ....لنشاهد مثاال ...سهل القرابة

أنس حكمت أبو حمد

[email protected]

Page 30: PHP Advance 101 دورة

Coding Style -2-

وأنت لك الخار ف .... هذا التصمم الذي أحب استخدامه *(

...أسلوبك

أنس حكمت أبو حمد

[email protected]

Page 31: PHP Advance 101 دورة

Coding Style -2-

واآلن سنتكلم عن الcoding style لجمل الدوران..كثر منا ولألسف قد ال جد فرقا ف استخدام أي جملة

ومع أن هذا غر خاطا قواعدا ..التمام المهمة ..دوران فلماذا تم انشاء هذه الجمل ..وإال ..لكنه خاطا منطقا ...!فكنا اكتفنا بجملة دوران واحدة وانتهنا ؟..

مكان فضل استخدام صغة وال فضل ..لكل جملة دوران وهذا جعل الكود أسهل ف التعدل ..استخدام آخرى

وأسهل ف القرابة ومعرفة ...واضافة الشروط مثال واآلن لننظر ونقارن ..بشكل أسرع ..المحتوى من الدوران

– Whileبن For - Foreach ....^_^

أنس حكمت أبو حمد

[email protected]

Page 32: PHP Advance 101 دورة

Coding Style -2-

الWhile : فال تستخدمها اذا أمكن ...بالنسبة لجملة الدوران هذهوهنددا ال ... وهددذا شددء مهددم .. Foreachأو Forاسددتخدام ال

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

فأحتاجده ..بشدكل خداص ..عند عدم المعرفة متى سنته الدوران الدخ ... Nullأو الوصدول الدى ..أن ستمر حتى حدوث أمر معن

مفدة جدا ف التعامل مع ناتج استرجاع جمدل االسدتعالم لقواعدد .....الباندددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددات

اذا أمكن ذلك for & foreachطبعا لماذا قلنا أنه فضل استخدام ألنددك ان احتجددت الددى كتابددة شددرط ..السددبب فدد درجددة التعقددد ...

سدزد بشدكل ملحدوظ مسدتوى التعقدد ..داخل جملدة الددوران هدذه ...وصعوبة التتبع

أنس حكمت أبو حمد

[email protected]

Page 33: PHP Advance 101 دورة

Coding Style -2-

الFor : جملددة الدددوران هددذه تسددتخدم فدد حالددة معرفددةجملة الدوران هذه أقل ...البداة والنهاة لجملة الدوران

... درجدددة مدددن التعقدددد فددد حدددال تحقدددق هدددذا الشدددرط

الForeach : جملددة الدددوران هددذه راااابعددة جدددا ^_^اذن هددذه الجملددة .. لكددن فدد التعامددل مددع المصددفوفات ..

وال نسدددتخدم ..نسدددتخدمها فددد حدددال وجدددود مصدددفوفات ..ألن أدابها أفضل ف ذلك .. whileأو Forحنها ال

.....واآلن لنرى مجموعة من األكواد كأمثلة

أنس حكمت أبو حمد

[email protected]

Page 34: PHP Advance 101 دورة

أنس حكمت أبو حمد

[email protected]

Page 35: PHP Advance 101 دورة

Coding Style -2-

اسددتخدام ال ..مددن األمددور الجدددة أضدداBreak &

continuoue ... وذلدددك جدددد جددددا بالنسدددبة لدددألداء ..

فلمدداذا مددثال أقددوم باكمددال الدددوران اذا وصددلت الددى قمددة

3مثددل لمددا احكدد بدددي –وهدد التدد أحتاجهددا –معنددة

مجدرد مدا لقدت ...أرقدام 4أعداد زوجة فصدل بنهمدا

وهددددذا منطقددددا ..أقددددوم بانهدددداء الدددددوران ..أعددددداد 3ال

.. واستغالل للمصادر المتاحة بشكل أكبر..أفضل

أنس حكمت أبو حمد

[email protected]

Page 36: PHP Advance 101 دورة

-Coding Style -2تجنب الحلقات المتداخلة

قدر حاول .. أفضل.. بك الخاص الكود أداء لتجعل

مثل–المتاخلة الحلقات استخدام من التقلل.. االمكان

Instead استخدام Loop - .... أنف ال وهنا

من كثر ف مهما دورا تلعب فه... استخدامها

الستخدامها داع ال مواقف هناك لكن.. األحان

لها رعى ال .. االنتباه عدم أو للعجلة إما منا والعدد..

بها نقع أن مكن أخطاء عن.. مثاال لنرى ... باال

...^_^

أنس حكمت أبو حمد

[email protected]

Page 37: PHP Advance 101 دورة

-Coding Style -2تجنب الحلقات المتداخلة

أنس حكمت أبو حمد

[email protected]

Page 38: PHP Advance 101 دورة

-Coding Style -2تجنب الحلقات المتداخلة

أنس حكمت أبو حمد

[email protected]

Page 39: PHP Advance 101 دورة

:قددددددددددددددددددددددددددال .... مددددددددددددددددددددددددددن مكددددددددددددددددددددددددددارم األخددددددددددددددددددددددددددالق

أرحدت نفسد مدن هدم العدداوات..... لما عفدوت ولدم أحقدد علدى أحدد

ألدفدددع الشدددر عنددد بالتحدددات..... إنددد أحددد عددددوي عندددد رؤتددده

كما إن قد حشى قلب مودات..... وأظهر البشر لإلنسان أبغضه

..اإلمام الشافع رحمه هللا

أنس حكمت أبو حمد

[email protected]

Page 40: PHP Advance 101 دورة

-Coding Style -2توضح األسماء

مددن األمددور المهمددة هدد اعطدداء تسددمة دققددة أقددرب مددا

أو ..أو اسددم فانكشددن معددن ..كددون لوظفددة متغددر مددا

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

وسهولة الوصول الى المتغر ...وسهولة تعدله , الكود

..الدددددددددددددددددددددددددددددددددددددددددددددددخ..واسدددددددددددددددددددددددددددددددددددددددددددددددتخدامه

وقددع بدده الكثددر مددن المبددرمجن ..هددذا األمددر مهددم جدددا

...علددددددددددددددك مراعدددددددددددددداة ذلددددددددددددددك ... المبتدددددددددددددددبن

^_^...لنرى مثاال

أنس حكمت أبو حمد

[email protected]

Page 41: PHP Advance 101 دورة

-Coding Style -2توضح األسماء

.. علمت أنه سرجع مصفوفة ..أنن عندما قرأت اسم الفنكشن ... الحظ ف المثال الصحح

تعن المتغر الذي سحوي النتابج من العملة .. retvalوال ...وسستقبل متغر مثل حجم معن

^_^بن األول والثان ..هل الحظت سهولة التحلل ....

أنس حكمت أبو حمد

[email protected]

Page 42: PHP Advance 101 دورة

-Coding Style -2المتغرات

كما نعلم جمعا أن هناكScope .. خارج ..لكل متغر

عتبر ..لن تستطع الوصول اله ( نطاق) Scopeهذا ال

لكن ما ..هذا موضوع معروف ... _@%متغر مت

مكننا تقسم حاة ..سأرغب ف ذكره الوم هنا هو اآلت

:وه , أقسام 3المتغر الذي نقوم بتعرفه الى

1 )Truly-Global : وهو المتغر الذي عش لفترة

طولة وف مساحة كبرة جدا من الكود الذي قد قمت

-ف الغالب–أي مكنك استخدامه ون ما تروح ...بكتابته

... وعلك تجنبه وذلك بسبب...ولكن هذا األمر لس بجد

أنس حكمت أبو حمد

[email protected]

Page 43: PHP Advance 101 دورة

-Coding Style -2المتغرات

بما أنه عمل بأغلب ..هذا المتغر : السبب األول

فهذا عن أنه تعرض ..السكربت الذي قمت بكتابته

وهذا جعل أمر تتبع ..لكثر من التعدل والتغر لقمته

.أمرا صعبا ..قمته

إذا قمت بتعرف متغر اسمه : الثان$X مثال

NameSpaceواستخدمت .. Lib .. وكانت تستخدم

فإن هذا سحدث ... X$هذه المكتبة نفس اسم المتغر

زادت ..وكلما زاد عدد التصادم ..نوعا من التصادم

..واألخطاء الت ستظهر وصعب تتبعها ..المشاكل

أنس حكمت أبو حمد

[email protected]

Page 44: PHP Advance 101 دورة

-Coding Style -2المتغرات

اآلن مالحظددة عنددد كتابتددك اسددم المتغددر الددذي سددكونTruly-Global ... جدددددب أن كدددددون جمدددددع أحرفددددده

Capital Letters .. مثدددددلAUTH_PATH$ ...لهددذا النددوع مددن Coding styleوهددذه مددن قواعددد ال

..المتغدددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددرات المشدداكل التدد تددم ...^_^ اآلن قددد سددأل أحددد الشددباب

الجددددواب ببسدددداطة نعدددددم ..هددددل لهددددا حددددل ؟ ..ذكرهددددا بددن كددف مكننددا أن ..لنسددتعرض مثددال بسددط معددا ...

مدع الوصدول الدى نفدس ..نتخلص من مثل هذه المشاكل ...الهدف

أنس حكمت أبو حمد

[email protected]

Page 45: PHP Advance 101 دورة

-Coding Style -2المتغرات

خطددددا بهددددا ..عملددددة شددددابعة االنتشددددار ..لنأخددددذ مددددثال

المهم -^_^ طبعا أنا كنت أوقع ف –.. المبتدبن كثر

لنددرى هددذا ..هددو عملددة الددربط مددع قاعدددة البانددات ...

...المثال

أنس حكمت أبو حمد

[email protected]

Page 46: PHP Advance 101 دورة

-Coding Style -2المتغرات

الحل األفضل من السابق سكون ف استخدام ...Classes

الحظ هنا أنن حققت نفس الغرض بأمان أكثر ..

رثه .. Abstract Classأقوم بكتابة كود الربط مع قواعد البانات داخل ...طبعا بالنسبة ل

..الكالس األخرى

أنس حكمت أبو حمد

[email protected]

Page 47: PHP Advance 101 دورة

-Coding Style -2المتغرات

2 )Long-Lived Variables : وهذا النوع من المتغرات Globalولكن ال تصل الى درجة ال ..دورة حاته طولة

وسمى هذا النوع من المتغرات باسم وصف دل على ... ..وظفته طوال البرنامج

3 )Temporary Variables : تستخدم هذه المتغراتبحث ؤدي وظفة ..داخل حز أو نطاق برمج صغر

قصر أو ..وهذا االسم جب أن كون..معنة ونته بعدها غالبا ما نستخدم الرمز ..مثل جمل الدوران ...موجز

,$j,$k,$i الخ ..كمثال لمتغرات ف جمل الدوران ...

أنس حكمت أبو حمد

[email protected]

Page 48: PHP Advance 101 دورة

-Coding Style -2المتغرات ذات الكلمات المتعددة

هد طرقدة ... من األمور المهمدة فد تصدمم أي كدود

لكدددن مددداذا عدددن .. وهدددذا عرفنددداه .. كتابدددة المتغدددرات

المتغرات الت تتكون من أكثر من مقطدع مثدل تعردف

هدذه ... Number Elementsمتغر مثل هذه الجملة

ما ه أفضل طرقة لتمثل عله ... الجملة الت رأناها

..كإسدددددددددددددددددددددددددددم متغدددددددددددددددددددددددددددر برمجددددددددددددددددددددددددددد؟

هندداك مدرسدتان وضدعت كدل منهددا .. للجدواب عدن ذلدك

...لننظر الى هذه الحلول.......حل لهذه المشكلة

أنس حكمت أبو حمد

[email protected]

Page 49: PHP Advance 101 دورة

-Coding Style -2المتغرات ذات الكلمات المتعددة

تكلمت هذه المدرسة عن ال : المدرسة األولى

Methodology التالة:

camel caps

السؤال اآلن ما هو مبدأ عملها...

بكل بساطة هو ف أن تقوم بوضع فواصل الكلمات أحرف

Capital وهذا مثل مقطع جدد ف االسم..

:اذا ف جملتنا السابقة سكون شكل الجملة على التال

$numElements - 100تذكر ال وجد شء مثال%-

..

()getData() - buildSomeWidget..أمثلة أخرى

أنس حكمت أبو حمد

[email protected]

Page 50: PHP Advance 101 دورة

-Coding Style -2المتغرات ذات الكلمات المتعددة

تتكلم هذه المدرسة عن ال : المدرسة الثانةMethodology التالة:

a.k.a. studly caps (Using underscores (to break words

هذه المدرسة تقول أنه من األفضل أن تقوم بالفصل بنوهذا عن أن ( .. _ ) المتغرات المتعددة المقاطع ب

:جملتنا ستصبح بالشكل التال$num_elements–set_price --- get_data

بالنسبة ل أفضل استخدام هذا األسلوب...

أنس حكمت أبو حمد

[email protected]

Page 51: PHP Advance 101 دورة

-Coding Style -2المتغرات ذات الكلمات المتعددة

قلت ف نهاة الشرحة الثانة أنن أفضل استخدام

:والسبب ف ذلك( .. _ ) األسلوب الثان وهو

لقد تكمنا ف الدروس السابقة عن المتغرات ال ( 1

Global وقلنا أنه من قواعد كتابة هذه المتغرات أن

اذن فماذا سحدث لو .. Capitalتكون أحرفها جمعا

كان اسم المتغر هذا من أكثر من مقطع ؟ هذه أول

انظر كف ستصبح NUMELEMENT$.. مشكلة

لن نستطع تمز المقطع األول عن الثان ... جملتنا

^_^إنه أمر مزعج ..بسهولة

أنس حكمت أبو حمد

[email protected]

Page 52: PHP Advance 101 دورة

-Coding Style -2المتغرات ذات الكلمات المتعددة

سهولة القرابة عند وجود فواصل : السبب الثان( 2أسهل بالقرابة من الكلمات المتالصقة( ( _مثل

المبرمجن الذن تحدثون اللغات : السبب الثالث( 3–أي أن اللغة االنجلزة لست لغتهم األم –األخرى

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

^_^P: ألن أنا بفضل هذا األسلوب ( 4

ابحث وانظر ..هناك من ال فضل هذا األسلوب أضا *( ..واختر ما ناسبك ..وقارن بنهم

أنس حكمت أبو حمد

[email protected]

Page 53: PHP Advance 101 دورة

أنس حكمت أبو حمد

[email protected]

Page 54: PHP Advance 101 دورة

Coding Style -2- Function Name

سنتحدث اآلن بإذن هللا تعالى عن كتابة الFunction

Name ...

كنظام لتحدد ..BSDسأستخدم .. لنتذكر ما أخذنا سوا

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

اذا كان من جزء واحد بأحرف صغرة ..الفانكشن

لصبح (.. _) وإذا كان أكثر من جزء باستخدام..

... الفانكشن عندنا بهذا الشكل

أنس حكمت أبو حمد

[email protected]

Page 55: PHP Advance 101 دورة

هناك شء اسمه جودة االسم : مداخلة سرعة

Quality Names)) البرمج وف أي لغة , وهذا عن أن أي كود تقوم بكتابته

, جب أن تكون مفهومه من قبل اآلخرن, برمجة كانت

وجب أن تكون المتغرات أو الفانكشن أو او الكالس

.كلها ذات معان ودالبل لما ستقوم به من عمل

, إن االلتزام بهذا المعنى عط صاحبه مهنة ف العمل

وجعل من التعلمات الصعبة شء مفهوم قدر

وهذا ما مز المبرمج المبتدئ عن المتوسط , االمكان

مدى احترافهم للكود باالضافه الى ... عن المحترف

.. مدى االحتراف ف تصممه

أنس حكمت أبو حمد

[email protected]

Page 56: PHP Advance 101 دورة

Coding Style -2- Class Name

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

ومن هذا عن انه لتسمة كالس معن ( .. طبعا لس الزاما).. Capitalجب ان كون الحرف األول من اسم الكالس : 1مكنك استخدام القواعد الت تم ذكرها مثل استخدام : 2

studly cap, or camel cap

% ... 100وال شء ملزم % 100ال وجد شء مثال : تذكرلكن هناك أمور لو سرت بها ستجعلك أقرب من غرك ألن تكون

وال عن استخدام أسلوب بدال من آخر أن ذلك خطأ ...مثالا الكن انظر لحسنات وسبات كل اسلوب ... وأنك غر محترف ..

...واختر ما تراه األفضل

أنس حكمت أبو حمد

[email protected]

Page 57: PHP Advance 101 دورة

Coding Style -2- Method Name

قد نظر البعض .. اآلن سنتلكم عن طرقة كتابة االسم للمثود.. فأقول له أنك أصبت ... ه ذاتها الفانكشن..وقول المثود

..!!! ألن هذه التسمة لم تخرج عبثا .. ولكن لس بشكل مطلق .....اذا؟..

..حنها سمى مثود ...إذا كتب الفانكشن داخل كالس

وهو وجود ... ومن هنا أضا وجد امر جمل ف التصمم طرق للتصمم بحث تمز من خالل النظر المثود عن الفانكشن

..

بعد الكلمة األولى ف كل Capitalاستخدم هنا الحرف األول ,Camel...ومن ثم استخدم النظام الذي تحب .. مقطع or

Studly cap..

أنس حكمت أبو حمد

[email protected]

Page 58: PHP Advance 101 دورة

-Coding Style -2مثال على الكالس والمثود

أن أول حرف بكل كلمة بعد : الحظ

Capitalاالولى ف المثود ه

أنس حكمت أبو حمد

[email protected]

Page 59: PHP Advance 101 دورة

-Coding Style -2تناسق التسمة

مراعاة التناسق .. من األمور المهمة ف تصمم الكود

خصوصا التسمة لألمور الت ستؤدي ... بن األسماء

وظفة لنفس العنصر ان كانت بالنقصان أو الزادة

..كمثال

: مثال

..شاهد كف أن المتغرات على نسق واحد

أو شرح لمن هذه –ثم لمن , فقمت بذكر الغرض من هذا المتغر

-المهمة

أنس حكمت أبو حمد

[email protected]

Page 60: PHP Advance 101 دورة

-Coding Style -2أسماء األعمدة ف قواعد البانات وأسماء المتغرات

إن من األمور الجملة أثناء كتابة الكود أثناء التعامل

هو كتابة أسماء المتغرات بنفس .. مع قواعد البانات

وهذا سهل علنا كثرا عملة التعدل ..أسماء االعمدة

لذلك قم بكتابة أسماء .. أو التطور على الكود

المتغرات الت تتعامل مع األعمدة بنفس الصغة

أنس حكمت أبو حمد :شاهد هذا المثال...حرفا

[email protected]

Page 61: PHP Advance 101 دورة

-Coding style -2نهاة ال

.. Coding Style 2انتهنا اآلن مدن ال ... بفضل من هللا تعالى والتد .. ولقد تكلمنا عن كثر من األمور المهمدة فد كتابدة الكدود

... وتظهددر مدددى احتددراف المبددرمج ... تددؤثر علدده بشددكل واضددحكان تحدث عدن المحاولدة قددر االمكدان فد .كل ما تم ذكره سابقا

خصوصدا ..أكثدر قددرة علدى القرابدة .. أسدهل ..جعل الكود أبسدط ..لمطدددددددددددددددددددددددددددددددورن البرمجدددددددددددددددددددددددددددددددات الجددددددددددددددددددددددددددددددددد

واآلن سددننتقل بددإذن هللا تعددالى الددى الجددزء الثالددث واألخددر مددن ال Coding Style .. كف مكننا أن نمنع الخلدط ..بحث سنتكلم به

وضدع ..مثل فتح تداغ معدن وإنهابده ..بن الرموز المختلفة بالكود الخ...معا Html & PHPكود

^_______^لنذهب سوا أنس حكمت أبو حمد

[email protected]

Page 62: PHP Advance 101 دورة

أنس حكمت أبو حمد

[email protected]

Page 63: PHP Advance 101 دورة

Coding Style -3-

أنس حكمت أبو حمد

[email protected]

Page 64: PHP Advance 101 دورة

Coding Style -3- Short Tag

هو تجنب استخدام ال ..أول موضوع سنتكلم عنه

Short tag وخصوصا ف موضوعنا عن صفحات

... PHPال

مكنك البدأ بها وإنهابها بعدة PHPنحن نعلم أن ال

php?>مثل ... طرق هذا التاغ هو ال .. <?

Standard tag ... لكن من الطرق األخرى مثال ه

مكن استخدامها أضا ف ال ..هذه الطرقة ... <? ?>

PHP .. سأقول ..وإن سألتن لماذا ..ولكن هذا سء

^____^انظر الشرحة التالة .. لك

أنس حكمت أبو حمد

[email protected]

Page 65: PHP Advance 101 دورة

Coding Style -3- Short Tag

XML Normalهنا قمت باستخدام هذا التاغ لتعرف أن المستند : الحظ

مثل...ستخدم نفس ال الصغة للتاغ .. PHP؟؟؟ ف حال وجودها مع كود ..ما الجدد

لل interruptسقوم بعمل PHPألن ال ... بشكله الطبع xmlف هذه الحالة لن عمل ال

header .. وبعاملو كأنوBlock ...

قم بكتابة الكود .. لس أمرا جدا ..هنا أن تختصر .. دابما قم بكتابة الكود بشكله الصحح

:كالتال

أنس حكمت أبو حمد

[email protected]

Page 66: PHP Advance 101 دورة

Coding Style -3- PHP & html

إن احدى أهم ممزات الPHP ... هدو امكاندة تضدمن

... والعكددددددس htmlداخددددددل كددددددود ال PHPكددددددود ال

Coding Styleوالكددن هددذه قددد تسددبب لنددا مشددكلة فدد

عوضا عن الخلط .. فقد تزد من صعوبة قرابة الكود ..

قد سبب بعض األخطداء الغدر مقصدودة ..بن النوعن

اذن مدددددددددددددددددددددددددددددددددددددددددددددددددددا الحدددددددددددددددددددددددددددددددددددددددددددددددددددل؟ ..

الحدددل باسدددتخدام تصدددمم جدددد لهدددذا الندددوع مدددن الكدددود

لنددددرى أوال أمثلددددة علددددى ! .. ؟..وكددددف كددددون ذلددددك ..

^____________^ف الشرحة التالة ...النوعن

أنس حكمت أبو حمد

[email protected]

Page 67: PHP Advance 101 دورة

Coding Style -3- PHP & html

الكود لما كون .. ^_^ مرة 100000الثان أحلى ... طبعا فرق ... ا سالم

.^_^ أنت أول من فرح لذلك .. وتنجزه ..صحح أنس حكمت أبو حمد

[email protected]

Page 68: PHP Advance 101 دورة

Coding Style -3- PHP & html

بعدددد المثدددالن السدددابقن ..أظدددن ان الفدددرق أصدددبح واضدددحا

echoحاول قددر االمكدان أن ال تجعدل ال .. وباختصار ..

or print ه مدن تقدوم بطباعدة الhtml .. بدل اجعدل كدل

... مدددددددددددددددددددددن اللغتدددددددددددددددددددددن تقدددددددددددددددددددددوم بمهامهدددددددددددددددددددددا

امكانددة تضددمنها داخددل ال PHPقلنددا أن مددن اهددم مزاددا ال

Html ضددمن ..اذن اسددتغلها بالشددكل الصددحح .. والعكددس

...ودون أن تجعلهما تداخالن قدر االمكان ..االثنان

التدد قمددت باسددتخدامها بالمثددال األول فدد <? =?>: مالحظددة

تعن .. الشرحة السابقة

<?php echo “$username” ?>

أنس حكمت أبو حمد

[email protected]

Page 69: PHP Advance 101 دورة

Coding Style -3- Parentheses -()-

مصدابب برمجدة ..ان من األمور الت سبب الخلط بهاأنهدددا تلعدددب دورا ..والسدددبب فددد ذلدددك .. -)( –ال ..

وهددذا شددء .. ربسددا فدد تحدددد أولوددات سددر العمددل ... نعلمدددددددددددددددددددددددددددددددددددددددددددددددددده جمعددددددددددددددددددددددددددددددددددددددددددددددددددا

..فقدددد روعددد ذلدددك أضدددا ..لدددذلك فددد تصدددمم الكدددود .. ( بحكمدة وتدروي )( اسدتخدم ال ) هناك حكمدة تقدول

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

لدنالحظ األمثلدة فد الشدرحة التالدة ...التسلسل صدحح ^_______^

أنس حكمت أبو حمد

[email protected]

Page 70: PHP Advance 101 دورة

Coding Style -3- Parentheses -()-

.....ف الشرحة التالة ..المثال الثالث

أنس حكمت أبو حمد

[email protected]

Page 71: PHP Advance 101 دورة

Coding Style -3- Parentheses -()-

..وقد الحظت الفرق بن تتبع كل منها...الفرق بن األمثلة الثالثة ... لقد الحظت بكل تأكد

وهذا سرهق اي ..وذلك بسبب عدم وجود األقواس ..صعب تتبعه اال بخبرة برمجة .. ن المثال األول !

.. حتى ولو كنت أنت ..شخص سقرأ الكود بعد ذلك

صعب تتبعه ..هذا الشكل كبر جدا ...بشكل ال طاق )( صعب تتبعه بسبب وضع ال : وف المثال الثالث

... وقرائته

...بحث لس بقلل ولس بكثر ... كان االستخدام معتدل وبحكمه : ف المثال الثان

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

...ستالحظ الفرق ...حتى تكتب كود من متوسط الى كبر

أنس حكمت أبو حمد

[email protected]

Page 72: PHP Advance 101 دورة

أنس حكمت أبو حمد

[email protected]

Page 73: PHP Advance 101 دورة

-Coding Style -3 (التوثق) Documentation

وذلك لتسهل فهم , عد التوثق من أهم األمور ف تصمم أي كودالكددود لددك أو لغددرك حتددى تسددتطع أو سددتطع أي مبددرمج آخددر

ألنده ال , وهذا مهم جدا ف الشدركات , التعدل عله والتعامل معهلدذلك تهدتم ...وجد موظف سبقى لألبد ف شركته الت عمدل بهدا

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

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

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

...المالددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددنلست مبرمج جد ألن الكدود الخداص بدك ...تذكر أنك بدون توثق

سددددددددددددددددددددددددددددددددددددددددكون قلددددددددددددددددددددددددددددددددددددددددل الجددددددددددددددددددددددددددددددددددددددددودة

أنس حكمت أبو حمد

[email protected]

Page 74: PHP Advance 101 دورة

:نقسدددددددددددم التوثدددددددددددق الدددددددددددى قسدددددددددددمن ربسدددددددددددن

هددذا النددوع مددن التوثددق : Inline comments: األول

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

هو تعزز قدرة المبرمجن على التعددل أو التحددث أو

..تصدددددددددددددددددددددحح التعلمدددددددددددددددددددددات البرمجدددددددددددددددددددددة

وهدددذا الندددوع مدددن : API documentation: الثدددان

التوثددق لألشددخاص الددذن ردددون اسددتخدام الكددالس أو

... الفانكشدددددددددددن بددددددددددددون قرابدددددددددددة الكدددددددددددود بذاتددددددددددده

^_^....لنبدأ بشرح كل تصنف منهم : واآلن

-Coding Style -3 (التوثق) Documentation

أنس حكمت أبو حمد

[email protected]

Page 75: PHP Advance 101 دورة

Coding Style -3- Inline comments

فدد الPHP ..مكنددك اسددتخدام أكثددر مددن طرقددة للتوثددق:وهددددددددددددددددددددددددددددددددددددذه الطددددددددددددددددددددددددددددددددددددرق هدددددددددددددددددددددددددددددددددددد

1)C-style comments : األسدلوب المسدتخدم فد السد/* any comments */وهدددددددددو ..2 )C++-style comments : األسددلوب المسددتخدم فدد

any comments //وهددددددددو ++ ... السدددددددد 3 )Shell/Perl-style comments : األسلوب المسدتخدم

any comments #وهدددددو ... بدددددالبرل أو شدددددل .. PHPاآلن جمددع هددذا األسددالب مكنددك اسددتخدامها فدد

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

...شاهد األمثلة ... لتوثق سطر واحد ++ الس أنس حكمت أبو حمد

[email protected]

Page 76: PHP Advance 101 دورة

Coding Style -3- Inline comments

أنس حكمت أبو حمد

[email protected]

Page 77: PHP Advance 101 دورة

Coding Style -3- API Documentation

فالهدف , .. inlineختلف نوع أو الهدف من هذا التوثق عن ال وانما ...لس شرح التعلمات البرمجة بالتحدد ..من هذا التوثق

ولذلك باألصل .. كف ستعامل مع هذا الكود ..شرح للمبرمجن والت ه اختصار ل.. APIسم

Application Programing interface .. وهذا ال عنعن ه لست ..الواجهات أو التصامم الت تظهر للوزر

GUI ...عبارة عن اسلوب مكنك من استخدام فانكشن معنة .. APIال

لستطع المبرمجن اآلخرن -لهذا الغرض–تم تعرفها من قبل حتى ..وهذا الكالم تستخدمه نظم التشغل –من استخدامها

وسمح لك بكتابة الفانكشن ..تستطع التعامل مع البرامج المختلفة من الصفر

اآلن نعود لموضوعنا وهو توثق هذا .. طبعا هذا بشكل موجز......الكالم

أنس حكمت أبو حمد

[email protected]

Page 78: PHP Advance 101 دورة

أمددور ربسددة جددب أن حتوهددا هددذا التوثددق 3وجددد :وهددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددد

جدب أن قددم هدذا التوثدق مقدمدة سدرعة للمسدتخدم ( 1ستناسدددب ..حتدددى علدددم أن هدددذه المكتبدددة أو الفانكشدددن ..

... احتاجاتددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددده أم ال جدددب أن قددددم توثدددق كامدددل عدددن جمدددع الكدددالس ( 2

وجددب أن حتددوي علددى .. Publicوالفانكشددن مددن نددوع & Inputشدرح لجمدع output ).Parameters(

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

Coding Style -3- API Documentation

أنس حكمت أبو حمد

[email protected]

Page 79: PHP Advance 101 دورة

Coding Style -3- API Documentation

فإنه بامكانك التكلم أضا عن ..باإلضافة الى ما سبق

1 )Protected مثود المستخدمة ووضع توثق

.. مناسب لها

وضع امثلة لطرقة الوراثة من هذه الكالس وكفة ( 2

..الى هذا الكالس ( فانكشن)اضافة وظفة جددة

لك ولمن ستخدم ..وغالبا ما تكون هذه االضفات مفدة

-انتبه غالبا–هذا التوثق

أنس حكمت أبو حمد

[email protected]

Page 80: PHP Advance 101 دورة

Coding Style -3- API Documentation

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

وعلدك مراعدة مدا ..فبدأ أو التوثدق باسدم المطدور .. الكود :لدددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددد

وهددذا ... inline with codeجدب أن كددون التوثددق ( 1..وضدمن وجدوده دابمدا , جعل مدن التوثدق قابدل للتحددث

بعدددة ..بلغددة سددهلة ..جددب أن كددون التوثددق المكتددوب ( 2لتجعدل المسداعدة بسدطة وسدهلة ..عن المزاح قددر االمكدان

وسدددددددددددددددددددددددددددددددددرعة قددددددددددددددددددددددددددددددددددر االمكدددددددددددددددددددددددددددددددددانجدددب أن كدددون هدددذا التوثدددق مكتدددوب باحترافدددة قددددر ( 3

...ومع ذلك الحفاظ على سدهولة قرابدة الفرومدات..االمكان

أنس حكمت أبو حمد

[email protected]

Page 81: PHP Advance 101 دورة

Coding Style -3- API Documentation

هناك أداة مقتوحة المصدر تسمىPHPDocumentor

هذه األداة تتح لك انشاء توثق من خالل تحلل السورس

هذا .. PHPكود وال بلوك الموجودة داخل كود ال

... APIسكون ..التوثق الناتج

شكل الAPI سكون كالتال:

أنس حكمت أبو حمد

[email protected]

Page 82: PHP Advance 101 دورة

Coding Style -3- API Documentation

اآلن سأشرح عن بعض الtag ..

..كما ترى ..انتبه أنه هناك قواعد لكابتها : أوال

... ثم القمة ... اسم التاغ .. ثم @علنا أوال وضع

الخ( ..المطور.. )كتب به معلومات عن الناشر .. authorتاغ ال : مثال

...شاهد مثال عمل ف الشرحة التالة

أنس حكمت أبو حمد

[email protected]

Page 83: PHP Advance 101 دورة

Coding Style -3- API Documentation

أول بلوك ..عند البدء بالتوثق( الheader ) كتب

:به هذه المعلومات

وقد ( - Short Description–أول سطر )فإنه تم وضع نبذة مختصرة عن الصفحة ...اذا الحظت

... APIأن هذا أول مثال على موضوع ال .. تكلمت فه

..وهنا مكنك وضع معلومات وتفاصل أكثر عن موضوع الصفحة ... ثم وصف مطول

..فما بعد ..الن سورث الى جمع بلوك ..هذا االسم مهم .. Packageثم اسم ال

... وهو أنس ..ثم معلومات المطور

أنس حكمت أبو حمد

[email protected]

Page 84: PHP Advance 101 دورة

Coding Style -3- API Documentation

ولنقم بتوثق فانكشن داخل ال ... اآلن لنخصص األمثلة أكثر قلال

API( .... بامكانك االطالع على المزد من موقع

http://phpdoc.org/

أنس حكمت أبو حمد

[email protected]

Page 85: PHP Advance 101 دورة

...نهاة الجزء األول من الدورة

(Coding Style)أسالب التطور وتطبق البرمجات

أنس حكمت أبو حمد

[email protected]

Page 86: PHP Advance 101 دورة

الحمد هلل رب العالمن...الحمد هلل الذي بحمده تتم النعم

وعددددد ..وعددددد مدددا كدددون ...الحمدددد هلل عددددد مدددا كدددان

.. الحركددددددددددددددددددددددددددددددددددددددددددات والسددددددددددددددددددددددددددددددددددددددددددكون

وانفعنددا بمددا علمتنددا انددك أنددت ...اللهددم علمنددا مددا نفعنددا

...العلدددددددددددددددددددددددددددددددددددددددددددددددم الحكدددددددددددددددددددددددددددددددددددددددددددددددم

وأشدهد أن محمدد رسدول هللا..... أشهد أن ال اله اال هللا

أنس حكمت أبو حمد

[email protected]

Page 87: PHP Advance 101 دورة

أسالب تطور وتطبق البرمجات

-2-

Error Handling

أنس حكمت أبو حمد

[email protected]

Page 88: PHP Advance 101 دورة

Error Handlingمقدمة عن

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

علك تدذكر ذلدك ...وخال من الثغرات % 100مثال كلما ازددت مهارة ف كتابة الكود الخاص بك ..ولكن ..وسددتتعلم بكدددل دددوم .. وزاد احترافدددك ..قلددت ثغراتدددك ....لتغطددددددد بددددددده تلدددددددك الثغدددددددرات ..شدددددددء جددددددددد ..

..مددن أمددرن ..فدد عددالم البرمجددة فددإن األخطدداء تددأت تدددابع فددد الشدددرحة ....^________^................

....التالة

أنس حكمت أبو حمد

[email protected]

Page 89: PHP Advance 101 دورة

Error Handlingمقدمة عن

مثل عدم ..وهو الخطأ الناتج عن خلل خارج : األمر األولمع أنه مطلوب ..نجاح عملة االتصال مع قواعد البانات

External errorsوتسمى هذه ...التمام العمل

bugsوتسمى بالغالب ب ..وهو الخطأ المنطق : األمر الثانهذه األخطاء تقوم بتعطل سر عمل البرنامج المنطق .. وهذا سمى ... أو خلل ف نتابجه ..

Code logic errors

..إن أغلب األخطاء ف عالم البرمجة من هذان الصنفان ألنه تم معالجته أثناء .. Syntax Errorوال همن اآلن

...وإال فلن عمل البرنامج أصال...البرمجة أنس حكمت أبو حمد

[email protected]

Page 90: PHP Advance 101 دورة

Error Handlingمقدمة عن

عبران قسمان ف عالم البرمجة ..إن هذان الصنفان(... Bugs)والتحري عن األخطاء والثغرات

غالبا ... External Errorإن الخطأ الواقع من جراء خصوصا اذا ..ما حدث تدمر ف سر عمل البرنامج

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

أن ..فال جب على المبرمج أن فترض ...البانات !دابما صححة ..عملة الربط مع قواعد البانات

أنس حكمت أبو حمد

[email protected]

Page 91: PHP Advance 101 دورة

Error Handlingمقدمة عن

فهدذا هدو Code logic errorsأما الخطدأ المتعلدق ب

هددو عدددم ..والسددبب فدد ذلددك * ... ^_المصددبة بددذاتها

أي صددعوبة تحدددد ..)معرفددة أددن وقددع الخطددأ بالتحدددد

وهددذا عكددس الخطددأ الندداتج عددن أمددر ( ... موقددع الخطددأ

هددو Code logic errorsهددذا الخطددأ ...خددارج

قدد تسدتطع ...الت مدن خاللهدا .. Bugsالمسبب لوجود

فدد ...أو السددطرة علدده ..اختددراق أي نظددام أو تدددمره

مددن هددذا ..لددذلك انتبدده ... حددال اسددتطعت الوصددول الدده

..النوع من األخطاء

أنس حكمت أبو حمد

[email protected]

Page 92: PHP Advance 101 دورة

Error Handlingمستوات األخطاء

تنقسم األخطاء الى ثالثة مستوات ... PHPف لغة ال

:وه

1 )E_NOTICE : وه األخطاء الصغرة والت ال

وهدف هذا المستوى هو .. توقف عمل البرنامج

مساعدتك على التعرف على أماكن وجود الثغرات أو

..األخطاء الممكنة ف الكود الخاص بك

NonFatal Error, Its Minor

أنس حكمت أبو حمد

[email protected]

Page 93: PHP Advance 101 دورة

Error Handlingمستوات األخطاء

2 )E_WARNING : وه األخطاء الت ال تؤثر

ولكن تخبرك بأن هنا .. على مخطط سر عمل الكود

.. خطأ مؤثر قد وقع

NonFatal Run time Error ...

..من األمثلة على ذلك

fopen(welcome.txt)

ف حال عدم وجود الملف المسمى ب

Welcome.txt ... فإنه سخرج لناWarning...

أنس حكمت أبو حمد

[email protected]

Page 94: PHP Advance 101 دورة

Error Handlingمستوات األخطاء

3 )E_ERROR : هذا النوع من األخطاء وقف التنفذ

...غر موجود ..مثل عملة استدعاء كالس ...للكود

على تقدم فانكشن سمى PHPتقوم ال

trigger_error() .. هذا الفانكشن سمح للوزر

وهذا الفانكشن ..بانشاء أخطابه الخاصة داخل السكربت

بامكانه تقدم ثالثة أنواع من األخطاء للمستخدمن

مكنهم من خاللها التحكم أو انشاء أخطابهم الخاصة ..

...وه

أنس حكمت أبو حمد

[email protected]

Page 95: PHP Advance 101 دورة

()trigger_error Error Handling

أوال :E_USER_ERROR : وهوFatal Error .. وهذااذا وقع هذا ..عن أنه سوف قوم باقاف تنفذ الكود

... الخطأ

ثانا :E_USER_WARNING : وهذاNonFatal ولكن سحدث خلل به ..أي لن وقف تنفذ البرنامج .... WARNINGوالخطأ سكون من نوع ..

ثالثا :E_USER_NOTICE : وهذا النوع هو الحالةوهذا الخطأ ال .. ()trigger_errorاالفتراضة للفانكشن اال -..وال ؤثر على مخطط التنفذ ..وقف تنفذ البرنامج

-ف حاالت معنة^____^اآلن لننطلق الى األمثلة

أنس حكمت أبو حمد

[email protected]

Page 96: PHP Advance 101 دورة

()trigger_error Error Handling

1مثال - - E_USER_NOTICE:

أنس حكمت أبو حمد

[email protected]

Page 97: PHP Advance 101 دورة

()trigger_error Error Handling

2مثال - - E_USER_WARNING:

أنس حكمت أبو حمد

[email protected]

Page 98: PHP Advance 101 دورة

()trigger_error Error Handling

3مثال - - E_USER_ERROR:

أنس حكمت أبو حمد

[email protected]

Page 99: PHP Advance 101 دورة

Error Handling trigger_error() &

set_error_handler

فدددددد هددددددذا المثدددددددال سنسددددددتخدم ان شدددددداء هللا دالددددددة اسدددددددمها : 4مثددددددال

set_error_handler هدددذه الدالدددة عرفهدددا المسدددتخدم حتدددى سدددتطع

أي ..التحكم باألخطاء عن طرق فانكشن قام ببنابه

Custom Fanction ... 2هدذه الدالدة تسدتقبل paramters .. األول هدو

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

:مثدددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددال

أنس حكمت أبو حمد

[email protected]

Page 100: PHP Advance 101 دورة

Error Handling trigger_error() &

set_error_handler

أنس حكمت أبو حمد

[email protected]

Page 101: PHP Advance 101 دورة

Error Handling trigger_error()

& set_error_handlerوقدددوم ..قمندددا بصدددناعة فانكشدددن خددداص بندددا ..فددد المثدددال السدددابق

وأضدا اسدتطعنا أن نوقدف تنفدذ ... بطباعة ما نحتداج مدن أخطداء عدددن طردددق اسدددتخدام الدالدددة Warningالكدددود مدددن وجدددود خطدددأ

die() ...واآلن شددددددددددددددددددددددددددددددددددددددددرح للمتغرددددددددددددددددددددددددددددددددددددددددات :وهذا المتغر حتوي على رقم الخطأ : errno$: أول متغر هو

..الددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددذي حدددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددث وهدذا المتغدر حتدوي علدى ندص الخطدأ : $ errstr: ثان متغر

. trigger_errorوهدددددددددددددددذا أخدددددددددددددددذه مدددددددددددددددن الدالدددددددددددددددة ..وهدددذا المتغدددر سدددقوم بطباعدددة امتدددداد : $ errfile: ثالدددث متغدددر

..الملددددف مددددع االسددددم الخدددداص بددددالملف الددددذي وقددددع بدددده الخطددددأوهددذا المتغددر سددحتوي رقددم السددطر : errLine$: ورابددع متغددر

....الدددددددددددددددددددددددددددددددددددددذي احتدددددددددددددددددددددددددددددددددددددوى الخطدددددددددددددددددددددددددددددددددددددأ وأن , أسماء المتغدرات هدذه مكدن تعددها كمدا تردد: مالحظة*(

ترتب األماكن كون حسب التسلسل الذي تم ذكره

أنس حكمت أبو حمد

[email protected]

Page 102: PHP Advance 101 دورة

Error Handling trigger_error()

& set_error_handler

فقددد احتددوت أوال set_error_handlerأمددا الدالددة

ومدن ثدم ندوع ... على اسم الفانكشن الذي قمندا ببنائده

.. الخطددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددأ

.... ثدددددددددددم أكلمندددددددددددا كمدددددددددددا باألمثلدددددددددددة السدددددددددددابقة

..والتطبق مهم جدا ..الحظ كف أن التسلسل مهم

^_____________________________^أنس حكمت أبو حمد

[email protected]

Page 103: PHP Advance 101 دورة

More Info About Error Handling

:لمزد من التفاصل حول موضوع األخطاء وأنواعها

http://php.net/manual/en/errorfunc.constants.php

^_^لنتابع ....ومن ثم

أنس حكمت أبو حمد

[email protected]

Page 104: PHP Advance 101 دورة

أنس حكمت أبو حمد

[email protected]

Page 105: PHP Advance 101 دورة

Error Handling E_ALL

E_ALL هددد تصدددنف حتدددوي علدددى جمدددع أندددواعتقوم باضافتها أندت -E_STRICTباستثناء -..االخطاء

... - PHP 5.4هدددذا الكدددالم قبدددل –بشدددكل ددددوي وهذا عند ..تحتوي جمع األخطاء .. E_ALLقلنا أن

أنده مكندك الدتحكم باألخطدداء التد ترغدب برؤتهددا أم ال .. E_ERRORوهدددددددددددددذا الحركدددددددددددددة ال تشدددددددددددددمل ..

هددذا الملددف حتددوي علددى .. PHP.iniهندداك ملددف اسددمه ودتم قرابتده أوال .. PHPاعدادات تشدغل ألي سدكربت

....قبل التنفذ..من جهة السرفر

أنس حكمت أبو حمد

[email protected]

Page 106: PHP Advance 101 دورة

Error Handling E_ALL & error_reporting

هذا .. error_reportingاعداد اسمه ...داخل هذا الملف االعداد وضع به ثابت أو مجموعة من الثوابت الت تقوم بمهمة

... E_ALL..تحدد نوع األخطاء الت ستعرض مثل

E_ALL :تعن جمع األخطاء

أو االعتمادة على المنطق (..| ) OR Bitwiseاشارة ال : |E_ERRORمثل | E_WARNING ...

مثل .. هذه االشارة تعن باستثناء : ^ E_ALL ^ E_NOTICE ...

. Fatal Errorباستثناء ال –هذا عن اخفاء جمع األخطاء : 0

....أمثلة أنس حكمت أبو حمد

[email protected]

Page 107: PHP Advance 101 دورة

Error Handling E_ALL & error_reporting

http://php.net/manual/en/function.error-reporting.php

أنس حكمت أبو حمد

[email protected]

Page 108: PHP Advance 101 دورة

Error Handlingالتعامل مع األخطاء

واآلن سنتلكم عن ..تكلمنا ف الشرابح السابقة عن األخطاءهناك .. PHPف ال ..طرقة معالجة أو التعامل مع هذه األخطاء

..أربعة خارات للتعامل مع األخطاء ..عرض الخطأ ( 1تسجل الخطأ( 2تجاهل الخطأ( 3...ومعالجته ..العمل بنابا على الخطأ ( 4

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

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

^_____^األمور شء مهم لتطور منتجاتك الرقمة

أنس حكمت أبو حمد

[email protected]

Page 109: PHP Advance 101 دورة

Error Handlingالتعامل مع األخطاء

عرض األخطاء( 1 عرض األخطاء من األمور المهمة جدا ألي مطور

ولذلك لنستطع , وذلك لستطع تتبع الخطأ ومعالجتهتفعل هذا الخار جب علنا الذهاب الى

display_errors داخل الPHP.ini .. ووضع الحالةon ( ...display_errors = on ... ) وطبعا تم

طبعا عند تفعل هذه ...)عرض األخطاء على المتصفحواال ستذهب الى ..الخاصة تم عرضها على المتصفح

Log file ... )ولكنها سبة ..هذه النقطة مفدة جدا للمطور ..طبعا

.. أضا ف بعض األحان

أنس حكمت أبو حمد

[email protected]

Page 110: PHP Advance 101 دورة

Error Handlingالتعامل مع األخطاء

عرض األخطاء( 1 أمر -End userلل –ان عرض األخطاء على الموقع

:والسبب ف ذلك ..سء جدا .. جعل من شكل الموقع سء ( 1وجعل المستخدم شعر بالخوف من استخدام هذا ( 2

-قلل من الموثوقة–الموقع كشف عن تفاصل خاصة بالكود ..ان عرض األخطاء ( 3

وهذا األمر قد ستغل من قبل األشخاص المخربن ... مثل الهكرز ...كان مصلح دل على أناس ماهرن : هكرز : مالحظة*(

لكن اآلن ..حتى تعالج ..تقنا سعون الى اكتشاف الثغرات ... المفهوم تغر وأصبح قصد به التخرب ف غالب االمر

أنس حكمت أبو حمد

[email protected]

Page 111: PHP Advance 101 دورة

Error Handlingالتعامل مع األخطاء

عرض األخطاء( 1 تكون عن طرق ..كثر من المواقع الت تم اختراقها

..ثغرات قع بها الكثرون من المطورن

display_errorsمثل ترك اعداد = on ..

أو وضع عملة الربط مع قواعد البانات ف نفس

..!الصفحة

أو السماح بعمل اتصال مع قواعد البانات بحث كون

NoLocal ...

هذه األمور كثرا ما تعط ثغرات ستطع اآلخرون

..انتبه لذلك !...من خاللها اختراق موقعك

أنس حكمت أبو حمد

[email protected]

Page 112: PHP Advance 101 دورة

Error Handlingالتعامل مع األخطاء

تسجل األخطاء( 2 مكنن تخزنه ...أي خطأ مكن أن حدث أو حدث

وهذا األمر .. syslogوعرضه من ملف خارج أو من وسهل عل تتبع األخطاء الت قد تحدث وبدون ...جد

معن fileألنه ستم حفظها داخل .. عرضها للمستخدمن .. syslogأو عرضها عن طرق

PHP.iniأوال الذهاب الى ..وطرقة تفعل هذا األمر log_errorsوعمل ال = On ... وهكذا تم تفعله

syslogوقلنا هناك طرقتن إما داخل ملف أو داخل ال ..ومكن تحدد ذلك عن طرق ...

error_log = /path/to/filename أوerror_log = syslog

أنس حكمت أبو حمد

[email protected]

Page 113: PHP Advance 101 دورة

Error Handlingالتعامل مع األخطاء

تسجل األخطاء( 2 Custom Log errorكف مكننا اضافة ..طبعا

كل ()trigger_errorمكننا ذلك أضا باستخدام ال ..ما علنا القام به هو كتابة اسم الخطأ لتم حفظه داخل

: مثل Logال trigger_error(“This First Log Error”)

أو ..اذا كان عندك الموقع على سرفر واحد ..اآلن فهذا .. Fileفاستخدم ال ..عمل على سرفر واحد

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

Syslog .

أنس حكمت أبو حمد

[email protected]

Page 114: PHP Advance 101 دورة

Error Handlingالتعامل مع األخطاء

تجاهل األخطاء( 3 ولكنندد أرغددب ..قددد تقددع بعددض األخطدداء ...فدد بعددض الحدداالت

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

خطددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددأ $fp = fopen($file, $mode); ... اذا مدا كدان الملدف موجدود

ولكددن ممكددن كددون موجددود وصددار .. Warning.رح عطنددا ..فممكدن أتجداهلوا ..وهذا أمر ممكدن أن حددث ..خطأ من السرفر

بهدددددددددذا الشدددددددددكل ...@ عدددددددددن طردددددددددق وضدددددددددع اشدددددددددارة ال $fp = @fopen($file, $mode); ... هندا سدتجاهل الخطدأ ...

مكنددددددددددددددك وضددددددددددددددع الخاصددددددددددددددة ... PHP.iniداخددددددددددددددل ال track_errors = On وهدذا سددحفظ أخددر خطدأ داخددل متغددر

...@حتددددى ولددددو قمددددت باسددددتخدام php_errormsg$اسددددمه ^_^

أنس حكمت أبو حمد

[email protected]

Page 115: PHP Advance 101 دورة

Error Handlingالتعامل مع األخطاء

التعامل مع األخطاء( 4 انظدر الدى : )انظدر الدى هدذا المثدال ..أدن ..^_^لقد تدم شدرح طرقدة التعامدل مدع األخطداء

Error Handling trigger_error() & set_error_handlerموضوع

أنس حكمت أبو حمد

[email protected]

Page 116: PHP Advance 101 دورة

أنس حكمت أبو حمد

[email protected]

Page 117: PHP Advance 101 دورة

Handling External Errors

Handlingف الحققة لس ...جمع ما تكلمنا عنه سابقا

Errors .. والسبب ف ذلك هو أننا فقط .. !!! بشكل فعل

ولكن هل ..أو تعلمنا أنواع األخطاء ..قمنا بقرابة األخطاء

قمنا باستغالل هذه المعرفة فعلا ف تغر مخطط سر

... الجواب ال ..حتى نتحاشى هذه األخطاء ؟ ..الكود مثال

لذلك سننتقل اآلن الى المرحلة الثانة وه

Handling External Errors ... وبما أننا نعلم

ومقدار الضرر أو التأثر على ..األخطاء تصنفاتها

أن نتعلم كف مكننا تفادي وقوع ...علنا اآلن ... الكود

^____^لنبدأ ... مثل هذه األخطاء

أنس حكمت أبو حمد

[email protected]

Page 118: PHP Advance 101 دورة

Handling External Errors

ستم طرح مثال ..لتوضح الفكرة من هذا الموضوع

نكون قد ..وستم السر بنابا عله حتى نصل لمرحلة ..

؛:,:؛:,:؛:ها بنا ..أخذنا جمع االحتماالت الممكنة

أنس حكمت أبو حمد

[email protected]

Page 119: PHP Advance 101 دورة

Handling External Errors

1 )

أنس حكمت أبو حمد

[email protected]

Page 120: PHP Advance 101 دورة

Handling External Errors

مع احتمالة ..نتابج تطبق المثال السابق ( أ( 1

سأقوم باستدعاء ال ..من تنفذ الكود ...األخطاء الناتجة

function عن طرق هذه الجملة

أنس حكمت أبو حمد

[email protected]

Page 121: PHP Advance 101 دورة

Handling External Errors

( ب( 1

أنس حكمت أبو حمد

[email protected]

Page 122: PHP Advance 101 دورة

Handling External Errors

كف أنه اذا لم تقم ..لقد رأت من تطبق المثال السابق

وكف ه ..بتوقع بعض األخطاء ماذا مكن أن حدث

لذلك لنقوم ....وحتى صعوبة اجاد الخطأ ..النتابج

^^... بتطور هذا الكود قلال

*^__________.... 2للنطلق الى

أنس حكمت أبو حمد

[email protected]

Page 123: PHP Advance 101 دورة

Handling External Errors... شكل الكود بعد اضافة جملة شرط ..الجزء الثان ( 2

>--* _*نتجة تطبق هذا المثال ..لنرى معا أنس حكمت أبو حمد

[email protected]

Page 124: PHP Advance 101 دورة

Handling External Errors

2 )

أنس حكمت أبو حمد

[email protected]

Page 125: PHP Advance 101 دورة

Handling External Errorsبحث تتفادى األخطاء قدر ..ترتب الكود : الجزء الثالث ( 3

ف ---الحظ النتجة ...بأقل مجهود ممكن ..االمكان

^^بعد قرابة الكالم ال الصورة ..الشرحة التالة

أنس حكمت أبو حمد

[email protected]

Page 126: PHP Advance 101 دورة

Handling External Errors

3 )

أنس حكمت أبو حمد

[email protected]

Page 127: PHP Advance 101 دورة

Handling External Errors

وهو بالغالب ..من األمور الجملة ف التعامل مع األخطاء وهو ارجاع ..ما تم التعامل به بن المبرمجن المحترفن

مثل ...ولس على شكل نص ..الخطأ على شكل رقم

وخصوصا عندما كون هناك ..هذا الشكل فضل استخدامه -طبعا الرقم –تداخل كثر أو امكانة حدوث أخطاء كثرة

–مش ثابت هذا رقم متغر حسب الخطأ انت بتعرفوا 1وهذا األسلوب مكننا التحكم به كمثال والحظ كف

-المثال توضح–سصبح شكل الكود

أنس حكمت أبو حمد

[email protected]

Page 128: PHP Advance 101 دورة

Handling External Errors

حتى نستطع اظهاره ...ستم تقطع الكود الى جزبن

..بشكل واضح ف الشرابح

أنس حكمت أبو حمد

[email protected]

Page 129: PHP Advance 101 دورة

Handling External Errors

قمنا بوضع ..من ارجاع الخطأ على شكل نص ..بدال

ستسهل علنا عملة ..وهذه الحركة البسطة ... 1-..

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

-شرح المثال ف الشرحة التالة-...التعامل معه

أنس حكمت أبو حمد

[email protected]

Page 130: PHP Advance 101 دورة

Handling External Errors

.. result$هل المتغر ..قمنا أوال بالتحقق ...ف هذا المثال أن البانات الت ..والسبب ف ذلك ..حتوي مصفوفة

سترجع ف المثال هذا ان طبق بشكل صحح هو مصفوفة اذا نعم اطبع رسالة الترحب مع محتوات هذه ...

عن هذا ناتج من ماذا ؟؟؟ 0واذا كان الناتج ...المصفوفة ول ه بتمثل ...عن انو انتهى الدوران وما لقى اش

return false; ... 1-طب والحالة الثالثة ؟ وال ه ألن كل ... elseهاي الحالة تم وضعها داخل جملة ال ..

... أخطاء 3هذا المثال ال وجد به احتمالة الى لوقوع انظر المثال ..؟؟ ..اذن ستقول لماذا لم أستخدم النص

.... التال

أنس حكمت أبو حمد

[email protected]

Page 131: PHP Advance 101 دورة

Handling External Errors

أنس حكمت أبو حمد

[email protected]

Page 132: PHP Advance 101 دورة

Handling External Errors

.. PHPداخل مجلد اسمه ..لقد قمت بنسخ المثال بشكله الصحح ...^____^ .... 1داخل مجلد سمى

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

... وبأقل وقت وأكثر جودة ..طرقة ممكنة

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

عن طرق صدقنا المعروف ... PHP 5طرحته ال ..الجواب try, catch, finally ... ^_^ والت تسمىExceptions

أنس حكمت أبو حمد

[email protected]

Page 133: PHP Advance 101 دورة

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

اقرأ باسم ربك الذي خلق، خلق اإلنسان من علق، اقرأ )

(وربك األكرم الذي علم بالقلم، علم اإلنسان ما لم علم

صدق هللا العظم

من سلك طرقا لتمس فه : )قول صلى هللا عله وسلم

(.مسلم( )علما ، سهل هللا له به طرقا إلى الجنة

أنس حكمت أبو حمد

[email protected]

Page 134: PHP Advance 101 دورة

Exceptions

عبارة عن آلة رابعة للتحكم باألخطاء Exceptionsال ووسلة رابعة لحل المشكالت الت قد تنتج عن ..وادارتها

...طرق أي خطأ غر متوقع Exceptionsكلمات مفتاحة ربسة لتستخدم ال 3هناك وه

1 )Try : أقوم ف هذا البلوك بوضع الكود الذي حتمل أن( ال بتوقع انو صر ف خطأ)قع به الخطأ

2 )Catch : وف هذا البلوك تم وضع الحل لمعالجة...أو ما أرد أن حدث ان حصل خطأ ما ..الخطأ

3 )Finally : ف هذا البلوك أقوم بوضع الكود الذي أرده( PHP 5.5) حصل خطأ أم ال ..أن نفذ بجمع األحوال

أنس حكمت أبو حمد

[email protected]

Page 135: PHP Advance 101 دورة

Exceptions

http://php.net/manual/en/language.exceptions.php

أنس حكمت أبو حمد

[email protected]

Page 136: PHP Advance 101 دورة

Data Validation

وه ال تثق أبدا ..هناك قاعدة ربسة عندنا بالبرمجة

وعن هذا أنك حن تقوم ببرمجة ... بالمستخدمن

ااك أن تثق ..وستستقبل منه باناتت ..موقع معن مثال

ه ..وااك أن تثق أن البانات الت سدخلها ..به

...بالضرورة صححة أو لست خبثة

Data Validationوجد هناك شء سمى ..لذلك

أو تجردها ..أي التحقق من صحة البانات المدخلة

...وفحصها لحماة الموقع من أي بانات ضارة

...الى قسمن Validationقسم ال

أنس حكمت أبو حمد

[email protected]

Page 137: PHP Advance 101 دورة

Data Validation

1 )Client Side Validation : وه عملات التحقق

–على أجهزتهم –الت تتم على صعد المستخدمن

JSوكون هذا عن طرق ال ... ولس على السرفر

...ومكاتبها غالبا

2 )Server Side Validation : وهنا تم التحقق من

أي أنها ... وهذا مهم جدا..البانات على صعد السرفر

عملة التحقق من البانات قبل القام بالعملات األساسة

..أو المطلوبة ألي عمل

أنس حكمت أبو حمد

[email protected]

Page 138: PHP Advance 101 دورة

Data Validation

مفد جددا لتالفد وقدوع ... Client Side Validtionان ال مثل بدال مدن ..األخطاء الغر مقصودة من قبل المستخدمن

فهددو سدداعد ...الددخ..أن كتددب عمددره باألرقددام أدخددل حددرف المسدددخدم علدددى التأكدددد أن المعلومدددات التددد قدددام بادخالهدددا

قبددل مددا تددروح المعلومددات -..فدد ذات الوقددت ...صددححة .. -علددددددددددددددددددددددددددددددى السددددددددددددددددددددددددددددددرفر وترجددددددددددددددددددددددددددددددع

وهدددذه ان اعتمددددت ... والكدددن هدددذا األمدددر لوحدددده ال كفددد فتأكددد أن موقعددك أسددهل ..كأسددلوب للحماددة بدددون السددرفر

جددرب أكتددب كددود بعتمددد علددى هددذا ....^^موقددع للمخددربن Disableوبعد ذلك قم بالضغط علدى ... النوع من التحقق

js وانظر ماذا سحدث لحماتك...الموجودة بأي متصفح..

أنس حكمت أبو حمد

[email protected]

Page 139: PHP Advance 101 دورة

Data Validation

األول ...أقوم بوضع نوعن من الحماة ..بالنسبة ل

وبهذا ...من جهة المستخدم والثانة من جهة السرفر

أكون قد ضمنت تالف األخطاء الغر المقصودة من

المستخدمن أو مساعدتهم على االختار

وأضا قمت بحماة السرفر من األخطاء ...الصحح

...المقصودة قدر االمكان

سأتكلم اآلن عن بعض اآللات البسطة لحماة المواقع

^_____^..من أكثر المخربن

أنس حكمت أبو حمد

[email protected]

Page 140: PHP Advance 101 دورة

Data Validation

هناك الكثر من األمور البسطة والت قد ال نلق لها باال

وتكون من أكثر األمور الت ستخدمها المخربن ...

وسنتلكم عن أهم األمور للحماة من هذه األمور ..

...أو حقن المواقع injectionوخصوصا ال

^____________________^لنبدأ معا

أنس حكمت أبو حمد

[email protected]

Page 141: PHP Advance 101 دورة

Data Validation

$_SERVER["PHP_SELF"]قد نحتاج استخدام ..كثرا من األحان

$_SERVER["PHP_SELF"] هذه عبارة عنSuper Global variable ... وه تعد لنا اسم

وكثرا ما نراها ف .. الصفحة ال متواجد فها حالا ...ولكن ما عالقة هذه بالمخربن ؟ .. actionال

عن actionنحن نستخدم هذا المتغر كما قلنا ف ال الى ..الرسال البانات الت تم تعببتها مثال بفورم معا

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

...لنشاهد مثال على هذه العملة -...هذا كمثال

أنس حكمت أبو حمد

[email protected]

Page 142: PHP Advance 101 دورة

Data Validation

$_SERVER["PHP_SELF"]

هل هناك أي خطر معن قد صبنا ...أعد النظر ؟ .. ما رأك بهذا الفورم البسط ؟ ...لو قمت بسؤالك

.... من هذا الكود ؟

والسبب هو استخدام...وال تتعجب من ذلك ...هذا الكود عرضة للتخرب بسهولة .... الجواب هو نعم

$_SERVER["PHP_SELF"] ... ؟؟ ... ولكن كف ...بالتخرب ..هذه ستسمح للمخربن

ومن ثم ... /عن طرق اضفافة ...أو المخربن بمعنى أدق ..هذا المتغر مكن ان ستخدمه الهاكر

...لنتابع ... XSSكتابة كود

أنس حكمت أبو حمد

[email protected]

Page 143: PHP Advance 101 دورة

Data Validation

$_SERVER["PHP_SELF"]XSS هد اختصدار لCross-site scripting .. وهدو أحدد

أنددواع الضددعف التدد تتواجددد ولألسددف عددادة فدد تطبقددات Client Sideوهد تمكدن المخدربن علدى حقدن ...الودب Script ... ومدددن خدددالل ذلدددك دددتم عدددرض مدددا حقدددن الدددى

...مسدددددددددددددددددددددددددددددددددددددددددددددددددتخدمن آخدددددددددددددددددددددددددددددددددددددددددددددددددرن اآلن مددددددددددددددا عالقددددددددددددددة هددددددددددددددذا الموضددددددددددددددوع بددددددددددددددال

$_SERVER["PHP_SELF"] ... ان األمدددددددددددر بسدددددددددددطالذي تم عرضده –ف الفورم السابق ...لنتسلسل اآلن قلال ..

لددددو افترضددددنا أن اسددددم الصددددفحة هددددو -بالشددددرحة السددددابقةtest.php فدددددددددددإن فددددددددددد الAction سدددددددددددكون هدددددددددددو

Action=“test.php” ... لنقدددددوم ..وبعدددددد هدددددذه العملدددددة.....مثل ...ف الرابط XSSباضافة

أنس حكمت أبو حمد

[email protected]

Page 144: PHP Advance 101 دورة

Data Validation

$_SERVER["PHP_SELF"]الخاص بك URLالى ال XSSلو قمت باضافة هذه ال

%22%3E%3Cscript%3Ealert('Anees Hacked You')%3C/script%3E

: لتصبح بالشكل التال

ان الذي سحدث هو اخراج !! ...... ماذا سحدث ؟؟؟

لن هذا الذي كتب ...رسالة مكتوب فها لقد اخترقت

<script>alert(“…”)</script>سترجم الى ..

سترى ..وبهذا بمجرد ضغطك على انتر على هذا الرابط

..الحظ شاشة المخرجات ...ذلك

أنس حكمت أبو حمد

[email protected]

Page 145: PHP Advance 101 دورة

Data Validation

$_SERVER["PHP_SELF"]

...ماذا بعد ذلك ؟ أنس حكمت أبو حمد

[email protected]

Page 146: PHP Advance 101 دورة

Data Validation

$_SERVER["PHP_SELF"]ال تكمددن خطددورة هددذا النددوع مددن اخددراج هددذه الرسددالة

ولكدن مداذا مكنند ... ولكن هذا كان لتوضدح المثدال ..مكن تضدمن أي سدكربت داخلهدا مثدل اندك ..أن أصنع

للمسددددتخدمن علددددى ملددددف آخددددر ... redirectتعمددددل وهذا الملدف ممكدن أن حتدوي ..موجود خارج السرفر

وحظها .. أكواد خبثة أو انو وخذ معلومات المستخدم ...الددددددددددددددددددددددددددددددددددددددددددددددددددخ ...عندددددددددددددددددددددددددددددددددددددددددددددددددددو

إذن ... له أهمة ف عالمنا كوب ..اذن فهذا الموضوع ...ما الحل بعد كل هذا الكالم ؟

أنس حكمت أبو حمد

[email protected]

Page 147: PHP Advance 101 دورة

Data Validation $_SERVER["PHP_SELF"] &

using htmlspecialchars

Htmlspecialchars هذه دالة تقوم على تحول الرموز

Htmlالى ... أو الجافا سكربت htmlالخاصة بال

entits , وهذا عن عملة منع للمخربن من استخدام

فستقوم هذه الدالة ..ألنه حتى ولو قام بالحقن ..الحقن

الحظ شكل الفورم كف سصبح ....بتحولها الى رموز

>>>>---النتابج أنس حكمت أبو حمد

[email protected]

Page 148: PHP Advance 101 دورة

Data Validation $_SERVER["PHP_SELF"] &

using htmlspecialchars

الجواب قلنا انه ..بعد استخدام هذه الدالة ..أنت تتسابل لماذا لم تظهر ..من الطبع

بحث سصبح ال ..بالتحول

XSS الذي قام بوضعه على هذا الشكل:

&quot;&gt;&lt;script&gt;alert(„Anees hacked you')&lt;/script&gt;

أنس حكمت أبو حمد ^_____^... أن تكون الفكرة قد وصلت ..أتمنى من هللا تعالى

[email protected]

Page 149: PHP Advance 101 دورة

Data Validation htmlspecialchars

فقم باستخدامها مع هذه ..بعد ان تعرفت على هذه الدالة

وأضا قم ...وهذا أمر مهم جدا ...دابما ...الحالة

بتصر من Inputباستخدام هذه الدالة مع أي عملة

قبل ..اجعلها حابط الصد األول لك ... طرف المستخدم

قبل ما ..ما ما دخل على قاعدة البانات او تعمل شرط

تعمل أي عملة على السرفر استخدمها لتحم

معلومات وتحم موقعك وتحم المستخدمن الذن

...واآلن لننطلق الى حماة أخرى ... عندك

أنس حكمت أبو حمد

[email protected]

Page 150: PHP Advance 101 دورة

Data Validation Using Trim &

stripslashesTrim هذه الدالة مكدن أن تسدتخدم لحدذف السدطور أو الفراغدات أوtab وتدددم ادخالهدددا مدددن قبدددل ..أو الددد مدددش محتاجنهدددا ..الزابددددة

..المسدددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددتخدم الموجدددودة بدددأي عملدددة \تسدددتخدم لحدددذف ال stripslashesوال

...ادخدددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددال

..بهدددددداتن العملتددددددن باالضددددددافة الددددددى الدالددددددة السددددددابقة Htmlspecialchars مكننددددا حماددددة الموقددددع الخدددداص بنددددا مددددن

المتعمدة من قبل المخربن....عملات التخرب

تددذكر أن التقنددات تتطددور ...طبعددا هددذا ال عندد حماددة مطلقددة **( ... واألشددخاص تطددورون وأسددالبهم تتطددور ..والعلددم تطددور ...

...لكن هناك أمور أساسة جب اتباعها حتى ترتق أنت بالدفاع

..لنقوم بتطبق مثال باستخدام هذه الخصابص مجتمعة ... واآلن أنس حكمت أبو حمد

[email protected]

Page 151: PHP Advance 101 دورة

Data Validation Using Trim &

stripslashes & htmlspeialchars in function test for post data …

أنس حكمت أبو حمد

[email protected]

Page 152: PHP Advance 101 دورة

Data Validation Using Trim &

stripslashes & htmlspeialchars in function test for post data …

أو تصددفة مددا تددم ادخالدده ..فددإن قمددت بتشددفة ...اذا الحظدت

وكدان .. و لدم أخدذه علدى محمدل الثقدة ...من قبدل المسدتخدم

فد ال htmlspeialcharsأول خطوة هد اسدتخدام

action ومدددن ثدددم قمندددا باسدددتخدام ال ...الخددداص بدددالفورم

$_SERVER["REQUEST_METHOD"]

قد حدثت ونوعها هو Submittedلنتأكد أن عملة ال

POST ... وبعد ذلك أخذنا كل قمة وارسدلناها لدالدة تقدوم

\الدخ ومدن ثدم حدذف ال ..على حذف الفراغات أو األسدطر

وارجداع ..الخاصدة htmlومن ثم تصفتها مدن رمدوز ال

^__^اسلوب سهل ...القمة وحفظها داخل متغر أنس حكمت أبو حمد

[email protected]

Page 153: PHP Advance 101 دورة

أعوذ باهلل من الشطان الرجم

آمددن الرسددول بمددا أنددزل إلدده مددن ربدده والمامنددون كددل آمددن بدداهلل )

مدن رسدله وقدالوا سدمعنا ومالئكته وكتبه ورسله ال نفدرق بدن أحدد

ال كلدف هللا نفسدا إال ( 285) وأطعنا غفرانك ربندا وإلدك المصدر

وسعها لها ما كسبت وعلهدا مدا اكتسدبت ربندا ال تااخدذنا إن نسدنا

وال تحمل علنا إصرا كما حملته على الذن من قبلنا أو أخطأنا ربنا

لندا وارحمندا ربنا وال تحملندا مدا ال طاقدة لندا بده واعدف عندا واغفدر

( ( 286) أنت موالنا فانصرنا على القوم الكافرن

صدق هللا العظم

أنس حكمت أبو حمد

[email protected]

Page 154: PHP Advance 101 دورة

Data Validation تأكد من أن البانات الت تم

ادخالها جمعا ه من الخارات المتاحةانظر ..تأكد من خاراتك ... نعم ال تتعجب من العنوان

...ومن ثم أعطن رأك به ...الى هذا الفورم

أنس حكمت أبو حمد

[email protected]

Page 155: PHP Advance 101 دورة

Data Validation تأكد من أن البانات الت تمادخالها جمعا ه من الخارات المتاحة

أنس حكمت أبو حمد

[email protected]

Page 156: PHP Advance 101 دورة

Data Validation تأكد من أن البانات الت تمادخالها جمعا ه من الخارات المتاحة

أنس حكمت أبو حمد

[email protected]

Page 157: PHP Advance 101 دورة

Data Validation تأكد من أن البانات الت تمادخالها جمعا ه من الخارات المتاحة

وهو باضافة كود ... ان الحل لمثل هذا النوع بسط

تحقق من الخارات هذه قبل ادخالها مثال الى قاعدة

وان كانت هذه ... البانات أو قبل التعامل معها

فعند جلبك لها قم ..الخارات مخزنة بقاعدة البانات

Submitوبعد عملة ال ...بتخزنها بداخل مصفوفة

تأكد أن الخار الذي تم اختاره موجود ف المصفوفة

^_^لنرى ذلك على مثالنا ... ^___^

^__________^انظر الشرحة التالة

أنس حكمت أبو حمد

[email protected]

Page 158: PHP Advance 101 دورة

Data Validation تأكد من أن البانات الت تمادخالها جمعا ه من الخارات المتاحة

...^_^ وأتوقع أنك لم تكن تعرها اهتماما ... نكون قد انتهنا من هذه النقطة ..وبهذا

أنس حكمت أبو حمد ...... واآلن لنرى أضا أمور جب التحقق منها

[email protected]

Page 159: PHP Advance 101 دورة

لكن المأساة حنما ، مكننا ان نغفر لطفل خاف الظالم

خاف الرجال من النور

إن ألذ طعام بعد جوع و أعذب ماء بعد ظمأ و أهنأ وم

.بعد تعب و أجمل نجاح بعد تضحة

أنس حكمت أبو حمد

[email protected]

Page 160: PHP Advance 101 دورة

Data Validation -Filters in PHP-

تعتمد على ...ان أكثر التطبقات الموجودة على الوب

أو بنابا ... معلومات تم ادخالها من قبل المستخدمن

... على تفاعل المستخدمن مع التطبق أو النظام

وبذلك ظهرت أهمة التحقق وهو من أهم األمور

... لحماة موقعك من التخرب

ما هو ...Filtersوجد هناك شء سمى PHPف ال

هذا ما سنتكلم عنه بإذن هللا ... وماذا فعل Filtersال

* $______ها بنا ....^^ف هذا الموضوع

أنس حكمت أبو حمد

[email protected]

Page 161: PHP Advance 101 دورة

Data Validation -Filters in PHP-

عبارة عن مجموعة من الدوال تستخدم للتأكد بأن جمع filtersالونحن هندا ندتكلم ...ه بانات صححة ..البانات الت قمنا بجلبها

:مثل ... External Dataعن البانات القادمة من الخارج

...Formالبانددددددددددددددددددددددددددددات القادمددددددددددددددددددددددددددددة مددددددددددددددددددددددددددددن ( 1الكددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددوكز( 23 )Web Service

...SQLأوامدددددددددددددددددددددددددر االسدددددددددددددددددددددددددتعالم بلغدددددددددددددددددددددددددة ال ( 4المتغددددرات التدددد ددددتم اسددددتخدامها علددددى مسددددتوى السددددرفر( 5

لددنقم بشددرح أهددم الدددوال ... ^^ واآلن بعددد التعرددف بهددذا الفلتددر ^_^وطرق استخدامها ..الخاصة به

أنس حكمت أبو حمد

[email protected]

Page 162: PHP Advance 101 دورة

Data Validation -Filters function in PHP-

filter_has_var(type,var) تستخدم هذه الدالة لتحقق من أن هذا المتغر موجود أم ال

.... ^_^وهو ستقبل قمتان واالثنتان مطلوبتان ..وه تحتوي على نوع المتغر الذي سأقوم : typeاألولى

:باستخدام .. بالتحقق منه INPUT_GET

INPUT_POST

INPUT_COOKIE

INPUT_SERVER

INPUT_ENV

....وهو اسم المتغر ال بدي أتحقق منو : varوالثانة

اما ...تقوم هذه الدالة على ارجاع قمتان True, or False

^_^لنرى مثال أنس حكمت أبو حمد

[email protected]

Page 163: PHP Advance 101 دورة

Data Validation -Filters function in PHP-

filter_has_var(type,var)

أنس حكمت أبو حمد

[email protected]

Page 164: PHP Advance 101 دورة

Data Validation -Filters function in PHP-

filter_input(type,var,filter,option)تستخدم هذه الدالة لتأكد من أن البانات القادمة من مصدر خارج

ف Falseأو trueهذه الدالة تقوم على ارجاع ...مثل الفورم أي ال حقق معار السالمة –أو خطأ nullحالة كان المتغر

*_*- ...الثالثة األولى الزامة واألخرة ..خارات 4هذا المتغر ستقبل

...اختارة 1 )type :

INPUT_GET, INPUT_POST INPUT_COOKIE, INPUT_ENV

INPUT_SERVER, INPUT_SESSION INPUT_REQUEST

2013\10\18ال باللون األخضر لم نفذ بعد حتى تارخ –^_^...-

أنس حكمت أبو حمد

[email protected]

Page 165: PHP Advance 101 دورة

Data Validation -Filters function in PHP-

filter_input(type,var,filter,option)

2 )Var : اسم المتغر ال بدي أتأكد من صحته..

3 )Filter : هنا تقوم بوضع اسم الفلتر أو رفم الid

خاص به مكنك idلكل فلتر : مالحظة –... للفلتر

استعراضه عن طرق الدالة

filter_id(filter_name)–

^_______^اآلن لنرى مثال

أنس حكمت أبو حمد

[email protected]

Page 166: PHP Advance 101 دورة

Data Validation -Filters in function PHP-

filter_input(type,var,filter,option)

php.4هذا المثال ف الصفحة

أنس حكمت أبو حمد

[email protected]

Page 167: PHP Advance 101 دورة

Data Validation -Filters in function PHP-

filter_input_array(type, filter_args)

نفس اسم الدالدة السدابقة مضدافا ...هذه الدالة اذا الحظت

أي ..تقددوم بددنفس الوظفددة ..وهدد بددذلك ... arrayلهددا

وكلدن لدس فقدط ..استقبال البانات مدن مصددر خدارج

وانمدددا مكندددك اسدددتخدامها ألكثدددر مدددن ..لعنصدددر واحدددد

تسدددتقبل هدددذه الدالدددة قمتدددان ... عنصدددر فددد آن واحدددد

لنددرى . filter_argsوالثانددة هدد typeاألولددى هدد ..

... مثال عمل

أنس حكمت أبو حمد

[email protected]

Page 168: PHP Advance 101 دورة

Data Validation -Filters function in PHP-

filter_input_array(type, filter_args)

php.5المثال كامل موجود بالصفحة

أنس حكمت أبو حمد

[email protected]

Page 169: PHP Advance 101 دورة

Data Validation -Filters function in PHP-

filter_input_array(type, filter_args)

php.5المثال كامل موجود بالصفحة

أنس حكمت أبو حمد

[email protected]

Page 170: PHP Advance 101 دورة

Data Validation -Filters function in PHP-

filter_var(var,filter,option)

, هذه الدالة تقوم أضا على فحص والتحقق مدن الباندات

انها تفحص البانات الموجودة داخل ...ولكن أي بانات

ولددس الباندات القادمددة مدن الخددارج مثددل ... المتغدرات

أمددددا ... الخددددار األول الزامدددد ... ()filter_inputال

....فهددددددددددددددم اختدددددددددددددداري ...الثددددددددددددددان والثالددددددددددددددث

...ددددددددتم وضددددددددع المتغددددددددر المددددددددراد فحصدددددددده أوال

...للفلتدددر أو اسدددمه idثدددم بامكدددان وضدددع رقدددم ال

ممكددن احدددد خصددابص معنددة لهددذا الفلتددر ..وبعددد ذلددك

... 120وأكثر اش 1مثل مثال العمر اقل اش ..

أنس حكمت أبو حمد

[email protected]

Page 171: PHP Advance 101 دورة

Data Validation -Filters function in PHP-

filter_var(var,filter,option)

php.6ستجد المثال بالصفحة

أنس حكمت أبو حمد

[email protected]

Page 172: PHP Advance 101 دورة

Data Validation -Filters function in PHP-

filter_var_array(array, args)

هذه الدالة تشبه نفس السابقة لكنها تستقبل مصفوفة بدال

.... من متغر واحد

...العنصر األول هو مصفوفة وه اجبارة

والثان مجموعة من الخارات او االضافات وه

...اختارة

^_^لنرى مثاال علها

أنس حكمت أبو حمد

[email protected]

Page 173: PHP Advance 101 دورة

Data Validation -Filters function in PHP-

filter_var_array(array, args)

أنس حكمت أبو حمد

[email protected]

Page 174: PHP Advance 101 دورة

Data Validation -Filters function in PHP-

filter_id()

ولكن سنقوم بتوضحها ..قمنا بشرح هذه الدالة من قبل

...اآلن

مكنن أن ... خاص به idلكل فلتر موجود رقم

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

...أستعض عنه

:مثال

هذا الرقم مكنك استخدامه مكان االسم... 273الناتج الذي سظهر هنا هو

أنس حكمت أبو حمد

[email protected]

Page 175: PHP Advance 101 دورة

Data Validation -Filters function in PHP-

filter_list()

تستخدم هذه الدالة لطباعة جمع الفلتر الت مكن

....استخدامها

: مثال

نتابج تطبق

المثال

idه لست أرقام ال ...األرقام الظاهرة عند تطبق المثال : مالحظة

...وانما ه ترتبها بالطباعة فقط ... الخاصة بالفلتر

أنس حكمت أبو حمد

[email protected]

Page 176: PHP Advance 101 دورة

Data Validation Filters function inPHP

فقددد تكلمندا عددن اسددلوب رابددع ... كمدا الحظنددا أصدددقاب

هددذه الفانكشددن تتددح لددك ...وسددهل للتحقددق مددن البانددات

وهددذه الخددارات ... للتحقددق والفلتددرة ...خددارات كثددرة

نحددن مددا تكلمنددا ... filterتددأت مددن اسددتخدام بعددض ال

واآلن لنرى ... Filters functionعنه هو استخدام ال

..كف مكننا استخدام الفلتدر داخدل هدذه الفلتدر فانكشدن

الدد تددم ذكددره سددابقا 120الددى 1مثددل مثددال العمددر مددن

قصدددددي الددددى ...اآلن لننطلددددق معددددا لكوكددددب بلوتددددو ...

*^_____الموضوع الجدد

أنس حكمت أبو حمد

[email protected]

Page 177: PHP Advance 101 دورة

كان آخر دعاء عمر رض هللا عنه ف :خطبته

اللهم ال تدعن ف غمرة ، وال تأخذن ف .غرة ، وال تجعلن مع الغافلن

أنس حكمت أبو حمد

[email protected]

Page 178: PHP Advance 101 دورة

Data Validation -Filters in PHP-

Filter Nameالوصف

الفلتر قوم على استدعاء فانكشن معن أنا هذا

وستخدمه.. PHPقمت ببنابه أو موجود داخل ال

FILTER_CALLBACK

الفلتر قوم على تشفر أو اقتتطاع أي جزء هذا

..من األحرف الغر مرغوب بها

FILTER_SANITIZE_STRING

بحث قوم ... هذا الفلتر شبه بعمله الفلتر السابق

على تشفر أو اقتطاع األحرف الغر مرغوبة

FILTER_SANITIZE_STRIPPED

URLFILTER_SANITIZE_ENCODEDهذا الفلتر قوم على اقتتطاع أو تشفر ال

هذا الفلتر لتخلص من الرموز الخاصة ستخدم

ف األسك كود 32والت تحتل األرقام األفل من

FILTER_SANITIZE_SPECIAL_CHARS

هذا الفلتر على حذف أي شء من رموز قوم

الخ من االمل ..خاصة أو أحرف الغر صححة

FILTER_SANITIZE_EMAIL

هذا الفلتر على حذف جمع الحروف الت ال قوم

...urlتستخدم داخل ال

FILTER_SANITIZE_URL

الى ^_^ قوم هذا الفلتر على حذف كل شء

.... -أو + األرقام واشارت

FILTER_SANITIZE_NUMBER_INT

أنس حكمت أبو حمد

[email protected]

Page 179: PHP Advance 101 دورة

Data Validation -Filters in PHP-

Filter Nameالوصف

أو –أو + باالضافة الى هذا الفلتر سمح لألرقام

^_^حسب الخار الذي سضاف الى الفلتر

FILTER_SANITIZE_NUMBER_FLOAT

String الى ال \قوم هذا الفلتر على اضافة

or „خلف كل من .. “ or \ or null

FILTER_SANITIZE_MAGIC_QUOTES

الفلتر قوم على تصفة البانات ومن ثم هذا

تبع....التحقق هل هذا رقم صحح أم ال

FILTER_VALIDATE_INT

صحح أو خطأ ف هذا الفلتر قوم على ارجاع

^_^تبع : .... الحاالت التالة

FILTER_VALIDATE_BOOLEAN

البانات هذا الفلتر مكنه استقبال والتأكد من ان

..ه أرقام وستطع اسقبال رقم عشري

FILTER_VALIDATE_FLOAT

هذا الفلتر مكنن من وضع الشرط الخاص ب

تبع... regExpبصغة

FILTER_VALIDATE_REGEXP

قوم هذا الفلتر على التأكد من أن المتغر هو

تبع.... URLعبارة عن

FILTER_VALIDATE_URL

FILTER_VALIDATE_EMAIL...هذا الفلتر قوم على التحقق من االمل

FILTER_VALIDATE_IPتبع... IPقوم هذا الفلتر بالتحقق من ال

أنس حكمت أبو حمد

[email protected]

Page 180: PHP Advance 101 دورة

Data Validation -Filters in PHP-

FILTER_CALLBACKهذا الفلتر قوم على استدعاء فانكشن معن أنا قمت

...وستخدمه .. PHPببنابه أو موجود داخل ال

: مثال

php.8هذا المثال موجود بالصفحة

أنس حكمت أبو حمد

[email protected]

Page 181: PHP Advance 101 دورة

Data Validation -Filters in PHP-

FILTER_SANITIZE_STRING

هذا الفلتر قوم على تشفر أو اقتتطاع أي جزء من

....األحرف الغر مرغوب بها

ألي جزء ال ترد أن تم ..كون هذا النوع مفد جدا

..ادخاله الى التطبق

:مثال

هناك أضا مجموعة من الخارات الت مكن

لنراها ف الشرحة ... استخدامها مع هذا الفلتر

أنس حكمت أبو حمد ...التالة

[email protected]

Page 182: PHP Advance 101 دورة

Data Validation -Filters in PHP-

FILTER_SANITIZE_STRING

هناك مجموعة أخرى من الخارات مكن ...كما قلت

: استخدامها مع هذا الفلتر وه

الخار اسمالوصف

بدون “ or „تستخدم هذه ف حالة رغبت ببقاء ال

^_^عن انو ما فلترها ..تشفر

FILTER_FLAG_NO_ENCODE_QUOTES

FILTER_FLAG_STRIP_LOW..اقتطعوا 32أي اش باألسك كود رقمو أقل من

FILTER_FLAG_STRIP_HIGH..اقتطعوا 127أي اش باألسك كود رقمو أكبرمن

FILTER_FLAG_ENCODE_LOW..شفرو 32أي اش باألسك كود رقمو أقل من

FILTER_FLAG_ENCODE_HIGH..شفرو 127أي اش باألسك كود رقمو أكبرمن

ampFILTER_FLAG_ENCODE_AMP&الى & قم تشفر اشارة ال

أنس حكمت أبو حمد

[email protected]

Page 183: PHP Advance 101 دورة

Data Validation -Filters in PHP-

FILTER_SANITIZE_EMAIL

قوم هذا الفلتر على حذف أي شء من رموز خاصة

...الخ من االمل ..أو أحرف الغر صححة

: مثال

أنس حكمت أبو حمد

[email protected]

Page 184: PHP Advance 101 دورة

Data Validation -Filters in PHP-

FILTER_SANITIZE_NUMBER_FLOAT

+ قوم هذا الفلتر على حذف كل شء باستثناء األرقام أو ....أو –أو 1)FILTER_FLAG_ALLOW_FRACTION

...).(السماح للنقطة 2 )FILTER_FLAG_ALLOW_THOUSAND

(,..)السماح للفاصلة 3 )FILTER_FLAG_ALLOW_SCIENTIFIC

(e)السماح للرموز العلمة مثل

: مثال

أنس حكمت أبو حمد

[email protected]

Page 185: PHP Advance 101 دورة

Data Validation -Filters in PHP-

FILTER_SANITIZE_MAGIC_QUOTES

خلف .. Stringالى ال \قوم هذا الفلتر على اضافة

\ or “ or „كل من or null

: مثال

أنس حكمت أبو حمد

[email protected]

Page 186: PHP Advance 101 دورة

Data Validation -Filters in PHP-

FILTER_VALIDATE_INT

هذا الفلتر قوم على تصفة البانات ومن ثم التحقق هل

وقوم على ارجاع اما صح وإما .هذا رقم صحح أم ال

ومكن اضافة مجموعة من الخارات لهذا ...خطأ

:الفلتر وه

اسم الخاصةالوصف

min_rangeصحح مكن استقباله أقل رقم

max_rangeصحح مكن استقباله أكبر رقم

FILTER_FLAG_ALLOW_OCTALللنظام الثمان سمح

FILTER_FLAG_ALLOW_HEXللنظام الست عشري سمح

أنس حكمت أبو حمد

[email protected]

Page 187: PHP Advance 101 دورة

Data Validation -Filters in PHP-

FILTER_VALIDATE_INT: مثال

أنس حكمت أبو حمد

[email protected]

Page 188: PHP Advance 101 دورة

Data Validation -Filters in PHP-

FILTER_VALIDATE_BOOLEAN

هذا الفلتر قوم على ارجاع صحح أو خطأ ف الحاالت

: .... التالة

(true,on,yes,1)ل اذا جاء واحد مما TRUEرجع

(false,off,no,0)اذا جاء واحد مما ل FALSEورجع

: مثال

أنس حكمت أبو حمد

[email protected]

Page 189: PHP Advance 101 دورة

Data Validation -Filters in PHP-

FILTER_VALIDATE_REGEXP

الفلتر مكنن من وضع الشرط الخاص ب بصغة هذا regExp ... وبهذا صبح الفلتر وكأنن من قام بتعرقه...

: مثال

هنا ... كف قمت بتعرف الشرط الخاص ب ..هل الحظت A-Fستأكد من أن جمع الحروف ه ضمن النطاق

سقوم ...) Trueالناتج هنا .... nالى 0بتكرار من ( ABCDEFبارجاع أنس حكمت أبو حمد

[email protected]

Page 190: PHP Advance 101 دورة

Data Validation -Filters in PHP-

FILTER_VALIDATE_URL

قوم هذا الفلتر على التأكد من أن المتغر هو عبارة عن

URL .... ووجد لهذا الفلتر مجموعة من الخارات وه

اسم الخارالوصف

أن كون متوافق مع URLتطلب من ال هنا

RFC مثل :http://aneesSite

FILTER_FLAG_SCHEME_REQUIRED

Hostعلى أن حتوي URLهناى تطلب من ال

name

FILTER_FLAG_HOST_REQUIRED

فقط ذا امتداد ولس URLهنا جب أن كون ال

host مثلhttp://www.aneesSite.com/test

FILTER_FLAG_PATH_REQUIRED

queryحتوي على ... URLتأكد من ان ال هذا

string مثل :

http://www.aneesSite.com/test?x=7

FILTER_FLAG_QUERY_REQUIRED

أنس حكمت أبو حمد

[email protected]

Page 191: PHP Advance 101 دورة

Data Validation -Filters in PHP-

FILTER_VALIDATE_URL

: مثال

php.9المثال موجود بالصفحة

أنس حكمت أبو حمد

[email protected]

Page 192: PHP Advance 101 دورة

Data Validation -Filters in PHP-

FILTER_VALIDATE_EMAIL

...هذا الفلتر قوم على التحقق من االمل

: مثال

فإنه ....رمز خاص , حتوي مثال فراغ أ..أنه لو كان االمل ..الجمل ف هذا الفلتر

......قوم أوال على حذفه ومن ثم التحقق

أنس حكمت أبو حمد

[email protected]

Page 193: PHP Advance 101 دورة

Data Validation -Filters in PHP-

FILTER_VALIDATE_IP

قوم هذا الفلتر بالتحقق من الIP ... هل هو صحح أم

IPv4 or IPv6ومكنه ذلك على النوعن ال ...خاطا

:ولذلك لهذا الفلتر أضا مجموعة من الخارات وه

اسم الخاصةالوصف

:مثل V4هو IPتحقق من أن ال هذا

192.168.1.115

FILTER_FLAG_IPV4

:مثل V6هو IPتحقق من أن ال هذا

2001:0db8:0000:0000:0000:ff00:0042:8329

FILTER_FLAG_IPV6

RFC Private IPFILTER_FLAG_NO_PRIV_RANGEخارج نطاق IPجب أن كون ال

FILTER_FLAG_NO_RES_RANGE..المحجوزة IPلس ضمن ال IPأن ال تأكد من

أنس حكمت أبو حمد

[email protected]

Page 194: PHP Advance 101 دورة

Data Validation -Filters in PHP-

FILTER_VALIDATE_IP

: مثال

php.10المثال موجود بالصفحة

أنس حكمت أبو حمد

[email protected]

Page 195: PHP Advance 101 دورة

ال إله إال هللا العظم الحلم ، ال )) إلدده إال هللا رب العددرش العظددم ، الإلدده إال هللا رب السددموات ورب

((األرض ورب العرش الكرم

أنس حكمت أبو حمد

[email protected]

Page 196: PHP Advance 101 دورة

الخاتمة الحمدددد هلل , الحمدددد هلل رب العدددالمن...الحمدددد هلل الدددذي بحمدددده تدددتم الدددنعم

.... الحمدددددددددددد هلل رب العدددددددددددالمن, صدددددددددداحب المدددددددددددن والفضدددددددددددل

لكل بداة نهاة , وخر العمل ما حسن آخره وخدر الكدالم مدا اخوان قل ودل وبعد هذا الجهدد المتواضدع أتمندى أن أكدون موفقدا فد سدردي

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

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

... أتمنى من هللا تعالى أن تقبل منا هذا العمدل خالصدا لوجهده الكدرم ونسددددددأل هللا تعددددددالى أن رمحنددددددا وغفددددددر لنددددددا ولموتانددددددا ومدددددددوتى

..اللهددددددم اغفددددددر لدددددد ولوالدددددددي وللمسددددددلمن جمعددددددا ...المسددددددلمن

أنس حكمت أبو حمد

[email protected]

Page 197: PHP Advance 101 دورة

وآخر دعوانا أن الحمد هلل رب العالمن

أنس حكمت أبو حمد

[email protected]