الوب الديناميكي
لغة php

م.طارق جبر 22-2-2004

مقدمة.

لقد كان الهدف الأساسي من الوب، هو تبادل المعلومات بين الأشخاص على الشبكة مهما اختلفت أنواع الحواسيب وأنظمة التشغيل التي يعملون عليها، ولكن بعد أن حققت النجاح الكبير والانتشار الواسع، أصبحت بيئة جيدة من أجل إقامة النشاطات والأعمال الإلكترونية. تتطلب هذه النشاطات التفاعل بين الصفحات والزائرين لها. وهنا ظهرت الحاجة إلى الوب الديناميكي – أي الصفحات المتغيرة المحتوى بحسب شروط معينة – وقد ظهرت العديد من اللغات والتقنيات التي تسمح بهذه الآلية، منها CGI, ASP, JSP, PHP.
تحتوي الصفحات الديناميكية على تعليمات HTML العادية إضافة إلى تعليمات إحدى اللغات التي ذكرناها، PHP مثلاً. يقوم المخدم قبل إرسال صفحة الوب إلى الزبون الذي طلبها بالتعرف على نوع هذه الصفحة وذلك بحسب لاحقتها، فإذا كانت اللاحقة html أو htm يقوم المخدم بإرسال الصفحة دون أي تدخل، ولكن في حال كانت اللاحقة php مثلاً فإن المخدم يقوم بقراءة التعليمات، فيرسل تعليمات HTML مباشرة إلى الزبون، أما تعليمات PHP فيقوم بتنفيذها. هذه التعليمات يمكن أن تقوم بوظائف عديدة مثلاً الوصول إلى قاعدة معطيات. قد تُنتج تعليمات HTML جديدة يتم إرسالها إلى متصفح الوب الخاص بالزبون والذي يقوم بدوره بتنفيذ تعليمات HTML.
يمكن أن نذكر كمثال موقع الجمعية المعلوماتية السورية. فبعد أن يتم الولوج إلى الموقع، يمكن للمستخدم أن يحصل على معلومات عن أرقام الهواتف التي دخل منها إلى الإنترنت وكذلك الأوقات التي دخل فيها، وهذه المعلومات سوف تختلف من مستخدم إلى آخر رغم أن الصفحة المستخدمة هي نفسها لجميع المستخدمين، والذي يحصل هو أن التعليمات الموجودة في الصفحة تقوم بالوصول إلى قاعدة المعطيات، وبحسب الاسم تحصل على معلومات مختلفة في كل مرّة.

? كيف يمكن الحصول على الأدوات اللازمة من أجل كتابة صفحات PHP
في الواقع الأدوات الخاصة بـ PHP تكون على شكل حزمة في ملف من نوع Zip يمكن تحميله من الموقع التالي:
http://www.php.net/downloads.php

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

كيف يمكن تحضير البيئة من أجل البدء بالعمل؟
نحتاج إلى الحزمة سابقة الذكر، وكذلك نحتاج إلى مخدم وب web server، وهناك العديد من الأسماء التي يمكن ذكرها هنا منها: Apache و IIS(Internet Information Server) الخاص بـ Microsoft. وهذا المخدم موجود بشكل افتراضي في إصدارات Windows NT/2000/XP.
الخطوات:
1- من أجل تثبيت IIS في إصدارات NT/2000/XP نقوم بما يلي:
a. من لوحة التحكم => إضافة وإزالة البرامج => مكونات النظام (windows component)
b. نختار IIS
c. نضع القرص المضغوط الخاص بـ Windows
d. نضغط موافق.
2- نقوم بفك ضغط حزمة الـ PHP باستخدام أي برنامج ضغط متاح مثل WinZip.
3- ننقل الملف php.ini-dist إلى المجلد الخاص بـ Windows ونقوم بتغيير لاحقته ليصبح php.ini.
4- نفتحه بواسطة أي محرر نصوص ونبحث عن المتحول extension_dir ونغير قيمته لتصبح extension_dir = c:\php.
5- نقوم بتشغيل برنامج التحكم بمخدم الوب (IIS)، وذلك من لوحة التحكم => أدوات الإدارة => Internet Services Manager
6- نختار الصفحة "Home page"
7- بالضغط على الزر "Configuration" تظهر النافذة التالية:


8- وبعد الضغط على الزر "Add" ندخل المعلومات كما هو ظاهر في الشكل السابق.
9- نضع الصفحات الجديدة في المجلد c:\Inetpub\wwwroot. طبعاً يمكن أن نضعها في أماكن أخرى ولكنه مكان جيد للبدء بما أننا لا نعرف الكثير من التفاصيل.

مثال:
في الواقع جميع هذه اللغات تتعامل بشكل خاص مع نماذج HTML (HTML Forms) والتي تعتبر حاوية تحتوي عناصر الإدخال مثل مربع نص Text Box، صندوق اختيار Check Box وغيرها.
بالنظر إلى المثال التالي:


<html>
<head>
<title> HTML page </title>
</head>
<body>
<form method=”Get” action=”test.php”>
<input type=”text” name=”textField”>
<input type=”submit” value=”إرسال”>
</form>
</body>
</html>


نجد أننا وضعنا عناصر الإدخال على نموذج Form يتمتع بالخاصية method وقيم هذه الخاصية متعلقة بالبرتوكول http ولكن مبدئياً لنعطيها القيمة Get. أما الخاصية الأخرى action فهي تحمل عنوان صفحة php التي سوف تعالج هذا الطلب. يتم إرسال الطلب مع محتويات النموذج (أسماء حقول الإدخال مع قيمها) إلى الصفحة المصرح عنها في الخاصية action عند الضغط على زر من النوع submit.

لنقوم الآن بكتابة صفحة php تقرأ قيمة حقل الإدخال textField في الصفحة السابقة وتطبعه ولنسمي هذه الصفحة test.php.
الوسم الخاص بـ php هو <? .. ?>.

<html>
<head>
<title> PHP page </title>
</head>
<body>
<p>The value of the textField is :
<?
echo $textField;
?>
</p>
</body>
</html>


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

كيف يمكن الحصول على مساعدة في حال احتجنا إليها؟

يمكن ذلك بتحميل ملف المساعد الخاص باللغة من الموقع التالي:

كما يمكن استخدام محركات البحث كما رأينا سابقاً.