متغیر Superglobal در php – قسمت دوم

متغیر های superglobal در php
متغیر های superglobal در php

 

آموزش 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$ را بررسی کرده ایم و درصورت خالی بودن آن پیغام ” نام وارد نشده است” چاپ می شود و در غیر این صورت مقدار نام را برای ما چاپ میکند .

خروجی به صورت زیر است

حالت اول اگر نامی وارد نکنید و فرم را ارسال کنید :

 

خروجی مثال REQUEST_$
خروجی مثال REQUEST_$

 

حالت دوم اگر نام دلخواهی را وارد کنید:

خروجی مثال REQUEST_$
خروجی مثال REQUEST_$

 

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>

 

خروجی به صورت زیر خواهد بود :

خروجی مثال GET_$
خروجی مثال GET_$

 

اگر در مباحث HTML نیاز به تمرین بیشتری دارید حتما مقالات آموزش HTML سایت میزفا را بخوانید. این جلسه از آموزش PHP به اتمام رسید در جلسات مرتبط با مدیریت فرم ها در رابطه به متد های POST  و GET توضیحات بیشتری خواهیم داد.

 

 

شما میتونید برای توضیحات بیشتر درباره این موضوعات به سایت های w3school و php.net مراجعه نمایید.

فیلم آموزشی asp.net core 2

نسرين ولی خانی
کارشناسي نرم افزار علاقمند به برنامه نويسی

فیلم آموزشی asp.net core 2

2 نظر

2 پاسخ

  1. با سلام و خسته نباشید
    ببخشید من دریادگیری زبان phpو طراحی سایت فعالیت میکنم و یک سوالی داشتم:من میخواستم فرم ارسال پستی همانند سایت دیوار طراحی کنم که در آنجا وقتی عکس را انتخاب میکنیم
    به طور مستقیم آپلود میشن
    ومن هم می خواستم یه فرمی همچنین را طراحی کنم و الان نمی دونم که چجوری پس از اپلود عکس به طور خودکار آدرس وارد دیتابیس بشه.
    الان دارم با این صورت کار میکنم که ابتدا عکس رو در لوکال آپلود میکنم وبعد ادرس رو کپی میکنم و در input که برای ارسال ادرس طراحی کردم کپی پیس میکنم
    میخوام که به طور مستقیم این کار انجام بشه یعنی حداقل پس از اپلود ادرس عکس مستقیم تو inputtقرار بگیره
    منتظر پاسخ شما هستم
    ممنون

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

حداکثر حجم فایل برای آپلود: 1 مگابایت. فایل‌های مجاز برای آپلود: عکس, ویس, ویدیو, ورد یا پی دی اف, فایل متنی, زیپ. شما می‌تونید برای بهتر پرسیدن سوالتون، عکس یا ویس یا حتی فیلم در بخش نظرات میزفا آپلود کنید. برای ضبط ویس می‌تونید از خود واتس آپ استفاده کنید و بعد اینجا آپلود کنید و برای ارسال عکس هم کافی هست اسکرین شات بگیرید. Drop file here

با موفقیت ثبت شد، میزفا از شما برای عضویت در خبرنامه هفتگی تشکر میکند.

عضویت در خبرنامه هفتگی برای دریافت:

  • فیلم و مقاله رایگان سئو
  • آموزش‌های UX ، GA و GTM
  • مقاله های تخصصی ASP.NET Core
  • اطلاع رسانی از محصولات
فیلم آموزشی asp.net core 2
ترک میزفا خوب نیست!
معرفی جامع‌ترین ابزار سئو در ایران
بالای ۱۰ هزار عضو
PHZpZGVvIHdpZHRoPSI2MDAiIGhlaWdodD0iMzUwIiBwb3N0ZXI9Imh0dHBzOi8vbWl6ZmEuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDUvcG9zdGVyLW1pemZhLXRvb2xzLXZpZGVvLW1pbi5wbmciIGNvbnRyb2xzIHByZWxvYWQ9Im5vbmUiPiANCiAgIDxzb3VyY2Ugc3JjPSJodHRwczovL21pemZhLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA1L21pemZhX3Rvb2xzXzcyMHAubXA0IiB0eXBlPSJ2aWRlby9tcDQiPg0KPC92aWRlbz4=