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

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

      الموضوع منقول
      ----------------------------------------------------------------------------------------------------------------------------------
      طرأت لي فكرة في تقديم ما لدي من معلومات حول برمجة الوب باستخدام لغة البي اتش بي و من خلال ما رأيته في دروس تعليم البي اتش بي العربية لاحظت انه ما تشرحه هو مباديء اللغة من ال:
      Echo الى ال Loopsو غيرها
      و من ذلك فقد قررت ان اقوم بوضع دروس متقدمة قليلا عما رأيته في هذا الدروس و ساقوم في الدروس القادمة ان اقوم بشرح كيفية تطبيق اساسيات اللغة في برمجة مواقع تحتوي على الكثير من الخصائاص التي يبحث عنها العرب في مواقعهم مثل سجل الزوار و التسجيل باسم دخول في الموقع و غيرها.

      اما عن الان فهناك عدة اشياء يجب علي ان اتحدث عنها قبل الدخول في شرح كيفية عمل مثل هذه البرامج الا وهي:
      1- HTML forms
      2- طرق نقل البيانات من صفحة الى اخرى.

      ارجو من القراء الاعزاء ان يكون لديهم المتطلبات التالية قبل الاكمال في قراءة الدروس و هذه المتطلبات ضروية جدا في فهم ما ساقوم بشرحه في الدروس الاتية. المتطلبات هي:
      1 - معرفة اساسيات لغة ال اتش تي ام ال.
      2 – معرفة في اساسيات لغة البي اتش بي.

      الان و نتكل على الله في شرح الدروس.
      في هذا الدرس ساقوم بشرح ما يسمى بال HTML forms.
      ترجمة هذه العبارة هي نماذج لغة الاتش تي ام ال و هي تستخدم في جعل زائر الموقع او العضو في الموقع من تعبئة المعلومات المطلوبة من قبل الموقع لجعل الصفحة تظهر معلومات معينة. مثلا تخيل انك تريد ان تقوم ببرمجة سجل للزوار. هنا سوف تطلب من زائر الموقع من كتابة اسمه و بريده الالكتروني و ايضا الجزء الاكثر اهمية في سجل الزوار و هو تعليق الزائر على الموقع. نماذج لغة الاتش تي ام ال تمكنك من هذا بكل سهولة عن طريق استخدام كلمات معينة تسمى بالHTML tags.
      و الكلمة الثاني تعني اللقب اوتعبير مميز عن شيء معين و هو يناسب اللغة لانها تحتوي على تعابير مميزة لوصف شيء معين في اللغة.
      التعبير المستخدم لنوذج لغة الاتش تي ام ال هو

      CODE

      <form>



      و هذا التعبير ياخذ بعض القيم في داخله تسمى بال Parameters
      و ما سيهمنا من هذه القيم الداخلية اثنان منهم و هما:
      1 – Method
      2 – Action
      الاول يعني الطريقة و هنا نقوم باعطائه قيمة لاحدى الطرق النستخدمة في نقل البيانات من النموذج و هناك طريقتان:
      1 – GET
      2 – POST

      اما عن الثانية فتعني التصرف و هنا نقوم باعطاءه مسار الصفحة المراد تمرير المعلومات اليها.
      على اي حال نرجع الى الطرف المستخدمة في نقل المعلومات و هما POST & GET
      طريقة الGET:

      هي الطريقة المستخدمة من قبل المستصفح اذا لم يتم اعطاء اي قيمة لل Method
      كيفية عمل ال GET:
      يما اننا في منتدى الفريق العربي ساقوم باخذ مثال من المنتدى لشرح ما اريد
      تصور انك اردت الذهاب الى لوحة التحكم الخاصة بك في منتدى الفريق العربي سوف تذهب الى الرابط الذي يحتوي على كلمة لوحة التحكم و الضغط عليه, من هنا سوف تلاحط ان هناك كلمات تم اضافتها الى اسم الملف على متصفحك.
      [img]http://www.arabteam2000.com/picload/Files/GET.jpg[img]
      لاحظ التالي:

      CODE

      Index.php?act=UserCP&CODE=00



      هنا اسم الملف هو Index.php
      و قام الرابط بتحويلك ال لوحة التحكم لكن كيف عرف المتصفح انك طلبت من هذا الملف انك تريد الذهاب الى لوحة التحكم؟
      الجواب في ال Act parameter
      Act=UserCP
      كلمة UserCP
      هي الدلالة للسكربت على انك تريد الذهاب الى لوحة التحكم و من هنا نعرف اننا نستطيع ان ننقل هذه المعلومة عن طريق الوصلة نفسها الي السكربت

      اما عن الطريقة الثانية و هي POST
      فهي الافضل من عدة نواحي و اهمها امن المعلومات
      Information security.
      و هذه الطريقة المستخدمة في الكثير من المصتفحات عوضا عن الطريقة الاولى.
      تخيل ان صفحتك تحتوي على نموذج يطلب الزائر تعبة 10 او اكثر من المعلومات الى سكربت معين. هنا تستطيع ان تلاحظ ان وصلة الموقع على متصفحك كبيرة جدا و غير مرتبة بالشكل الذي تطلبه او ممكن ان تحب ان لا يلاحظ زائر الموقع كيفية برمجة الموقع بحيث يستطيع اختراقه او عمل عدة اشياء تؤدي الى عدم عمل السكربت بالشكل المطلوب, هنا قد تريد اخفاء هذه المعلومات عن الزائر. و طريقة ال
      POST
      تمكنك من نقل المعلومات بطريقة مخفية عن الزائر بحيث لا يرى ما ينقل من معلومات بين السكربتات.

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

      CODE

      <form method=”GET” action=”index.php”>



      هذا سقوم بتنبيه المتصفح بان مبرمج الموقع يريد ان يقوم بوضع بعض الفراغات في الموقع ليقوم الزائر بتعبئتها.
      طبعا التعبير الذي يغلق النموذج هو

      CODE

      </form>



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

      CODE

      TextBox
      Textarea
      CheckBox
      Option box
      Combobox
      ListBox



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

      CODE

      <input type=”text” name=”myname”>



      و هنا التعبير المستخدم لبعض الادوات هو

      CODE

      <input>



      و لاحظ اننا نقول له باننا نريد ان نضع مربع نص هنا باستخدام ال
      Type parameter
      و نخصص اكثر بوضع قيمة
      Text
      بين علامتي التنصيص.
      و ايضا استخدمت هنا Name parameter
      و هو لاعطاء اسم للقيمة و التس سنقوم باحضار القيمة عند استعمال البي اتش بي لاحقا.

      CODE

      <input type=”password” name=”pass”>



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

      و هذه امثلة على استخدام الادوات الاخرى في النماذج:

      CODE

      <input type=”text” name=”address”>
      <textarea name=”comment”>



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

      و قد يتوجب البعض انه كيف سيقوم المتصفح بان المستخدم قام بتعبئة جميع الفراغات و يجب عليه ان يرسل معلومات هذا النموذج؟ الجواب هو في زر الذي يسمى بال Submit command button
      و هذا يتم ادخاله الى النموذج باستعمال ال

      CODE

      <input type=”submit” value=”ارسل المعلومات”>



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

      مثال على ما تعلمناه:
      ضع هذا الكود في ملف و سميه Loginform.html
      و لاحظ ان الاسم للملف اختياري.
      و من المتصفح يمكنك رؤية ما ينتج عن هذا الكود
      طبعا الكود غير متكامل لانه ينقصنا ملف الIndex.php
      و الذي سيستقبل المعلومات من النموذج و هذا يأتي لاحقا في الدروس القادمة

      CODE

      <form method="POST" action="index.php">
      <!-- افتتاح النموذج -->
      <table border=0 cellspacing=0>
      <tr><td class="fac" colspan=2><center><b>الرجاء الدخول باسم المستخدم خاصتك<b></center></td><tr>
      <tr><td class="fac">اسم المستخدم:</td><td class="fac"><input name="username" type="text"></td></tr>
      <tr><td class="fac">كلمة السر: </td><td class="fac"><input name="password" type="password"></td></tr>
      <tr><td colspan=2><center><input type="submit" value="ادخل"></center></td></tr>
      </table>
      </form>
      <!-- اغلاق النموذج -->
      ---------------------------------------------------------------------------------------------------------------------------------
      الموضوع منقول[/img]
    • دروس متقدمة في برمجة البي اتش بي 2

      الموضوع منقول
      ---------------------------------------------------------------------------------------------------------------------------------
      تحدثنا في الدرس السابق عن كيفية استعمال نماذج لغة ال اتش تي ام ال لارسال المعلومات من النموذج الى السكربت, و قد قمت بشرح طريقة استعمال التعابير المستخدمة لانشاء النموذج و الادوات التي تريد استخدامها في النموذج.
      الان و في هذا الدرس سوف اتحدث عن كيفية استقبال المعلومات المرسلة من النموذج و كيفية التأكد من انها تحتوي علي قيمة و غيرها من الامور:
      ربما كنت قد سمعت في احدى لغات البرمجة الاخرى غير البي اتش بي عن سهولة احضار المعلومات المرسلة من النموذج باستخدام متغيرات تسمى بال Global variables
      و هي المتغيرات الشاملة التي يمكن استخدامها في جميع السكربتات الموجودة لديك لكن يمكن استعمالها في السكربت الذي تم استقبل المعلومات. فمثلا في لغة ال ASP
      الطريقة سهلة باستخدام متغيرات ال REQUEST.QueryString لل GET و Request.Form لل POST.

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

      CODE

      <form method=”GET”>



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

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

      CODE

      <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
      ضع الكود التالي:

      CODE

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




      لاحظ ان المفتاح المستخدم لاحضار القيمة من المصفوفة هي اسم اداة مربع النص الذي يدخل المستخدم اسمه فيه.
      طبعا من الدرس الماضي اذا قمت بتجربة هذا السكربت تكون قد لاحظت ان اسم الدالة قد تم اضافتها الى رابط الموقع في متصفحك.
      mywebsite.com/index.php?myname=rakan

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

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

      في ملف اسمه
      Form.html
      ضع الكود التالي

      CODE

      <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
      ضع الكود التالي:

      CODE

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




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

      كيفية التأكد من ان المتغيرات في المصفوفة تحتوي على قيمة:
      معضم المبرجين من مختلف اللغات يحبون ان يقوموا بالتـأكد من ان بعض القيم المدخلة من قبل المستخدم ليست فارغة او صحيحة.
      فمثلا قد تريد ان تقوم بالتأكد من ان البريد الالكتروني للزائر وضع بالشكل الصحيح كالتالي:
      name@domain.com
      و هنا تاتي مهمة دوال موجودة في البي اتش بي لفصح المعلومات:

      CODE
      Isset(variable)



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

      CODE

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




      CODE

      Is_numeric(string)



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

      CODE

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




      CODE

      strpos(Text,CharToFind)



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

      CODE

      $MyEmail = “Rakan@MyDomain.com”
      if(strpos($MyEmail,”@”)===false)
      {
      echo “الريد الالكتروني لا يحتوي على اشارة @”;
      }




      مثال على ما تعلمناه:
      ضع هذا الكود في ملف اسمه
      Form.html

      CODE

      <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

      CODE

      <?
      $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 me@mydomain.com";
      }
      }
      else
      {
      echo "Please go back and provide your email address";
      }


      ---------------------------------------------------------------------------------------------------------------------------------
    • هتّان كتب:

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



      مشكووووووووره جداً على الرد واسف على التأخير
      الموضوع كما أنتيه شايفة منقول