المتغيرات عبارة عن حاويات لتخزين المعلومات
Variables are "containers" for storing information.



A variable can have a short name, like x, or a more descriptive name, like carName.
المتغيرات يمكن أن تكون اسم قصير أو يمكن أن تكون اسم وصفي أكثر

Rules for PHP variable names قواعد تسمية متغيرات بي اتش بي
Variables in PHP starts with a $ sign, followed by the name of the variable تبتديء بعلامة الدولار متبوعة باسم المتغير
The variable name must begin with a letter or the underscore character يجب أن يبدأ اسم المتغير بحرف أو شرطة سفلية
A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ )
تحتوي فقط على حروف ابجدية رقمية و شرطة تحتية
•A variable name should not contain spaces يينبغي أن لايحتوي اسم المتغير على مسافات
Variable names are case sensitive  اسماء المتغيرات حساسة لحالة الأحرف
=====================
<?php
$name = "hisham" ;
echo $name;
?>

هنا قمنا بتعريف متغير اسمه name ووضع قيمة الاسم  hisham بداخله ثم قمنا بالطباعة.


<?php
$name = "hisham" ;
echo $name;
$latname = 'alkhazim' ;
echo $lastname;
?>

هنا قمنا بتعريف متغير اسمه name ووضع قيمة الاسم  hisham بداخله ثم قمنا بالطباعة  , ثم قمنا بتعريف متغير اسمه lastname ثم قمنا بطباعة قيمته .
نلاحظ أننا وضعنا القيم داخل Double quote والقيمة الأخرى داخل single quote

فما الفرق بينهما ؟
Double quote تستطيع ترجمة المتغيرات أو الوظائف الموضوعه بداخلها بخلاف السينقل كوتيه

<?php
$lastname = 'alkhazim' ;
$name = "hisham $lastname  " ;
echo $name;
?>

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



PHP String Variables

يستخدم لتخزين ومعالجة النصوص A string variable is used to store and manipulate text
ببساطة هو عبارة عن سلسلة من الحروف أو الرموز أو الأرقام أو خليط منها تستخدم لتكوين جملة
أي هو متغير يستخدم لتخزين سلاسل الحروف .

<?php
$txt="Hello World";
echo $txt;
?>

لتكون المخرجات هي
Hello World

The Concatenation Operator عامل التسلسل

يستخدم لطباعة اكثر من متغيرين معا
كل ماعليك أن تفصلهم بعلامة النقطة (.)
<?php
$txt1="Hello World!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
?>

المخرج
Hello World! What a nice day!


PHP Syntax

PHP Syntax وتعنس الصيغة العامة للغة بي اتش بي .

Basic PHP Syntax
الصيغة الأساسية للبي اتش بي

تبتديء اسكربتات البي اتش بي مع
<?php
وتنتهي مع
 ?>

ويمكن وضعها في أي مكان في المستند can be placed anywhere in the document.
أي بين الوسمين tags السابقة نضع كود البي اتش بي

فمثلا لطباعة كلمة hello worled  نستخدم دالة echo

<?php

echo "hello woreld";

?>


ويمكن استخدام print

<?php

print "hello woreld";

?>
كل كود سطري في البي اتش بي يجب أن ينتهي بالفاصلة المنقوطة semicolon والتي تستخدم كفاصلة ولتمييز مجموعة واحدة من التعليمات .

هكذا نعرف أن العبارتين الأساسية لطباعة النص أو إخراج النص output text هي : echo and print

فالمثالين أعلاه تستخدم لإخراج النص التالي hello worled

Comments in PHP

في البي اتش بي نستخدم \\  لتعليقات السطر الواحد  one-line comment
ونستخدم
/*

*/ 

لكتلة تعليقات  a comment block

<?php
//This is a comment

/*
This is
a comment
block
*/
?>
ولاتظهر التعليقات عند تنفيذ البرنامج وإنما توصع لتسهيل قراء الكود.







php install

ماذا نحتاج ؟
بحاجة لبرنامج php يتم تحميله من الموقع الخاص به  http://www.php.net/downloads.php
بحاجة لقواعد بيانات mysql ويتم تحميلها من الموقع الخاص  http://www.mysql.com/downloads/
بحاجة لسيرفر الاباتشي ويتم تحميله من الموقع الخاص به  http://httpd.apache.org/download.cgi
فحتى يتم قراءة ملفات البي اتش بي نحن بحاجة لكومبايلر البي اتش بي والكومبايلر بحاجة لسيرفر يعمل عليها وأشهرها سيرفر الاباتشي وكذلك نحن بحاجة لتنصيب قاعدة البيانات والأشهر هو بي اتش بي ماي ادمن وتكون قاعدة البياانات الخاصة به ماي اس كيو ال.
وهناك برنامج يجمع هذه الثلاثة مع بعض وهو appserv  ويتم تحميل أي اصدار من الموقع http://www.appservnetwork.com/

php intr

What is PHP?

  • PHP stands for PHP: Hypertext Preprocessor

  • PHP is a server-side scripting language, like ASP
بمعنى أنها لغة سيرفر مثل الـasp
  • PHP scripts are executed on the server
ويتم تنفيذها من خلال السيرفر
  • PHP supports many databases (MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL, Generic ODBC, etc.)
وتدعم أنواع متعددة من قواعد البيانات
  • PHP is an open source software
وهي لغة مفتوحة المصدر
  • PHP is free to download and use
وهي مجانية التحميل والاستخدام.

=======================================================

What is a PHP File?

  • PHP files can contain text, HTML tags and scripts
تحتوي على نص وأوسمة الهتمل والاسكربتات
  • PHP files are returned to the browser as plain HTML 
ملفات البي اتش بي يتم إرجاعها للمتصفح مثل الهتمل
  • PHP files have a file extension of ".php", ".php3", or ".phtml
وتكون امتدادت ملفات البي اتش php.

========================================================

Why PHP?

  • PHP runs on different platforms (Windows, Linux, Unix, etc.)
تعمل على منصات مختلفة مثل الويندوز واللينكس والينوكس والايتس
  • PHP is compatible with almost all servers used today (Apache, IIS, etc.)
تتوافق مع جميع السيرفرات المستخدمة اليوم تقريبا مثل الاباتشي والآي آي اس
  • PHP is FREE to download from the official PHP resource: www.php.net
مجانية ومفتوحة المصدر تماما وتستطيع تنزيلها من الموقع الخاص لها
  • PHP is easy to learn and runs efficiently on the server side
سهلة التعلم وتعمل بفعالية وكفاءة على السيرفر سايد
=======================================================

;

المواقع يتم رفعها على سيرفرات , والسيرفرات لها أنظمة تشغيل , فيجب معرفة نوع نظام تشغيل الذي يعمل عليه السيرفر , وربما يكوون هناك مواقع أخرى مرفوعة على نفس السيرفر , وكذلك يجب معرفة الشركة المستضيفة لهذا الموقع ورقم ip الموقع.
كيف يتم التعرف على نظام تشغيل السيرفر ؟
تستطيع معرفة ذلك عن طريق بعض المواقع مثل موقع www.netcraft.com آو موقع www.dns411.com

كيف تعرف المواقع الأخرى على السيرفر ؟
عن طريق موقع bing

السيرفر الشخصي localhost

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

التصاريح

#  التصاريح  #

1- ماذا يعني مصطلح ( التصاريح ) (Permission) ؟
هيا طريقة تنظيمية للمفات والمجلدات الموجوده على السيرفر بحيث انها ترفع من مستوى الحماية على تلك الملفات والمجلدت وهي التي تحدد
قدرتك على التحكم بهذا الملف او المجلد من حيث الرفع داخل المجلد او حذفة او الدخول داخله وايضا السماح او عدم السماح بالقراءة او التعديل على الملفات

2- رموز خاصة يجب ايضاح المفاهيم الخاصة بها ؟
للأعطاء تصريح للمجلد او ملف يجب مراعة الااتي :
هل هوا مدير ونعني بها بمصطلح التصاريح Owner
هل هوا مستخدم الذي قام برفع هذا الملف او عمل المجلد ونعني بها بمصطلح التصاريح Group
هل هوا زائر ونعني بها بمصطلح التصاريح Others
وهذا يعني ان التصريح ينقسم الى 3 اجزاء بهذا الشكل
Owner Group Others
وقد نجدها على شكل اختصارات بهذا الشكل
(u = owner) (g = group) (o = others)

كيفية قراءة التصريح ومعرفة الرموز الخاصة به ؟
هناك ثلاث صلحيات يمكن اعطائها للمجلد او الملف وهيا :
1- القراءة ( Read )
2- الكتابة ( Write )
3- التنفيذ او التطبيق ( Execute )
كل صلاحية منهم لها قيمة وهيا :
(Read = 4)  (Write = 2)  (Execute = 1)
ونجد اختصارتها على هذا الشكل :
( r = read ) ( w = write ) ( x = execute )

بعد معرفة الرموز والاختصارات نأتي للتجميع افكارنا عن طريق اخذ مثال والتطبيق عليه ؟
 نطبق الصلاحية على المدير ( u = owner) نعلم ان كل مستخدم له ثلاث صلحيات هيا القراءة والكتابة والتطبيق
rwx هذا معناه ان هذا المستخدم له الصلاحية الكاملة للتعديل والقراءة والتنفيذ رقم التصريح 7 طريقة حسابة كالاتي :
من معرفة قيم كل تصريح =
(R = 4)+(W = 2)+(x = 1) = 7
rw هذا معناه ان هذا المستخدم له الصلاحية الكتابة القرائة ولاكن ليس له صلحية التنفيذ رقم التصريح 6 طريقة حسابة كالاتي :
(R = 4)+(W = 2) = 6
وهكذا .....

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

كيفية التفريق بين تصرح الملف وتصريح المجلد ؟
نجد في بداية كود الملف - والتي تساوي في ترميز الرقمي 0 وكمثال عليها
0777 = -rwxrwxrwx
اما بالنسبة للتصريح المجلد نجد في بداية كود التصريح الخاص بالمجلد حرف d والتي تساوي ايضا الترميز الرقمي 0 وكمثال عليها
0777 = drwxrwxrwx

كيفية اعطاء هذه التصاريح ؟
1- الأتصال عن طريق البرتوكول SSH وهو حساب شل على احد السيرفرات وتنفيذ الامر chmod وسوف ننتطرق لهذا الامر في الدرس القادم

2 - عن طريق telnet في سيرفرات الوندوز

3 - عن طريق FTP في سيرفرات الـ لينكس او الويندوز وغيرها من انظمة

الصلاحيات


# الدرس الثالث #

#  الصلحيات  #

الجزأ الاول من التعرف على الصلحيات راح يتمحور ويتركز في نظام الـ لينكس او جنو (GNU/Linux) :
ماهو نظام الـ لينكس او جنو (GNU/Linux) وماهيا مميزاته  ؟
هو نظام تشغيل حُر مفتوح المصدر. بسبب تطوره في إطار مشروع جنو، يتمتع جنو/لينكس بدرجة عالية من الحرية في تعديل وتشغيل وتوزيع وتطوير أجزاءه، ويعتبر
 جنو/لينكس من الأنظمة الشبيهة بيونكس ويصنف ضمن عائلة يونكس إلى جانب أنظمة أخرى بعضها مملوك وبعضها حُر كـ (سولاريس وفري بي.إس.دي)

بسبب الحرية التي يوفرها جنو/لينكس فقد فتح المجال للآخرين للتطوير عليه بشكل نجح في التأسيس لنظام تطوره أطراف متعدّدة، حتى أصبح يعمل على طيف عريض
 من المنصات تتراوح بين الخادمات العملاقة وأجهزة الهاتف الجوال، وتطورت واجهات المستخدم العاملة عليه لتدعم كل لغات العالم تقريبا، وبسبب كونه حر ومفتوح
المصدر وسهولة تطويع وتغيير سلوك النظام، فإن سرعة تطوره عالية وأعداد مستخدميه تتزايد على مستوى الأجهزة الشخصية والخادمات.
من مميزات هذا النظام الضخم :
1- اختفاء مايسمى بالفيروسات والسبب في ذالك ان هذا النظام لايدعم الصيغة التشغلية للفيروسات التي تكون على الشكل exe
2- قدرة هذا النظام على التطور الدائم والملائمة لكل المستجدات من لغات جديدة وشهرتها في قدرة المبرمجين لها بعمل توزيعات جديدة عند ظهور اي ثغرات او اخطاء
3- القدرة المذهلة لهذا النظام على العمل المتواصل بدون عمل اعادة تشغيل للنظام
4- قلة الاخطاء في ملفات النظام او الملفات المفقودة نادرا ماتجد ظهور رسالة خطأ بنقص ملف او غيره
5- ينصح دائما بستخدام سيرفرات الـ لينكس عندما تكون صفحات المواقع المستخدمة على السيرفر مكتوبة بلغة php مع العلم ان الانظمة الاخرى تدعم تلك الصفحات
الصلحيات داخل هذا النظام تنقسم الى :
1- مدير ( root )
المدير ( لايمكن تغيير اسم الصلاحية عن root ) وهذي الصلاحية هي اللي تتحكم بالنظام كامل ويمكن عن طريقها  استخدام جميع الموارد الخاصة بالسيرفر مثل القص والصق والتعديل والحذف والقراءة و الاستعراض والتنقل داخل مواقع السيرفر وغيرها وتنفيذ الاوامر بشكل كامل على جميع مواقع السيرفر ويمكن ايضا عمل فورمات للسيرفر او عمل تنصيب للانظمة اخرى على نفس السيرفر او توزيعات اخرى لنظام الـ لينكس اذا هوا المتحكم الكامل بالسيرفر او المالك للسيرفر بكل مايحتويه من بيانات ومواقع

2- مستخدم ( user )
مستخدم ( يمكن تغيير اسمه لأي مسمى آخر مثل alsa3ek ,hack ,book او رقم او اي مسمى يدل على مستخدم تلك المساحة او الموقع  ) وهذي الصلاحية تتحكم في جزء معين محصور فقط بالمساحة المصرح لمالك ذالك المستخدم بأن يتحكم في تلك المساحة المستأجرة من مدير السيرفر (root) وله الحق الكامل في تعديل والنسخ والصق والحذف والقص والقراءة والاستعراض والتنقل على جميع الملفات والمجلدات الداخلة ضمن المساحة المستاجرة ولايسمح لك بأستخدام تلك الخصائص خارج نطاق المساحة المخصصة لك فيمنع بذالك خاصية التنقل داخل السيرفر على مواقع السيرفر او التعديل او القراءة على المواقع الاخرى على السيرفر .

3- الزائر او الضيف  ( Nobody )
( هذي الصلاحية اسمها ثابت لا يتغير مثل صلاحية مدير السيرفر (root) ) و يمكن من خلال تلك الصلاحية القراءة والاستعراض للجميع الملفات او المجلدات المصرحة بالقراءة داخل المواقع الاخرى على نفس السيرفر ولاكن لايمكن التعديل او الحذف او الاضافة الى بشرط توافر التصريح 777 للمجلد المراد التعديل بداخلة او الرفع او النقل اليه  وسوف يتم شرح التصاريح الدرس القادم ان شاء الله

4- الاباتشي  ( apache ) أو ( web-data )
هذه النوعان من الصلاحيات سوف تمر عليك خلال ممراستك لي عمليات الأختراق ورفع الشل صلاحيات الأباتشي قريبه نوعا ما إلى صلاحيات nobody واحيان تاخذ خصائص اليوزرفي بعض السيرفرات حيث لايمكن التحرك الا خلال مساحتك وكذلك نجدها احيانا تاخذ خصائصnobody من ناحية التنقل وكذلك قابلية التعديل على جميع الملفات سواء كانت مصرح اما لا وتأتي احيانا صلاحياتك على شكل wib-data كذلك تجد انها تشبه كثيرا صلاحيات apache
اي ان عيوبها ومميزاتها تحكمها صلاحياتك المحددة في السيرفر والتي تستطيع من خلالها التكيف وجمع المعلومات واختراق الهدف حسب الأمكانيات المتاحه لديك

الجزأ الثاني من التعرف على الصلحيات يتمحور ويتركز في نظام الـ الويندوز او النوافذ  (windows) :

الـ الويندوز او النوافذ  (windows) وماهيا مميزاته  ؟
هو نظام تشغيل رسومي، من إنتاج شركة مايكروسوفت. بدأ نظام التشغيل Microsoft Windows كواجهة رسومية عام 1985، واستمر كذلك حتى عام 1990 عندما أعلنت مايكروسوفت عن إطلاق النسخة المعدلة والمطورة المسماة Windows 3.0. وفي العام 1992 ظهرت الإصدارة 3.1 ثم تبعتها الإصدارة 3.11 ثم استمرت مايكروسوفت في تطوير وتحسين هذا البرنامج، حتى كان العام 1993 حيث ظهر ويندوز إن تي وهو عبارة عن نظام مصمم للعمل كخادم في بيئة الشبكات الكبيرة. ثم وفي العام 1995 أطلقت أول نظام لها مستقل عن نظام مايكروسوفت دوس أطلق عليه اسم ويندوز 95 - وانقلب الحال وأصبح نظام - ثم ويندوز 98 في عام 1998 ونظامي ويندوز ميلينيوم وويندوز 2000 خلال العام 2000 ثم ويندوز إكس بي في 2001، وويندوز 2003 المخصص للشبكات الكبيرة عام 2003. ثم ويندوز فيستا (الاسم الكودي لونجهورن) في عام 2007. وأحدث نسخة من ويندوز هو ويندوز 7؛ وحاليا ظهرت نسخة خادم 2008 (الاسم الكودي لونجهورن سيرفر (بالإنجليزية: Server‏) وهو نظام تشغيلي خاص بالشبكات.

من مميزات هذا النظام الضخم :

1- اينتشار مايسمى بالفيروسات والسبب في ذالك ان هذا النظام يدعم الصيغة التشغلية للفيروسات التي تكون على الشكل exe
2- القدرة الكبيرة لهذا النظام على التطور وسد الثغرات واصدار الجديد دائما من الترقيعات والتحديثات الامنية
3- ضعف القدرة التشغيلية للنظام وتطلبه عمل اعادة تشغيل للنظام في الكثير من الاوقات
4- كثرة الاخطاء في ملفات النظام و ايضا كثرة الملفات المفقودة وكثرة ظهور
5- ينصح دائما بستخدام سيرفرات الـويندوز عندما تكون صفحات المواقع المستخدمة على السيرفر مكتوبة بلغة aspx مع العلم ان الانظمة الاخرى تدعم تلك الصفحات

الصلحيات داخل هذا النظام تنقسم الى :
1- مدير ( Administrator  )
المدير العام ( لايمكن تغيير اسم الصلاحية عن Administrator ) وهذي الصلاحية هي اللي تتحكم بالنظام كامل ويمكن عن طريقها استخدام جميع الموارد الخاصة بالسيرفر مثل القص والصق والتعديل والحذف والقراءة و الاستعراض والتنقل داخل مواقع السيرفر وغيرها وتنفيذ الاوامر بشكل كامل على جميع مواقع السيرفر ويمكن ايضا عمل فورمات للسيرفر او عمل تنصيب للانظمة اخرى على نفس السيرفر او توزيعات اخرى لنظام الـ لينكس اذا هوا المتحكم الكامل بالسيرفر او المالك للسيرفر بكل مايحتويه من بيانات ومواقع
 
2- مستخدم ( user )
مستخدم ( يمكن تغيير اسمه لأي مسمى آخر مثل alsa3ek ,hack ,book او رقم او اي مسمى يدل على مستخدم تلك المساحة او الموقع  ) وهذي الصلاحية تتحكم في جزء معين محصور فقط بالمساحة المصرح لمالك ذالك المستخدم بأن يتحكم في تلك المساحة المستأجرة من مدير السيرفر (root) وله الحق الكامل في تعديل والنسخ والصق والحذف والقص والقراءة والاستعراض والتنقل على جميع الملفات والمجلدات الداخلة ضمن المساحة المستاجرة ولايسمح لك بأستخدام تلك الخصائص خارج نطاق المساحة المخصصة لك فيمنع بذالك خاصية التنقل داخل السيرفر على مواقع السيرفر او التعديل او القراءة على المواقع الاخرى على السيرفر .
3- زائر ( Guest )
  ( هذي الصلاحية اسمها ثابت لا يتغير مثل اسم  المدير  )
وهذي الصلاحية من خلالها تقدر تقرا وتستعرض جميع الملفات
ولكن ما تقدر تعدل ولا تنسخ ولا تحذف ولا غيرها من الخصائص وهيا مشابهه لصلحيات (
Nobody ) ..

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

كيف تتم توزيع هذه الصلاحيات ,, وهل هي ثابته ؟
يتم توزيع هذه الصلاحيات من قبل إدارة السيرفر او الخادم المستضيف من خلال مدير السيرفر والذي يسمى ( root ) في الـ لينكس
و ( administrator ) في الويندوز  حيث يقوم هذا المدير بتحديد نوع الصلاحيات في السيرفر  .

 

1- ماهو السيرفر الشخصي (localhost) ؟
عبارة عن برنامج يقوم بتحويل جهازك الى سيرفر او خادم مصغر بحيث يسمح لك بتطبيق وتشغيل الاسكربتات المبرمجة بلغة php
وايضا يسمح لك بتنصيب تلك الاسكربتات وربطها بقاعدة بيانات خاصة داخل السرفر الشخصي ومن هنا ظهرت اهميته الكبرى
من حيث انه يساعد المبرمجين والمطورين ومكتشفي الثغرات في تصفح وفحص الاسكربتات بكل سهولة ويسر

2- بعض اللغات وكيفية التعرف عليها وفوائد اللغات المختلفة ؟
اللغة الاولى بعد لغة php هيا perl (البيرل) يتم التعرف عليها بمجرد رؤية السطر الاول تجد هذا الكود
 #!/usr/bin/perl
وتجد الملفات المبرمجة بتلك اللغة بأمتداد pl
الغة الثانية من حيث القوة لغة Python (البايثون) عالجة الكثير من مشاكل التخطي في اغلب السيرفرات بعد منع الكثير من الدوال الخاصة بلغة
php وايضا عدم التصريح للتشغيل ملفات perl ويتم التعرف عليها من خلال السطر
#!/usr/bin/python
وتجد الملفات المبرمجة بتلك اللغة بأمتداد py
اللغة الرابعة وهي ruby (روبي) يكثر استخدام هذه اللغة في برمجة اسكربتات الثغرات ويتم التعرف عليها من السطر
 #!/usr/bin/ruby
وتجد الملفات المبرمجة بتلك الغة بأمتداد  rb
الغة الاخيرة معانا هي c (السي) طبعا تشتهر جميع الثغرات المكتوبة بهذه اللغة بخطورتها العالية وتشتهر هذه اللغة
في كتابة الوكلات او الاسكربتات الخاصة بسحب صلحيات المدير من السيرفر ويتم التعرف عليها من خلال تواجد سطر الاوامر
#include
وتجد الملفات المبرمجة بتلك اللغة بأمتداد c

3- اكسبلويت (Exploits) ؟
هي برامج تنفيذية تنفذ من خلال المتصفح . و لها عنوان
URL ، تقوم هذه الإكسبلويتات بعرض ملفات الموقع و تقوم بعضها بالدخول الى
السيرفر و التجول فيه ، كما توجد اكسبلويتات تقوم بشن هجوم على بورت معين
في السيرفر لعمل كراش له ، و هذا ما يسمى بـ Buffer Over Flow Exploits .
هناك أنواع من الإكسبلويت ، فمنها ال CGI Exploits أو ال CGI Bugs و منها
ال Unicodes Exploits و منها ال ، Buffer Over Flow Exploits ، و منها
ال PHP Exploits ،و منها الDOS Exploits و التي تقوم بعملية حجب الخدمة
للسيرفر إن وجد فيها الثغرة المطلوبة لهذا الهجوم و ان لم يكن على السيرفر
أي فايروول Fire Wall . و هناك بعض الإكسبلويتات المكتوبة بلغة السي و يكون
امتدادها (.c) .
هذه الإكسبلويتات بالذات تحتاج الى كومبايلر او برنامجا لترجمتها و تحويها
أي الاكسبلويت الى اكسبلويت تنفيذي عادي يستخدم من خلال المتصفح ، و لتحويل
الإكسبلويت المكتبو بلغة السي هذه الى برنامجا تنفيذيا ، نحتاج إما الى
نظام التشغيل لينوكس او يونكس ، او الى اي كومبايلر يعمل ضمن نظام التشغيل
ويندوز . أشهر هذه الكومبايلرات ( المترجمات أو المحولات ) برنامج اسمه
Borland C++ Compiler و هي تعمل تحت نظام التشغيل ويندوز كما ذكرنا سابقا.

ماهي الثغرات وما الفائدة منها ؟
الثغرات هي عبارة عن اخطاء من قبل المبرمج في احدى اكواد اللغة بحيث تسمح للمخترق الوصول الى معلومات حساسة على السيرفر
مثل اسم العضوية والباسورد الخاص بمدير الموقع انواع الثغرات كثيرة جدا ولاكن من اشهرها ثغرات sql بجميع انواعها
مثل injaction او blind راح يكون لها دروس ان شاء الله الثغرات وطرق اكتشافها واستغلالها

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

ماهو Open Basedir ؟
هيا ايضا خاصية داخل السيرفر تقوم بمنع بعض الدوال الخطيرة التي يمكن استخدمها من قبل المخترق للتنفيذ اوامر تضر بمصلحة مدير الموقع
من حيث التنقل داخل السيرفر او سحب المعلومات الحساسة التي من ضمنها ملفات قواعد البيانات

ماهو Magic_Quotes ؟
عباره عن خاصيه في البي اتش بي عند تفعيلها تقوم بأضافته Backslash على ‘ او ” او \
والفائده من هذا منع من مرور الرموز سليمه لكي يتجنب بعض انواع الثغرات مثل sql injection
ولاكن يوجد بعض المشاكل فيها عندما نرسل معلومات نريد ان لايتم تغيرها مثل You’re The Best
اذا كان مفعل بيتم طباعه التالي
You\'re The Best
واذا لم يكون مفعل بيتم طباعته هكذا
You're The Best

 
ماهو الكونفق او قاعده البيانات ( Config) ؟
هوا اسكربت يختلف اسمه من مصمم للاخر يستفاد منه في تكوين وربط قاعدة بيانات الاسكربت مثل vb او joomla
مع phpMyAdmin التي تحتوي على قاعدة بيانات الموقع وتحتوي ايضا على بيانات المدير من اسم المستخدم او كلمة السر الخاصة بالقاعدة

ماهيا الهاشات ( hash ) ?
هيا عبارة عن رموز تشفيرية للكلمات الحساسة مثل كلمة المرور وهي تعتمد على حسابات ومعادلات معقدة يتم خلالها تشفير كلمة المرور
الى رموز يصعب فكها مرة اخرى وهناك العديد من التشفيرات من اشهرها md5 التي تعرف من خلال تكونها من 32 حرف ورقم
وهذه بعض من امثلة الهاشات
# MD5 # MD4 # MD2 # NTLM # LM # SHA1 # SHA256 # SHA384 # SHA512 # MySQL #
ماهو Zend وماهو ionCube ؟
هيا احدى طرق التشفير الجديدة للملفات قواعد البيانات ( config ) بحيث تصعب على المخترق الوصول للمعلومات قاعده البيانات

لمحة سريعة عن كيفية اختراق السيرفرات او الخوادم او مايسمى بـ ميكانيزوم اختراق الخادم ؟

للوصل الى الخادم نحتاج الى الوصول للمنفذ دخول او ولوج للخادم وهذا يتوفر من خلال البحث عن احد الثغرات المتوافرة داخل الخادم وهيا تعتمد على
اما البحث داخل المواقع المحتواه داخل الخادم وذالك بالبحث وفحص الاسكربتات المنصبة على تلك المواقع حتى نجد بها ثغرة تمكننا من الولوج للخادم
او فحص البرامج المنصبة داخل السيرفر مثل برامج ftp وغيرها وهذا يوصلنا للتعرف على اقوى الثغرات التي تسمى
 بثغرات Buffer over Flow
وتعرف كالأتي :
و هي نوع من أنواع الاكسبلويتات التي
تستعمل لشن هجوم الطفح على نقطة معينة من السيرفر مثل الهجوم على بورت الإف تي بي
أو غيره لأجل اضعاف اتصال السيرفر و فصل اتصاله بهذا بهذا البورت و لالغاء الرقعة
الموجودة بها كي يتم استغلالها مجددا - بعد عمل الكراش لها طبعا - يتم استغلالها
في معاودة الإتصال لها و بسهولة و دون وجود أي رقع او حواجز و سحب البيانات منها .
و هي شبيهة نوعا ما بعملية حجب الخدمة - DOS - اذ أنها تقوم بعملية اوفر لود على
جزء مركز من السيرفر .
وايضا قد نجد من انجح الطرق ايضا فحص ثغرات الاباتشي او ثغرات المترجمات مثل مترجم php
او التخمين بعد الحصول على مجموعة من اسماء المستخدمين للحصول على كلمات السر التي تمكنا من الحصول على منفذ للوصول للخادم
وهذا يوصلنا للمصطلح جديد هوا الاخير في الاجزاء الخاصة بدروس المصطلحات المهمة الى وهيا
برامج السكان أو Scanner
و هي برامج موجودة للمسح على المواقع و كشف
ثغراتها إن وجدت ، فهي سريعة، كما أنها تملك قاعدة بيانات واسعة و كبيرة
تحتوي على الثغرات أو الاكسبلويت (Exploits) التي يتم تطبيقها على الموقع
لرؤية فيما اذا كان السيرفر يعاني من احدى هذه الثغرات أم لا . و من أمثلة
هذه البرامج، برنامج Shadow Security Scanner و Stealth و Omran Fast
Scanner ،Acunetix Web Vulnerability Scanner
, الخ .
و لهذه البرامج أنواع مختلفة ، منها التي تقوم بعمل سكان على نظام أو سيرفر
معين مثل البرامج المختصة بالسكان على سيرفرات الـ IIS و منها برامج المسح
على ثغرات السي جي اي فقط CGI و ما الى ذلك .

 

مصطلحات

  • ما هو السيرفر Server ؟
ماهو السيرفر ؟
تستطيع أن تتخيل أن جهاز كمبيوترك هو عبارة عن سيرفر حيث أنه يحوي على معالج ورام ولكن الفرق يختلف في نظام التشغيل حيث أن نظام التشغيل الخاص بالسيرفر غير عن نظام التشغيل الخاص بجهازك وكما أنك تستطيع أن تتصل بالانترنت كذلك السيرفر يستطيع أن يتصل ولكن يميزه سرعته الخيالية في الاتصال بالانترنت بالنسبة لجهازك.
إذا نقول أن السيرفر هو جهاز ذو معالج أو أكثر وذو سعة تخزين كبيرة تبدأ غالبا من 80 جيجا بايت ورام يبدأ من 1جيجا بايت ويتميز بقدرته الفائقة وسرعته العالية في تخزين ومعالجة البيانات , ويمثل منظومة متكاملة متصلة بالانترنت.
كذلك تخيل أنك تريد فتح ملف التحميل على جهازك الذي يقع في المسار التالي :
"C:\Users\Gateway Computer\Downloads"
فأنت عندما تطلب هذا الارتباط سيقوم بفتح ملف من جهازك
كذلك تستطيع أن تفتح الملفات المحملة على السيرفر المستضيف للموقع فأنت عندما تطلب موقع ما , فملفات الموقع يتم تحميلها على السيرفر المستضيف.
وتختلف السيرفرات عن بعضها بحسب المعالج وبحسب الاستخدام وبحسب الغاية من السيرفر
فهناك سيرفرات لاستضافة المواقع  WebHosting Server وسيرفرات لاستضافة الحسابات وسيرفرات للتحميل أو للبروكسي .
 وكذلك تختلف بحسب أنظمة التشغيل كالويندوز وسيرفر اللينوكس وسيرفر FreeBSD وتعتمد جودة السيرفرات على عدة عوامل منها سرعة الوصول إلى الإنترنت وعدد استضافة المواقع والرام وأهمها عدد المعالجات
والسيرفرات عادة ماتكون موجودة في مكان يدعى data centerفما هي الداتا سنتر؟
كما ذكرنا هي مكان يوجد به السيرفرات أو نستطيع القول أنها حاوية ضخمة مزودة بوسائل الحماية والتبريد وبها مولدات كهربائية تضمن عدم انقطاع الكهرباء عن أي من السيرفرات , بالإضافة إلى خطوط انترنت بسرعات عالية جدا تصل قرابة الـ100ميجا وتكون متصلة بالانترنت بأفضل الطرق لتوصيل الأجهزة ببعضها البعض , وعادة مايكون في مباني مجهزة تحوي على أجهزة التبريد ووسائل الأمن والحماية ومولدات الطاقة الللازمة
والانترنت ماهو إلا عبارة عن مجموعة من الـ data center الضخمة
ماخلا بعض الخوادم وتكاد تكون الداتا سنتر شبه معدومة في البلدان العربية وشركات الاستضافة العربية ماهي إلا وسيط مع الأجنبي.
ماهو الـ vps ؟
هو سيرفر افتراضي أو وهمي Virtual Private Server
ببساطة هو جزء من سيرفر كبير
, حيث يتم تقسيم السيرفر إلى مجموعة من الأقسام بحيث أن كل قسم لا يستطيع التحكم أو الدخول إلى القسم الآخر ويكون له كامل الحرية في القسم المخصص له أي يتم توزيع موارد السيرفر الرئيسي بحيث يملك خصائص السيرفر الرئيسي

ماهو الريسلر Reseller ؟
هو الموزع , يعمل كوسيط بين السيرفر وعميل الاستضافة بمعنى أنه عبارة عن مساحة يعطيها صاحب الـ vps للمستخدم أو مالك الموقع المستأجر للمساحة وصلاحيات الريسلر محدودة كإعطاء المساحات للعملاء أو له فقط , أحيانا يستطيع الريسلر التنقل داخل مواقع الـ vps أي بحسب الصلاحيات المعطاه له .

الدومين أو النطاق Domain ؟
ببساطة هو اسم الموقع
ويحتوي على جزأين الجزء الأول: هو اسم النطاق وعادة يكون اسما يوضح محتوى الموقع أو وصفا له أو اسم صاحب الموقع وربما وصفا مختصرا أيضا أما الجزء الثاني هو الامتداد كـ com , net , org

===========================
إذا لدينا مجموعة من الداتا سنتر المنتشرة حول العالم كل داتا سينتر فيه العديد من السيرفرات والسيرفر يمكن تقسيمه إلى ريسلرات تماما كما لو قمنا بعمل بارتشن للهاردسك للجهاز العادي ولكن له برامج مخصصة وكذلك يمكن تقسيم الريسلرات إلى مساحات بحيث يتم تأجيرها لمواقع الانترنت وكل مساحة مخصصة لموقع لابد من ربطها بدومين أو نطاق .
 
ماهو الهوست host ؟
هي الاستضافة بمعنى شركة تقوم بشراء سيرفر بمساحة معينة من الداتا سنتر
وهناك شركات استضافة تملك داتا سنتر خاصة بها مثل القوقل والياهو
وطبعا الشركة التي تستضيف موقعك هي من تعطيك الصلاحيات والمساحة الخاصة بك سواء vps أو ريسلر أو مساحة على السيرفر.
 
 
ماهو الـ IP ؟
هو اختصار Internet Protocol وهو عبارة عن عنوان لكل جهاز على شبكة الإنترنت ,وهو رقم متسلسل من الـ 0 إلى الـ 9 وله أربع خانات , كل خانة تعبر عن شيء معين , وبشرط أن لاتتعدى أي خانة منه 255.
الخانة الأولى
عبارة عن رقم الدولة
والثانية عبارة عن المدينة أو الجهة المسؤولة عن الانترنت في هذا البلد
والثالث عبارة عن الموقع المضيف أو شركة الاتصال المشترك ...
معها
والرابع عبارة عن رقم الجهاز أو المشترك لدى الشركة.
ويمكنك معرفة الآي بي الخاص بك من خلال هذا الموقع
http://www.ip-adress.com/
وكما ذكرنا يحوي اربع خانات x,x,x,x كل خانة تحتوي على رقم من صفر إلى 255.
وكل خانة من هذه الخانات تسمى Octet
وهذه أمثلة عليه :
12.245.54.1
127.0.0.1
255.45.7.1
ويتم استخدام الآي بي في الشبكات الداخلية وتكون الخانة الأخيرة عبارة عن أرقام متسلسلة للأجهزة
وتستخدم في الانترنت وتعرف بـ Real Ip فكل جهاز متصل بالانترنت لابد أن يكون له Real Ip حتى يتم التعرف عليه .
لهذا فجميع الأجهزة في الشبكة الداخلية المتصلة بالانترنت تظهر كجهاز واحد لأن الراوتر هو من يمتلك الآي بي الحقيقي
ماهو dns ؟
هو اختصار
Domain Name System
ويستعمل في الانترنت لترجمة اسماء المواقع إلى عناوين آي بي.
فمثل ما لجهازك رقم آي بي يميزه ويعتبر عنوان له
كذلك المواقع لها أرقام آي بي تميزها
فعندما تكتب عنوان الموقع يقوم BROWSER بتحويل DOMAIN NAME الى IP ADDRESS
لأن الدومين مجرد عنوان وصفي يسهل لك الوصول
وينقسم الـ dns إلى عدة أقسام ...الجزء الأول هو www وهو ثابت word wide web
والجزء الثاني يمثل اسم الموقع مثلا google أو hotmail أما الجزء الثالث فيمثل الامتداد com أو net أو السيرفر الذي يحوي الموقع ويسمى top-level
وهو بمثابة دليل الهاتف , حيث دليل الهاتف يجمع بين اسم الشخص ورقم هاتفه , كذلك dns يجمع بين اسم الموقع ورقم الآي بي الخاص به
إذن يعمل DNS على إنشاء قاعدة بيانات تحوي سجلات تربط عناوين IP بالأسماء المعبرة عنها
 
ماهي البروتوكولات ( Protocols ) ؟
هو لغة تمكن أجهزة الكمبيوتر من أن تتفاهم مع بعضها البعض من خلال الانترنت.
فإرسال واستقبال البريد الالكتروني ونقل الملفات والمعلومات وغيرها بين أجهزة الكمبيوتر تتم عن طريق البروتوكول.
برتوكول TCP : يحدد كيف سيتم تكسير أو كيف سيتم تقسيم البيانات إلى حزم ونقلها عبر الانترنت , هذا البرتوكول هو الذي قام عليه الإنترنت.
بحيث يقوم بتجزئة الرسائل أو المستندات إلى حزم صغيرة تتكون كل حزمة من ...
مجموعة من المعلومات بما فيها عنوان الكمبيوتر المرسل والمستقبل
الرواتر يقوم باستخدام هذا البرتوكول بحيث يقوم بتحريك رزم البيانات في اتجاهها الصحيح
وكل رزمة لها عنوان اي بي خاص للجهاز المرسل وعنوان اي بي خاص للجهاز المستقبل
وهناك برتوكول برتوكول ftp الذي يقوم بالاتصال بالموقع أو السيرفر ورفع الملفات أو سحبها أي برتوكول خاص بنقل الملفات
بروتوكول HTTP ايضا هوا بروتوكول للنقل الملفات ولا كن يقوم بعرض البيانات على شكل صفحات ويب وهوا البروتوكول المستخدم في التصفح للمواقع وهو برتوكول نقل الملفات الضخمة
ايضا بروتوكول SMTP و POP3 يستخدم لنقل واستقبال الرسائل والايميلات
 
ماهو البورت ports؟
يمكن تشبيه البورت بالمدينة حيث أن كل مدينة لها منافذ خاصة للخروج والدخول
كذلك تخيل أن لديك منزل وبه عدة أبواب باب الضيوف وباب للخدمات وباب للطواريء وباب للخدم
كذلك الحال بالنسبة للكمبيوتر وبالنسبة للانترنت
فالبورتات هي البوابات الي من خلالها يتم نقل واستقبال البيانات وكل برنامج له بورت معين

الجدار الناري firewall؟
برامج تستخدمها السيرفرات لمنع الدخول الغير شرعي على ملفاتها
فهي تمثل الحماية للسيرفر طبعا
وتختلف الجدر الناري المستخدمة لحماية المواقع عن تلك المستخدمة لحماية السيرفر
 
ماهو الـ cpanal ؟
لوحة تحكم تعتمد على الويب وتحتوي على جميع المميزات التي تسمح لك بإدارة النطاق عبر واجهة ويب، وامكانية تنصيب وتثبيت الاسكربتات ، ومسؤولية إدارة موقعك على الإنترنت بشكل اسهل واسرع، ولديك ايضا إمكانية إدارة جميع واجهات البريد الإلكتروني، إدارة الملفات، النسخ الاحتياطي، FTP، برمجيات CGI، و جميع إحصائيات الموقع وايضا قواعد البيانات وغيرها من الامكانيات الجبارة .
أعضاء البيانات والحقول

الحقل filed هو اسم آخر للمتغير
وأعضاء البيانات هي عبارة data members بداخل الطبقة هي عبارة عن متغيرات تعد من أعضاء الطبقة

وإذا أردت الوصول إلى البيانات من خارج الطبقة فحينها نستخدم كلمة public
class point
{
int x;
int y;
}
هكذا لا نستطيع الوصول إلى بينات الطبقة من خارجها فيصبح هذا الجزء خاص بالطبقة
ولكن حينما نريد الوصول للطبقة من خارجها كما ذكرنا نضع كلمة public
class point
{
public int x;
public int y;
}
وللوصول إلى عضو البيانات من خارج الطبقة عليك استخدام كل من اسم الكائن وعضو البيانات ومعامل العضو وهو النقطة يقوم بالفصل بينهما

الطبقة

يتم استخدام كلمة class لشرح لتعريف الطبقات
clase identifier
{
class-body
}
حيث أن identifier هو الاسم الذي تم أعطاؤه للطبقة أما class-body  فهي الأوامر التي تقوم ببناء الطبقة.

بعد تعريف الطبقة يتم استخدامها لإنشاء الكائنات فهي عبارة عن تعريف يستخدم لإنشاء الكائنات ليتم استخدام الكائنات لحمل البيانات وتنفيذ الإجراءات
الصيغة المتبعة للإعلان عن كائن من طبقة هي :
class_name object_identifier = new class name( );

حيث class_name هو اسم الطبقة و object_identifier هو اسم الكائن الذي يتم الإعلان عنه
فعلى سبيل المثال لو لديك طبقة اسمها point تستطيع القيام بإنشاء كائن باسم startingpoint باستخدام سطر الأمر التالي
point startingpoint = new point( );
اسم الطبقة point والكائن الذي تم الإعلان عنه startingpoint  والذي يمكن أن يتضمن بيانات وكذلك الإجراءات إذا تم تعريفها بداخل طبقة point
والكلمة new تستخدم لإنشاء العناصر الجديدة وفي هذه الحالة هي تقوم بإنشاء نقطة جديدة وتدل على أن هناك نسخة جديدة يتم إنشاؤها في هذه الحالة نجد أن النسخة الجديدة هي كائن point والأقواس على يمين point  تساعد الطبقة ليتم بناؤها في الكائن الجديد.

فـ point تستخدم للإعلان عن كائن يسمى statingpoint وهكذا أصبح المتغير كائن من نوع point
() new point  هذا الجزء يقوم بعملية البناء الحقيقي لكائن point واسم الطبقة ذات الأقواس اشارة لبناء كائن من نوع الطبقة وكلمة new لحجز أماكن في الذاكرة لهذا الكائن الجديد .

هناك نوعان ؤئيسيان من العناصر يمكن تضمينها بداخل جسم الطبقة هما :
  1. أعضاء البيانات
  2. أعضاء الإجراء
وأعضاء البيانات عبارة عن متغيرات وثوابت ويمكن أن تكون عبارة عن طبقات أخرى
وأعضاء الإجراء عبارة عن مجموعة من التعليمات البرمجية والتي تقوم بأداء عمل ما.

تستخدم المعاملات operator لتعديل المعلومات أي أنها تستخدم لأداء العمليات مثل الجمع والضرب والمقارنة وغيرها وهناك ثلاث أنواع لبنية المعاملات هي :
  1. المعاملات الأحادية
  2. المعاملات الثنائية
  3. المعاملات الثلاثية
فالمعاملات الأحادية هي التي تعمل مع متغير واحد كعلامة السالب , والمعاملات الثنائية هي التي تعمل مع متغيرين كمجمع قيمتين أما المعاملات الثلاثية فهي التي تعمل مع ثلاث متغيرات ويوجد معامل ثلاثي واحد هو المعامل الشرطي.

  • علامات الترقيم :
(;) : الفاصلة المنقوطة تستخدم لإنهاء عبارة #c ومع عبارتي #c للتحكم في سير البرنامج.
(,): الفاصلة تستخدم مع العدد الكبير من الأوامر الموجودة بنفس السطر والوقت الإنسان لاستخدامها حين الإعلان عن العديد من المتغيرات


;int x,y,z

( ): القوسان في أماكن متعددة كترتيب تنفيذ المعاملات ويستخدمان كذلك مع الإجراءات
 {  } :: لتجميع الأوامر داخل الطبقات .

  • معامل التعيين الأساسي (معامل الاسناد الطبيعي ) :
  • عبارة عن علامة يساوي (=) ويستخدم لتعيين القيم فمثلا لتعيين القيمة 124 للمتغير x  نكتب
;x=124
وجميع معاملات الاسناد تعمل وفق مبدأ : قيمة المتحول يمين العامل تسند إلى المتحول يساره

;x = y =  123

يتم وضع 123 في المتغير y  لتصبح قيمته 123 ثم يتم وضع قيمة y في المتغير x  لتصبح قيمة y,x هي 123

ويجب أن نعلم أنه لا يمكن وضع قيمة صريحة أو ثوابت على الجانب الأيسر من معامل التعيين
  • المعاملات ارياضية اللحسابية :
مثال
الاستخدام
                     المعامل
Z=x+y;
يستخدم للجمع
+
Z=x-y;
يستخدم للطرح
-
Z=x/y;
يستخدم للقسمة
/
Z=x%y;
يستخدم لباقي القسمة
%


  • معاملات التعيين الحسابية المركبة :
المعامل
الوصف
المقابل غير المركب
الفئة
  =+
4=+x
 4+x=x
 ثنائي
 =-
 4=-x
 4-x=x
 ثنائي
 =*
 4=*x
4*x=x 
 ثنائي
 =/
 4=/x
 4/x=x
 ثنائي
 =%
 4=%x
 4 %x=x
 ثنائي



  • المعاملات الرياضية الأحادية:
وهي معامل الزيادة (++) والنقصان (--) ببساطة تقوم هذه المعاملات باضافة 1 أو طرح 1 من قيمة المتغير
1-
;x++

هي نفسها إذا قلنا

;1+x=x 


2-
;x--

هي نفسها إذا قلنا


;x=x-1


إذا جاء المعامل قبل المتغير فهذا يعني أنه معامل زيادة سابقة أو معامل نقصان سابق x++ أو x--
إذا جاء المعامل بعد المتغير فهذا يعني أنه معامل زيادة أو نقصان لاحق x++ أو x--
ومعامل الزيادة السابقة يقوم بالإضافة إلى المتغير قبل أي شيء
ومعامل الزيادة اللاحقة يقوم بالإضافة إلى المتغير لاحقا
ونفس الشيء لمعامل النقصان

كود توضيحي :
static void Main(string[] args)
{

int val1 = 0;
int val2 = 0;
Console.WriteLine("val1 = {0} val2 = {1}", val1, val2);++val1;
--val2;

Console.WriteLine("val1 = {0} val2 = {1}", val1, val2);++val1;
--val2;

Console.WriteLine("val1 = {0} val2 = {1}", val1, val2);}

في هذا الكود قمنا بتعين قيم مبدئية للمتغيرين (تهيئته) val1,val2 وهي صفر
ثم قمنا بطباعة هذه القيم المبدئية لنجدها صفر لكلا المتغيرين
ثم قمنا باستخدام معامل الزيادة والنقصان لإضافة واحد للمتغير أو انقاصة واحد
إذا جاء المعامل قبل المتغير فهذا يعني أنه معامل زيادة أو نقصان سابق بمعنى أنه يضيف للقيمة ثم يطبع
فنجد أنه اضاف واحد للمتغير val1 وانقص المتغير val2 واحد ثم قام بطباعته
لنجد أن قيمة val1=1 وقيمة val2=-1
ثم تم تكرار نفس الخطوة مرة أخرى وقام بطباعة القيمة حيث أصبحت val1=2,val2=-2
  • المعاملات العلائقية (Relational) :
تستخدم للمقارنة بين قيمتين
< أكبر من
> أصغر من
== يساوي
!= لايساوي
<= أكبر من أو يساوي
>= أصغر من أو يساوي

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

  • IF Statement : 
هي العبارة الأساسية لتغيير سير البرنامج وتستخدم للمقارنة بين قيمتين
الصيغة الخاصة بأمر IF هي
(IF (VAL1 [OPERATOR] VAL2
Statement

حيث أن operator هي أحد المعاملات العلائقية
val1,vaal2  هي متغيرات أو ثوابت وقيم صريحة
statement عبارة عن كتلة أو عدة عبارات
فإذا كانت المقارنة بين القيمتين صحيحة فحينها يتم تنفي عبارة if
وإذا كانت المقارنة بين القيمتين خاطئة فحينها يتم تخطي العبارة

فعبارة if  لاتعيد نتيجة محددة وإنما سيتم تنفيذ السطر البرمجي للتعليمة إذا أخذ التعبير البولياني القيمة true  فقط.

كود توضيحي :
static void Main(string[] args)
{

int val1 = 1, val2 = 0;
Console.WriteLine("Getting ready to do the if...");
if (val1 == val2){

Console.WriteLine("if condition was tru");}

Console.WriteLine("Don with the if statement");}

تم تهيئة المتغير val1,val2  بقيم ابتدائية
ثم طباعة العبارة Getting ready to do the if
ثم تم اختبار القيميتين هل هي متساوية
في حالة أنها متساوي سيقوم البرنامج بطباعة "if condition was tru "
في حالة كونها غير متساوية سيتم طباعة "Don with the if statement" وهذا السطر هو ما سيتم طباعته بعد اختبار الشرط لأن القيمتين غير متساوية.



المعاملات المنطقية الشرطية :
  1. معامل AND الشرطي (&&) : يجعلك قادرا على التحقق من توافق جميع الشروط
(IF (SEX==FEMALE && AGE<=21
وكذلك يمكنك من وضع أكثر من علاقتين بداخل عبارة IF
(IF (X<5 && Y<10 && Z<10
فإذا توفرت الشروط يتم الوصول للعبارة

2. معامل OR الشرطي ( || ) : في بعض الأحيان قد لاترغب في كون جميع الشروط صحيحة ويكفي أن يكون شرط واحد فقط من هذه الشروط صحيحة فعندها نستخدم معامل OR
(IF (SEX==FEMALE || AGE<=21
وفي بعض الأحيان قد تجد نفسك بحاجة لإستخدام أوامر AND,OR معا.
(IF (SEX=="F" || SEX=="M" && AGE<=21
يتم تنفيذ عبارة IF متى ما تحقق أحد شرطي OR  مع تحقق شرط AND




  • ترتيب المعاملات (الأسبقية) :



 
Support : Creating Website | Johny Template | Mas Template
copyright © 2011. عالم الكمبيوتر - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger تعريب ساهر حسن صاحب مدونه عاشق بلوجر