آموزش كدنويسي PHP ( جلسه 13 )
استفاده از Post يا Get
دو حالت براي مشخصه Method وجود دارد : Get و Post . هر چند اين دو حالت در تعدادي از موارد تفاوت زيادي در نتيجه كار ندارند اما مورادي نيز وجود دارد كه برنامه نويس براي كسب نتيجه مطلوب بايد از تفاوت بين اين دو اطلاع داشته باشد.
تفاوت اين دو در چگونگي ارسال اطلاعات از فرم به اسكريپت پردازشگر مي باشد. با استفاده از روش Get اطلاعات به دست آمده از فرم ، به عنوان بخشي از يك URL انتقال مي يابد. اما در روش Post ، اطلاعات ، در حقيقت به صورت نامرئي منتقل مي شود. مثال http://www.dmcinsights.com/php/HandleForm.php?FirstName\Larry&LastName=Ullman.
ولي در Post داريم http://www.dmcinsights.com/php/handleForm.php.
در روش get اگر براي كاربر يك رمز عبور را در يك فيلد رمز تايپ كنيد و فرد ديگري در كنار شما باشد به رمز پي مي برد.
در اين روش سطح امنيتي بالاتر است. طرز استفاده از آن در مثال بالا در ادامه خط :
<from action="HandleForm.php" method=post>
ساخت يك فرم ديگر با توضيحات بيشتر :
براي ساختن فرم بايستي از كد Html استفاده كنيم. يك مثال از يك فرم:
|
<form method="POST" action="Page.php" name="MyForm" target="_self"> |
همان طور كه مي بينيد چند تا تگ ساده هستند كه يك تگ <form> </form> هست و چند تا تگ ديگر. كه تگ هاي مياني مربوط به اشيا فرم هستند.
بررسي تگ <form> :
اين تگ هم مثل بقيه تگ هاي html يك سري خصوصيت دارد.
Method : نوع درخواست را مشخص مي كند كه مي تواند POST و يا GET باشد در صورتي كه اصلا اين را ننويسيم به صورت پيش فرض Get در نظر گرفته مي شود.
Action : صفحه مقصد را مشخص مي كند ، يعني پس از پر كردن فرم براي ارسال آن به سمت سرور به كدام صفحه ارسال شود. در ادامه مي بينيم كه كد هاي مربوط به فرم را بايد در صفحه مقصد بنويسيم. در صورتي كه اين را ننويسيم صفحه جاري ، صفحه مقصد در نظر گرفته مي شود.
Name : نام فرم است كه براي php نيازي به آن نداريم ولي اگه بخواهيم از جاوا اسكريپت استفاده كنيم نياز مي شود. مثل چك كردن صحت ايميل قبل از ارسال آن.
Target : نوع باز شدن صفحه مقصد كه شامل صفحه جاري ، صفحه جديد ، صفحه پدر ، يك فريم خاص و ... است . ممكن است تا به حال به صفحاتي بر خورده باشيد كه پس از فشردن دكمه مربوط به ارسال فرم نتيجه را در يك صفحه جديد مشاهده كرديد.
خوب تا اينجا html بود كه خودتان با FrontPage يا برنامه هاي مربوطه مي توانستيد بسازيد. و مربوط به ارسال اطلاعات بود.
خوب براي اين كه با دريافت هم آشنا شويم يك مثال مي زنيم :
فرض كنيم مي خواهيم برنامه اي بنويسيم كه يك رشته را دريافت كرده و آن را 5 بار چاپ كند؟
اول فرم آن را مي سازيم ( كه html هست(
|
<form method="POST" action="print.php"> |
اين فرم يك فرم خيلي ساده است كه صفحه مقصد آن print.php هست و چون آدرسي داده نشده پس صفحه اي كه فرم در آن است و صفحه اي كه كد هاي php در آن نوشته شده ( print.php ) بايستي در يك فولدر باشند.
اين فرم يك فيلد ( جايي كه اطلاعات را در آن مي نويسيم ) و يك دكمه دارد.
خوب حالا كد php (صفحه print.php : )
|
<? |
در خط اول به يك متغير به نام my_str مقدار
|
$_POST['T1'] |
را انتصاب داده ايم . اين مقدار براي دسترسي به اشياي فرم هست و T1 نام آن فيلد ما است كه محتواي آن را در يك متغير قرار داده ايم و در حلقه آن را 5 بار چاپ كرديم.
براي دسترسي به اشياي فرم در صورتي كه با Get ارسال شده باشند از
|
$_GET['FieldName'] |
استفاده مي كنيم.