Maverick

دروس متقدمة في برمجة البي اتش بي 2

5 ردود في هذا الموضوع

دروس متقدمة في برمجة البي اتش بي 2:

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

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

ربما كنت قد سمعت في احدى لغات البرمجة الاخرى غير البي اتش بي عن سهولة احضار المعلومات المرسلة من النموذج باستخدام متغيرات تسمى بال Global variables

و هي المتغيرات الشاملة التي يمكن استخدامها في جميع السكربتات الموجودة لديك لكن يمكن استعمالها في السكربت الذي تم استقبل المعلومات. فمثلا في لغة ال ASP

الطريقة سهلة باستخدام متغيرات ال REQUEST.QueryString لل GET و Request.Form لل POST.

الطريقة المستخدمة في لغة البي اتش بي تعادل سهولة طرق اللغات الاخرى و الطرق هي كالتالي:

$_GET:

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

لل Method في تعبير النموذج

<form method=”GET”>

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

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

الان دعونا نقوم بكتابة مثال للتجريب:

ساقوم ببناء نموذج يطلب من زائر الموقع بتزويد الموقع باسمه و يقوم السكربت بعرض جملة ترحيبية:

في ملف اسمه

Form.html

ضع الكود التالي

<form method=”GET” action=”index.php”>
<table border=1 cellspacing=0>
<tr><td>الرجاء ادخال اسمك في الفراغ</td><td><input type=”text” name=”myname”></td></tr>
<tr><td colspan=2><input type=”submit” value=”عرض”></td></tr>
</table>
</form>

و في ملف ال

Index.php

ضع الكود التالي:

echo “مرحبا بك يا”.$_GET[“myname”];

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

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

www.mywebsite.com/index.php?myname=rakan

الان مع ال $_POST:

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

و تستخدم بنفس الطريقة التي تستخدم فيها GET

لنقم بكتابة المثال الماضي بطريقة ال POST

في ملف اسمه

Form.html

ضع الكود التالي

<form method=”POST” action=”index.php”>
<table border=1 cellspacing=0>
<tr><td>الرجاء ادخال اسمك في الفراغ</td><td><input type=”text” name=”myname”></td></tr>
<tr><td colspan=2><center><input type=”submit” value=”عرض”></center></td></tr>
</table>
</form>

و في ملف ال

Index.php

ضع الكود التالي:

echo “مرحبا بك يا”.$_POST[“myname”];

لكن هذه المرة لن تكون القيم على الرابط في متصفحك فكما ذكرنا ال POST

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

كيفية التأكد من ان المتغيرات في المصفوفة تحتوي على قيمة:

معضم المبرجين من مختلف اللغات يحبون ان يقوموا بالتـأكد من ان بعض القيم المدخلة من قبل المستخدم ليست فارغة او صحيحة.

فمثلا قد تريد ان تقوم بالتأكد من ان البريد الالكتروني للزائر وضع بالشكل الصحيح كالتالي:

[email protected]

و هنا تاتي مهمة دوال موجودة في البي اتش بي لفصح المعلومات:

Isset(variable)

هذه الدالة تقوم بارجاع قيمة True

اذا كان المتغير يحتوي على قيمة و False اذا كان المتغير فارغا.

if(isset($_GET[“myname”]))
{
echo “لم يقم الزائر بادخال اسمه في حقل الاسم”;
{

Is_numeric(string)

و تستعمل هذه للتأكد من ان القيمة التالية تحتوي على ارقام فقط. و سوف تقوم بارجاع True اذا كانت القيمة المدخلة رقمية او False اذا كانت القيمة غير رقمية.

$MyPhoneNum = 009626546546546546465454
if(is_numeric($MyPhoneNum))
{
echo “القيمة رقمية”;
}
else
{
echo “القيمة ليست رقمية”;
}

strpos(Text,CharToFind)

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

هو النص الذي تريد ان تبحث في داخله.

و CharToFind هو الحرف الذي تريد ان تبحث عنه داخل النص.

$MyEmail = “[email protected]
if(strpos($MyEmail,”@”)===false)
{
echo “الريد الالكتروني لا يحتوي على اشارة @”;
}

مثال على ما تعلمناه:

ضع هذا الكود في ملف اسمه

Form.html

<form method="POST" action="index.php">
<table border=1 cellspacing=0>
<tr><td>ادخل اسمك</td><td><input type="text" name="myname"></td></tr>
<tr><td>ادخل بريدك الالكتروني</td><td><input type="text" name="myemail"></td></tr>
<tr><td colspan=2><center><input type="submit" value="ارسل"></center></td></tr>
</table>
</form>

و هذا كود ملف ال

Index.php

<?
$MyName = $_POST["myname"];
$MyEmail = $_POST["myemail"];
if(isset($MyName))
{
 //المتغير يحتوي على قيمة
 echo "hi ".$MyName."! how are you?";
}
else
{
 //المتغير لا يحتوي على قيمة
 echo "Hello stranger. Please enter your name";
}
if(isset($MyEmail))
{
 if(strpos($MyEmail,"@"))
 {
  echo "Your email is right";
 }
 else
 {
  echo "Please enter your email address in the form of [email protected]";
 }
}
else
{
 echo "Please go back and provide your email address";
}

تم تعديل بواسطه راكان الحنيطي
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الله يعافيك ياراكان ,, لكن لو لم يكن عليك تكليف فقط ضع في رابط مستقل سميه كيف تبدأ تعلم ال php ,, وضع فيه مايجب أن يكون لديك من برامج لتبدأ يعني سيرفر apache ويمكن تنزيله من هنا مثلا مع رابط ,, ومحرر النصوص المطلوب حسب خبرتك ,, يمكن كتابته بال Notepad لكنها متعبة فلو كان هنا برنامج محرر نصوص على ذوقك فسيساعدنا أكثر ,,

أخيرا بارك الله فيك ,,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اوكي ساقوم بفعل هذا الان :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مشكور اخي الكريم على الدرس الرائع وجزاك الله خيراً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا جزيلا الاخ الكريم 

لدى سوال حول كيفة حماية الموقع باستخدام htpasswd -htaccess

 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .