سايت هاي وب از فرم ها براي منظور هاي مختلفي استفاده مي‌كنند، از قبيل: ثبت نام كردن كاربران و يا ورود آنها به فضاهاي خاص وب  (login). دريافت نظرات وفرم هاي نظر سنجي، و يا خريد و فروش online.

برنامه نويسان معمولا از اسكريپت هاي CGI، كه به زبان perl نوشته شده اند. براي در اختيار گرفتن اين اطلاعات استفاده مي‌كنند، اما در اكثر مواقع يا استفاده از PHP نيز مي‌توان به راحتي به نتايج مشابهي دست پيدا كرد . بر خلاف اسكريپت هاي CGI كه شما بايد كدهايي را بنويسيد كه اطلاعات ارسال شده را در اختيار بگيرند، PHP داراي پشتيباني از پيش تعريف شده براي دريافت اين اطلاعات از فرم هاي HTML مي‌باشد.

در اين فصل مباني ايجاد فرم هاي HTML و چگونگي ارسال اطلاعات اين فرم ها به اسكريپت هاي PHP توضيح داده شده اند.

 

  • براي ايجاد يك فرم HTML:

بايد يك سند جديد در ويرايشگر متن ايجاد كنيد و كد زير را در آن تايپ كنيم.

<HTML>< HEAD >< TITLE> HTML Form </TITLE> </HEAD>

و بين برچسبهاي BODY كد زير را قرار دهيم:

<FORM ACTION=‘Handle-Form .php’>

به اين معنا كه در فايل handle-form در همان دايركتوري form html روي سرويس دهنده قرار دارد.

برچسبهاي <FORM>، </FORM> محدوده عناصر فرم در متن HTML را مشخص مي‌كنند. مشخصه[1] ACTION، براي سرويس دهنده، برنامه (يا اسكريپتي) كه اطلاعات فرم را دريافت مي‌كند. مشخص مي‌كند.

اين صفحه را با نام form.php مي‌توان ذخيره كرد.

اكنون براي اضافه كردن فيلد هايي به اين فرم به صورت زير عمل مي‌كنيم .

بين برچسبهاي </FORM> , <FORM> يك خط جديد ايجاد مي‌كنيم، فيلد نام به طور 2C از نوع تني با عنوان First name :

First Name:

<INPUT TYPE = TEXT NAME=‘First Name‘ SIZE= 20><BR>

فيلد فاميلي به طول 40 و عنوان last name از نوع تني

Last Name:

<INPUT TYPE =TEXT NAME=

LastName SIZE=40><BR>

 

 

  • براي ارسال فرم با تابع پيش ساخته Submit:

<INPUT TYPE =SUBMIT NAME = SUBMIT’ VALUE=’Submit!’>

مقدار مشخصه VALUE، عبارتي را كه بر روي دكمه ارسال اصلاعات (Submit) نمايش داده میشود را معین میکند. . براي مثال مي‌توانيد از ‘GO’ و يا ‘Enter’ و يا هر عبارت ديگري به جاي ‘Submit’ استفاده كنيد.

همواره در طراحي فرم هاي خود از reset استفاده مي‌كنيم. براي اين منظور، عبارت زير را به كد فرم HTML اضافه مي‌كنيم.

<INPUT TYPE =RESET NAME =RESET VALUE= ‘Reset’>

<Br> براي انتقال بر سر خط بعدي است.

  • استفاده از Get يا Post

مشخصه METHOD در برچسب <FORM> نحوه ارسال اطلاعات را مشخص مي‌كند. از آنجايي كه در مثال قبلي، اطلاعات به سرويس دهنده ارسال نمي‌شدند، احتياجي به استفاده از اين مشخصه نبود.

دو حالت براي مشخصه METHOD وجود دارد: GET و POST. هر چند اين دو حالت در تعدادي از موارد تفاوت زيادي در نتيجه كار ايجاد نمي‌كنند. اما مواردي نيز وجود دارند، كه برنامه نويس براي كسب نتيجه مطلوب بايد از تفاوت بين اين دو و نحوه عملكرد هر، يك اطلاع حاصل كند.

تفاوت بين اين دو در چگونگي ارسال اطلاعات از فرم به اسكريپت پردازشگر مي‌باشد. با استفاده از روش GET، اطلاعات بدست آمده از فرم،به عنوان بخشي از يك URL، انتقال مي‌يابد. اما در روش POST، اطلاعات، در حقيقت به صورت نامرئي منتقل مي‌شود. براي مثال، اگر در ارسال اطلاعات فرم مثال قبلي از روش GET استفاده كنيم. URL توليد شده، چيزي شبيه به عبارت زير مي‌باشد:

http://www.DMCinsights.com/php/HandleForm.php?FirstName=Larry&LastName=U man

در حاليكه اگر از روش POST استفاده كنيم كاربر نهايي تنها عبارت زير را مشاهده مي‌كند.

http://www.DMCinsights.com/php/HandleForm .php

در هنگام تصميم گيري براي انتخاب روش ارسال اطلاعات سه عامل زير را بايد در نظر بگيريم:

١-اگر از روش GET استفاده كنيم، مقدار اطلاعاتي كه مي‌توانيم ارسال كنيم محدود مي‌باشند.

٢-در روش GET، اگر براي مثال كاربر يك رمز عبور را در يك فيلد password تايپ كرده باشد و فرد ديگر نيز در حال مشاهده صفحه نمايش كاربر باشد، به راحتي مي‌تواند از رمز عبور كاربر، آگاه شود. به عبارت ديگر در اين روش، سطح امنيتي پايين تر از روش POST مي‌باشد.

٣-صفحه اي كه حاوي فرمي با مشخصه METHOD =          GET مي‌باشد. مي‌تواند نشان گذاري شود (bookmark)، در حالتي كه در روش POST ، اين كار انجام پذير نمي‌باشد.

براي افزودن مشخصه METHOD به اسكريپت:

درون برچسب <FORM> عبارت METHOD = POST را اضافه مي‌كنيم.

اسكريپ خود را ذخيره و ‌آنرا به سرويس دهنده خود منتقل كنيد. (Upload)

تا اينجا فرم را ايجاد كرديم حال نياز به اسكريپت  php داريم كه اطلاعات اين فرم را دريافت كند.

 

براي ايجاد اسكريپت   HandleForm.php

ويرايشگر متن خود را باز مي‌كنيم و در آن يك سند (document) جديد ايجاد كرده و عبارات زير را در ‌آن تايپ مي‌كنيم:

<HTML>

<HEAD>

<TITLE>Form Results</TITLE>

<BODY>

<?php

/*This page receives and handles the data generated by ‘form.html’.*/

?>

</BODY>

</HTML>

اين، يك قالب استاندارد براي يك صفحه PHP مي‌باشد توضيح اضافه شده به اين برنامه، هدف برنامه را معرفي مي‌كند. با وجود اينكه اطلاعات صفحه form.htm ، با توجه به مسير مشخص شده در مشخصه ACTION، مستقيما به اين اسكريپت فرستاده مي‌شود، اين توضيح باعث مي‌شود كه ما به هنگام مشاهده اسكريپت PHP متوجه شويم كه اين اسكريپت اطلاعات مربوط به كدام صفحه را پردازش مي‌كند.

بعد از توضيح و قبل از برچسب <?، يك خط جديد ايجاد كرده و دستورات زير را تايپ مي‌كنيم.

Print ‘Your first name is $FirstName.<BR>/n’;

Print ‘Your last name is $LastNme .<BR>/n’;

Print ‘This is what you had to Say :<BR>\n $Comments<BR>\n’;

اسكريپت خود را با نام HndleForm.php ذخيره مي‌كنيم.

نكته جالب در اين ميان اين است كه با قرار دادن يك علامت ($) dollar، قبل از نامي كه توسط مشخصه NAME به يك عنصر در فرم HTML، نسبت داده ايم. يك متغير ايجاد كرده ايم كه حاوي مقادير وارد شده در عنصر يا فيلد مورد نظر مي‌باشد. اين ويژگي نه تنها در ارتباط با برچسب <INPUT> كاربرد دارد. بلكه مي‌توان در مورد برچسبهاي <TEXT>، Mtextarea>، <SELECT> نيز از ويژگي استفاده كرد يكي از دلايل برتري PHP در مقابل تكنولوژي هاي ديگر (مانند اسكريپت هاي CGI) همين سادگي در اختيار گرفتن اطلاعات مي‌باشد.