سرفصلهای پست
آموزش PHP – متغیر های superglobal (گلوبال)
درود به همه ی دنبال کنندگان عزیز سایت میزفا. در این قسمت به ادامه ی جلسه ی گذشته از آموزش پی اچ پی به زبان ساده می پردازیم و متغیر های superglobal در php را پیش میبریم .
REQUEST_$ در php
REQUEST_$
برای جمع آوری داده ها پس از تایید (ارسال) فرم ها مورد استفاده قرار می گیرد.
برای درک بهتر موضوع به مثال زیر دقت نمایید :
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php //1 if ($_SERVER["REQUEST_METHOD"] == "POST") { //2 $name = $_REQUEST['fname']; //3 if (empty($name)) { echo "نام وارد نشده است"; } else { echo $name; } } ?> </body> </html>
در قطعه کد بالا یک فرم داریم که به روش post
اطلاعات خود را ارسال میکند. در این مثال ما میخواهیم به همین صفحه اطلاعات ارسال شود . شما میتوانید دستورات php را داخل فایلی جداگانه بنویسید و در action
آدرس فایل خود را ذکر کنید . در این مثال ما با استفاده از متغیر گلوبال SERVER_$ به نام اسکریپت جاری اشاره کرده ایم . درون فرم خود دو input
از نوع text
و submit
قرار داده ایم .
در بخش 1 که در کد نویسی با کامنت 1 مشخص کرده ایم ، روش ارسال فرم را بررسی کرده ایم.
در صورتی که به روش post
باشد کامنت شماره 2 اجرا می شود.
در بخش 2 مقدار موجود در textbox
که نام آن fname
می باشد را داخل متغیری به نام name$
ریخته ایم.
در بخش 3 متغیر name$
را بررسی کرده ایم و درصورت خالی بودن آن پیغام ” نام وارد نشده است” چاپ می شود و در غیر این صورت مقدار نام را برای ما چاپ میکند .
خروجی به صورت زیر است
حالت اول اگر نامی وارد نکنید و فرم را ارسال کنید :
حالت دوم اگر نام دلخواهی را وارد کنید:
POST_$ در php
$_POST درphp به طورکلی برای جمع آوری داده های فرم پس از ارسال یک فرم HTML با متد "post"
استفاده می شود. $_POST همچنین برای پاس دادن متغیرها استفاده می شود.
از این متد به صورت زیر استفاده می کنیم :
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { // collect value of input field $name = $_POST['fname']; if (empty($name)) { echo "نام وارد نشده است"; } else { echo $name; } } ?> </body> </html>
توضیحات کد بالا کاملا شبیه به مثال قبلی می باشد .
با این تفاوت که در این مپال برای دستیابی به مقادیر فرم از POST_$ استفاده کردیم. خروجی نیز عینا همانند مثال پیشین است.
GET_$ در Php
$_GET نیز برای جمع آوری داده های فرم پس از ارسال یک فرم HTML با متد get
استفاده میشود. این متغیر همچنین می تواند اطلاعات فرستاده شده در URL را جمع آوری نماید.
فرض کنید ما یک صفحه HTML داریم که دارای یک لینک با پارامتر های زیر می باشد :
<html> <body> <a href="test_get.php?subject=PHP&web=mizfa.com">Test $GET</a> </body> </html>
در این مثال هنگامی که کاربر بر روی لینک Test $GET کلیک میکند، پارامترهای subject
و web
به test_get.php
ارسال می شوند، و سپس شما می توانید با $_GET به مقادیر آن در test_get.php
دسترسی داشته باشید.
مثال زیر کد های صفحه ی test_get.php
را نشان میدهد:
<html> <body> <?php echo "Study " . $_GET['subject'] . " at " . $_GET['web']; ?> </body> </html>
خروجی به صورت زیر خواهد بود :
اگر در مباحث HTML نیاز به تمرین بیشتری دارید حتما مقالات آموزش HTML سایت میزفا را بخوانید. این جلسه از آموزش PHP به اتمام رسید در جلسات مرتبط با مدیریت فرم ها در رابطه به متد های POST و GET توضیحات بیشتری خواهیم داد.
شما میتونید برای توضیحات بیشتر درباره این موضوعات به سایت های w3school و php.net مراجعه نمایید.
2 پاسخ
با سلام و خسته نباشید
ببخشید من دریادگیری زبان phpو طراحی سایت فعالیت میکنم و یک سوالی داشتم:من میخواستم فرم ارسال پستی همانند سایت دیوار طراحی کنم که در آنجا وقتی عکس را انتخاب میکنیم
به طور مستقیم آپلود میشن
ومن هم می خواستم یه فرمی همچنین را طراحی کنم و الان نمی دونم که چجوری پس از اپلود عکس به طور خودکار آدرس وارد دیتابیس بشه.
الان دارم با این صورت کار میکنم که ابتدا عکس رو در لوکال آپلود میکنم وبعد ادرس رو کپی میکنم و در input که برای ارسال ادرس طراحی کردم کپی پیس میکنم
میخوام که به طور مستقیم این کار انجام بشه یعنی حداقل پس از اپلود ادرس عکس مستقیم تو inputtقرار بگیره
منتظر پاسخ شما هستم
ممنون
mamnun khaste nabashid. khub va kamel bud