تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
دروس للمبتدئين عن أساسيات التعامل مع php
#1
بسم الله الرحمن الرحيم




( من مواضيع العضو : روح مشرقة - المنتدى القديم )

تم تجميع الدروس في هذا الموضوع
-------------------------------------------------
الدرس الأول


اريد ان اقدم هذه الدروس لجميع المبتدئين في التعامل مع php وارجو من الله العلي العظيم التوفيق والفائدة للجميع...



الدرس الاول :


انواع scripting language:


أولاً


server side scripting language

وهنا يتم تنفيذ الكود في جهاز الخادم باستخدام special web server application مثل:

IIS وهو اختصار الى Internet Information Server
Apache>> تعاملت معه بالبداية وسبب لي مشاكل مع قاعدة البيانات mysql فاستبدلته بالتالي..
wamp >> وهذا ماقمت بالتعامل معه كخادم حيث انه مرن في التعامل مع mysql 5

ومن الامثلة على هذا النوع من اللغات هي:
PHP,ASP,CGI.......إلخ

ثانيا :

client side scripting language


هنا تتم المعالجة في جهاز العميل مباشرة بوجود برنامج المستعرض طبعاً والذي من خلاله يتم عرض النتائج على شكل html.


ومن الامثلة على هذا النوع من اللغات هي:
JAVA Script ,VB Script......إلخ

ماهو php :

بداية هو اختصار لـ hypertext preprocessor

وتلاحظون معي جميعاً ان الاختصار يبدا بحرف h بينما كلمة php تبدا بحرف p ؟
الجواب هو ان php تعتبر من recursive abbreviating

أي تعتبر من الاختصارات الغير مرتبة كما هو بالحقيقة تكتب كاملة فلاحظ لو اننا جينا نكتبها كما هي تكتب كاملة لكتبناها هكذا hpp ولكنها كتبت بالشكل php.

تعريف php

PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML

واضح كما يبدوا من التعريف انها لغة صممت بشكل رئيسي لتطوير المواقع ويمكن دمجها مع لغة html طبعاً.

والفرق الاساسي بين php و html ان php تقوم بمعالجة للنماذج وغيرها من قيامها بعمليات حسابية وغيرها
بينما html تعتبر من markup language اي انها تستخدم لعرض النصوص والصور دون قيامها بأي وظيفة معالجة كما في php.


نبدأ بالبرامج :


البرنامج الأول : php syntax

PHP كود :
<html
<
head
<
title>First PHP Script</title
</
head
<
body
<?
php 
phpinfo
(); 
?> 
</body> 
</html> 
سأوضح لكم
دالة phpinfo() تقوم باستعراض اعدادات php طبقوا الكود وسيتضح لكم كل شي ان شالله


البرنامج الثاني :


PHP كود :
<html
<
head
    <
meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
    <
title>HelloWorld!</title
</
head
<
body
The following was created by PHP:  
<?
php 
print ("Hello, world!"); 
?> 
</body> 

أما هذا البرنامج فيقوم بطباعة جملة hello,world على صفحة المستعرض عن طريق دالة print() وهذه وظيفه لاتقوم بها html

البرنامج الثالث :

PHP كود :
<html
<
head
    <
meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
    <
title>HelloWorld!</title
</
head
<
body
The following was created by PHP:  
<?
php 
print "<font color=\"red\">Hello, <big>world!</big></font>"
?> 
</body> 


البرنامج يقوم بطباعة جملة hellow world ولكن بتنسيقات ( لون الجملة احمر وتكون big اي حجمها سيكون كبير
لن اشرح لكم tag لل html لانها واضحة باذن الله وسهلة وتكيزنا هنا بالدروس على php

ولكنكم ستسألون انفسكم سؤالاً:


لماذا تم وضع علامة \ قبل لون الخط red في جملة الطباعة؟؟
ساجيب
وضعنا هذه العلامة\ حتى لا يسبب اشكالية لدالةprint() فتظن الprint ان " الموجودة قبل red هي نهاية لدالة الطباعه والتي بداناها ب" كما ترون.


وضع تعليقات comments في البرنامج:

هناك عدة طرق:

1- // وتستخدم لكتابة تعليق من سطر واحد
2- # لكتابة تعليق من سطر واحد ايضاً
3- /**/ لكتابة تعليق مكون من أكثر من سطر

متطلبات عمل البرنامج :

أولا :
قم بتحميل برنامج wamp server او apache


ثانيا:

قم بتحميل برنامج php coder >> ليس ضروريا اذ انه بامكانك كتابة البرنامج بالمفكرة وحفظها بامتداد php ولكن البرنامج به ميزات رائعه اي انه يلون الكود ويرقم السطور ايضا فيكون اسهل في حالات وجود خطأ ما.

ثالثا:

بعد كتابة برنامجك قم بحفظه في الامتداد التالي:
c://APPSERV/WWW
حيث ان www تمثل localhost

رابعا:

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

إقتباس :http://localhost/filename.php
يا عالما بحالي 
الرد }}}}
تم الشكر بواسطة:
#2
بسم الله الرحمن الرحيم


الدرس الثاني :


اعزائي بعدما تقوم لغة php بعملية المعالجة ترسل للعميل صفحات متغيرة بمحتواها (dynamic page content) وليست صفحات ثابته (static page content) وللتوضيح اكثر :

مثلاً :
عندما يقوم اي شخص بالتسجيل بمنتدانا العزيز ليس بالضروري وليس من الثابت ان تظهر الصفحة التي تقول :

اهلا بك (اسم الشخص)


فقد تظهر الصفحة التالية :




لايمكنك الدخول للاسباب التالية..................

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

تحتوي لغة php على المتغيرات(variable) وسوف نتعرف على المتغيرات بلغة php

تركيبة المتغيرات وبنيتها : variable syntax

1- جميع أسماء المتغيرات لابد أن تبدا بالعلامة $
2- بعد علامة $ ممكن ان نلحقها بحرف او underscore (شرطة سفلية)
3- لايمكن أن يبدا اسم المتغير برقم.
4- لايجوز استخدام الspace بين حروف اسم المتغير
5- اسم المتغير case sensitive أي انها حساسة بالنسبة للحروف الصغيرة والكبيرة اي انه لو كتبت متغير A$ يختلف عن المتغير a$

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

أنواع المتغيرات : variable type

1- متغيرات رقميةnumber
2- متغيرات حرفية string
3-المصفوفات arrays

وهناك نوعين من المصفوفات:

الأول :

indexed array
ويستخدم هذا النوع من المصفوفات الأرقام بالمفاتيح (key)

مثال :

PHP كود :
$array[2]; 



النوع الثاني :

associated array
وتستخدم الحروف بالمفاتيح (key)

مثال :

PHP كود :
$array[a]; 


4- ال objects

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


تخصيص قيمة للمتغيرات: (assigning value to variable)

1- تختلف لغة php عن c++ في انها لاتحتاج لتعريف متغيراتها(declare) واعطائها قيم ابتدائية(initialize) حيث ان المتغير في php حسب قيمته المتخصصة ياخذ التعريف فلا يحتاج اجراء تعريف للمتغيرات اي لايحتاج ان نكتب مثلا

PHP كود :
int $a=1

فنكتفي بكتابة :
PHP كود :
$a

2- يتم استخدام عملية المساواة =(equality) في عملية تخصيص قيمة للمتغيرات


مثال :

$
PHP كود :
year 2003// The current year. 
$june_avg 88// The average temperature for the month of June. 
$page_title 'Weather Reports'// A title for the page 
.



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

الأخطاء (errors) في php

أولاً :
parse error

تكون الاخطاء عبارة عن نسيان لعلامة الفاصلة المنقوطة semicolons; أو نسي اقفال الاقواس parantheses () أو نسيان قفل علامة التنصيص quotation marks ""

ثانياً :

undefined variable error


وتكون هذا النوع من الاخطاء ناتجة من اخطاء بكتابة اسم المتغير .

مثال تطبيقي على المتغيرات :

PHP كود :
<html
<
head
    <
meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
    <
title>Variables</title
</
head
<
body
<?
php // Script 2.3 - variables.php 

// An address: 
$street "100 Main Street"
$city "State College"
$state "PA"
$zip 16801

// Print the address. 
print "The address is:<br />$street <br />$city $state $zip"

?> 
</body> 
</html> 

مثال تطبيقي آخر :

PHP كود :
<html xmlns="http://www.w3.org/1999/xhtml"
<
head
    <
meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
    <
title>Quotes</title
</
head
<
body
<?
php // Script 2.4 - quotes.php 

// Single or double quotation marks won't matter here: 
$first_name 'Larry'
$last_name "Ullman"

// Single or double quotation marks DOES matter here: 
$name1 '$first_name $last_name'
$name2 "$first_name $last_name"

// Single or double quotation marks DOES matter here: 
print "<p>name1 is $name1 <br /> 
name2 is 
$name2</p>"

print 
'<p>name1 is $name1 <br /> 
name2 is $name2</p>'


?> 
</body> 
</html> 

مثال آخر :

PHP كود :
<html xmlns="http://www.w3.org/1999/xhtml"
<
head
    <
meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
    <
title>Using Print_R()</title
</
head
<
body
<
pre
<?
php // Script 2.1 - print_r.php 

print_r ($GLOBALS); 

?> 
</pre> 
</body> 
</html> 

وسوف تلاحظ اننا كتبنا التالي لدالة الطباعه وهي تختلف عن دالة الطباعه السابقة

PHP كود :
print_r ($GLOBALS); 

اتدرون لماذا؟

لان المتغير هنا من نوع مصفوفة وهذه هي طريقة من طرق طباعة المصفوفات ساقوم بشرح المصفوفات بشكل تفصيلي اكثر في الدروس القادمة ان شالله تعالى ولكن حبيت اعطي فكرة مبسطة طبقوا الكود وشوفوا النتيجة
يا عالما بحالي 
الرد }}}}
تم الشكر بواسطة:
#3
بسم الله الرحمن الرحيم



الدرس الثالث :


ملاحظة :
اعزائي اذا نريد تعريف نوع المتغير في php فهكذا يتم تعريف المتغير
....

PHP كود :
$x=(integer)5

لانني في الدرس الثاني أخطات بها نرجو المعذرة


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

Form Attributes (خصائص النموذج ) :

1- action attribute :
وظيفة هذه الخاصية اخبار الخادم ( server) أي صفحة او سكريبت (script ) سيستقبل البيانات (data) من النموذج (form)

PHP كود :
<form  action="handle_form.php"

ففي المثال السابق تقوم الصفحة المسماة باسم handle_form.php باستقبال البيانات من النموذج ومعالجتها.





ولاحظ هنا بالمثال اننا ذكرنا اسم الصفحة مباشرة بدون ذكر امتداد الصفحة وذلك لان جميع الصفحات موجودة بمجلد واحد داخل مجلد www ولكن اذا لم تكن الصفحة المعالجة التي ستسقبل البيانات من النموذج موجودة بنفس ذاك المجلد فلابد من ذكر المسار كاملاً.

ملاحظة:

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


2- method attribute


ووظيفة هذه الخاصية للنموذج اخبار الخادم بكيفية ارسال بيانات النموذج الى السكريبت المعالج (الصفحة المعالجة) handling script

مثال :

PHP كود :
<form  method="post" action="handle_form.php"



وهناك طريقتين من طرق الارسال:

1-Ger method:
وهنا يتم ارسال بيانات النموذج ملحقة كجزء من URL)UNIFORM RESOURCE LOCATOR)

2- Post nethod:
وهنا يتم ارسال البيانات بشكل مخفي بشكل سري أي ان المستخدم لايستطيع مشاهدة بيانات النموذج المرسلة وهنا بهذه الطريقة نحصل على سرية وامان اكثر.

اذاً متى نستخدم الطريقة وعلى أي اساس نختار الطريقة المناسبة:

1- يفضل استخدام الطريقة الاولى في حالات كون بيانات النموذج المرسلة قليلة ومحدودة.
2- لايفضل استخدام الطريقة الاولى في حال كون البيانات المرسلة سرية جدا مثل pasword.
3- الصفحة الناتجة من نموذج يستخدم الطريقة الاولى تكون قابلة للحفظ بالمفضلة bookmarked
بينما لايمكن ذلك في حال استخدام الطريقة الثانية.



استقبال بيانات النموذج :

يتم تفعيل (triggered) لل php script بعد الضغط على زر submit ففي هذه الحالة وبعد الضغط على زر الارسال submit تقوم الصفحة المعالجة والموجودة في خاصية action كما ذكرنا سابقا باستقبال بيانات النموذج ومعالجتها


عرض الأخطاء(displaying errors):

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

مثال:

PHP كود :
ini_set('display_errors',1); 

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

تلاحظ أننا بالامثلة السابقة لم نقم بتخزين المتغيرات بداخل مصفوفة post وذلك لان خاصية register_global=on ولكي تعرف ان هذه الخاصية فعالة ام لا يمكنك الاطلاع على اعدادت php من خلال دالة :

PHP كود :
phpinfo(); 

اي انه لو كانت الخاصية فعالة تستطيع php تمرير متغيرات وبيانات النموذج بشكل سليم وصحيح

ولكن اذا كانت الخاصية register_global=off اي انها غير فعالة ففي هذه الحالة لابد من استخدام طريقة حفظ المتغيرات بداخل مصفوفة post والتي ستكون واضحة لكم بالمثال :

الصفحة المحتوية على نموذج يطلب منك ادخال اسمك الاول فقط :
PHP كود :
<html xmlns="http://www.w3.org/1999/xhtml"
<
head
    <
meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
    <
title>HelloWorld!</title
</
head
<
body
<
form  method="post" action="handle_form.php"
<
input type="text" name="first_name"  value="your first name"/> 
</
form
</
body
</
html

الصفحة التي تعالج بيانات النموذج ويكون اسمها handle_form.php

PHP كود :
<html xmlns="http://www.w3.org/1999/xhtml"
<
head
    <
meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
    <
title>Your Forum Posting</title
</
head
<
body
<?
php // Script 5.3 - handle_post.php - second version after Script 5.2 

// Address error handing. 
ini_set ('display_errors'1); 
error_reporting (E_ALL & ~E_NOTICE); 

// In case register_globals is disabled. 
$name $_POST['first_name']; 

// Print the message. 
print "Thank you, $name, for your posting:<br /> 
"


?> 
</body> 
</html> 

يتضح لك من المثال السابق اننا قمنا بتخزين المتغير name بداخل المصفوفةpost وذلك لان خاصية register_global غير فعالة واريدك ان تنتبه ان index للمصفوفةpost لابد ان يكون اسم input text
اي انه في مثالنا اسم input text هو first_name..

ولكن لو كانت خاصية register_global فعالة فلا نقوم بتخزين المتغير name بداخل المصفوفة post ولكن انبهك هنا فمثلا لاحظ بالصفحة التي تحتوي النموذج لقد قمنا بتسمية input text باسم first_name ففي هذه الحالة سيكون مثالنا كالتالي اي اننا نقوم بطباعة المتغير والذي يكون اسمه هو نفس اسم input text :

PHP كود :
<html xmlns="http://www.w3.org/1999/xhtml"
<
head
    <
meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
    <
title>Your Forum Posting</title
</
head
<
body
<?
php // Script 5.3 - handle_post.php - second version after Script 5.2 

// Address error handing. 
ini_set ('display_errors'1); 
error_reporting (E_ALL & ~E_NOTICE); 

// In case register_globals is enabled. 
// Print the message. 
print "Thank you, $first_name, for your posting:<br /> 
"


?> 
</body> 
</html> 
PHP كود :
<html xmlns="http://www.w3.org/1999/xhtml"
<
head
    <
meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
    <
title>Your Forum Posting</title
</
head
<
body
<?
php // Script 5.3 - handle_post.php - second version after Script 5.2 

// Address error handing. 
ini_set ('display_errors'1); 
error_reporting (E_ALL & ~E_NOTICE); 

// In case register_globals is disabled. 
$name $_POST['first_name']; 

// Print the message. 
print "Thank you, $name, for your posting:<br /> 
"


?> 
</body> 
</html> 

يتضح لك من المثال السابق اننا قمنا بتخزين المتغير name بداخل المصفوفةpost وذلك لان خاصية register_global غير فعالة واريدك ان تنتبه ان index للمصفوفةpost لابد ان يكون اسم input text
اي انه في مثالنا اسم input text هو first_name..

ولكن لو كانت خاصية register_global فعالة فلا نقوم بتخزين المتغير name بداخل المصفوفة post ولكن انبهك هنا فمثلا لاحظ بالصفحة التي تحتوي النموذج لقد قمنا بتسمية input text باسم first_name ففي هذه الحالة سيكون مثالنا كالتالي اي اننا نقوم بطباعة المتغير والذي يكون اسمه هو نفس اسم input text :

PHP كود :
<html xmlns="http://www.w3.org/1999/xhtml"
<
head
    <
meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
    <
title>Your Forum Posting</title
</
head
<
body
<?
php // Script 5.3 - handle_post.php - second version after Script 5.2 

// Address error handing. 
ini_set ('display_errors'1); 
error_reporting (E_ALL & ~E_NOTICE); 

// In case register_globals is enabled. 
// Print the message. 
print "Thank you, $first_name, for your posting:<br /> 
"


?> 
</body> 
</html> 
يا عالما بحالي 
الرد }}}}
تم الشكر بواسطة:
#4
ما شاء الله استمر و الى الامام
وانا متابع معك ان شاء الله
Cool
الرد }}}}
تم الشكر بواسطة:
#5
بسم الله الرحمن الرحيم

الدرس الرابع و حتى الحادي عشر
الدروس بصيغة صفحات
وسبب ذلك أنها طويلة وفيها إستفسارات ( في الردود )

لتحميلها

من هنا

تحياتي للجميع







يا عالما بحالي 
الرد }}}}
تم الشكر بواسطة:
#6
تسلم أخي ،،،

- الدروس ليست لي وإنما أقوم بنقلها فقط Cool -

تحياتي لك ، ومرورك يشرفني
يا عالما بحالي 
الرد }}}}
تم الشكر بواسطة:
#7
شكرا لصاحب الموضوع الاصلي

والف شكر لناقل الموضوع

يعطيكم العافية


Ahmad Jawad كتب :تسلم أخي ،،،

- الدروس ليست لي وإنما أقوم بنقلها فقط Cool -

تحياتي لك ، ومرورك يشرفني
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كتاب بايثون بلمسة للمبتدئين Ahmad Jawad 0 496 23-10-12, 08:44 AM
آخر رد: Ahmad Jawad

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم