ارسال مقدار متغیرها، از یک صفحه به صفحه ای دیگر، با روش GET ، در PHP

با استفاده از روش GET در PHP ، می توانیم مقدار متغیرها را از یک صفحه به صفحه ای دیگر، ارسال نماییم. مهمترین مشخصه روش GET این است که مقدار و نام متغیری که ارسال می کنیم، در آدرس URL صفحه گیرنده مقدار (URL همان آدرسی است که در بالای مرورگر اینترنت نمایش داده می شود)، نمایش داده می شود. بنابراین، این روش برای ارسال مقدار متغیرهای مهمی مثل پسوردها و اطلاعات شخصی افراد یا سایت، اصلا مناسب نمی باشد. اما در عوض، یک نکته مهم وجود دارد و آن این است که سایت های جستجوگر اینترنت (مثل گوگل)، برایشان مهم است که در آدرس URL ، چه کلماتی به کار رفته است و بنابراین اگر شما با روش GET ، کلمات کلیدی صفحات را در آدرس URL قرار بدهید، شانس نمایس صفحات شما در رتبه های بالاتر نتایج جستجو (در گوگل و سایر سایت ها) بیشتر می شود. البته این نکات را از نظر بهینه سازی سایت (seo) تذکر دادیم، وگرنه هدف اصلی، انتقال مقدار متغیرها از یک صفحه به صفحه ای دیگر است که یکی از باارزش ترین قابلیت های PHP می باشد. در صورت تمایل، می توانید در آموزش های دیگر، روش POST را نیز بررسی کنید که برای ارسال مقادیر متغیرها، به روشی متفاوت، به کار می رود (برای ارسال اطلاعات مهم و سری، از روش POST استفاده می شود).

اکنون قصد داریم که روش GET را به صورت عملی شرح بدهیم. برای این منظور، دو صفحه PHP ، با نام های page1.php و page2.php می سازیم (برای سادگی، هر دو صفحه را درون یک فولدر قرار می دهیم، اگر فولدر آنها فرق داشته باشد، باید هنگام لینک دادن، آدرس را به درستی بنویسیم). از درون صفحه page1.php به صفحه page2.php ، یک لینک می دهیم، اما این لینک، یک لینک معمولی نمی باشد، زیرا کد HTML مربوط به لینک را به صورت زیر می نویسیم :

همان طور که مشاهده می کنید، بعد از آدرس صفحه، عبارت زیر نوشته شده است :

ابتدا علامت سوال (?) نوشته شده و سپس نام id ، آنگاه یک علامت تساوی و در آخر نیز مقدار 5 . منظور از این عبارت این است، که با روش GET ، متغیری با نام id و با مقدار برابر 5 به صفحه مورد نظر، ارسال گردد. در واقع روش کلی این است که ابتدا علامت ؟ نوشته می شود و بعد متغیرهایی که می خواهیم با روش GET ، به صفحه مورد نظر، ارسال شوند (اگر بیش از یک متغیر داشته باشیم، باید از علامت & در بین متغیرها، استفاده کنیم، در ادامه، مثالی نیز برای این مورد می زنیم). بنابراین کل کدهای صفحه page1.php را به صورت زیر می نویسیم :

اکنون کدهای صفحه page2.php که قرار است متغیر id و مقدار آن را دریافت کند را اینگونه می نویسیم :

به این بخش از کدها دقت کنید :

متغیر $_GET ، یک متغیر فوق سراسری (superglobal) است که در آن، تمامی متغیرهای دریافت شده توسط روش GET ، قرار دارد (به صورت آرایه ای از عناصر). بنابراین ما متغیر id را از آرایه $_GET فراخوانی کرده ایم.

نتیجه :

بر روی لینک کلیک کنید تا به صفحه page2.php منتقل شوید :

خطا - صفحه را دوباره بارگذاری کنید

پس از کلیک بر روی لینک، به صفحه page2.php منتقل می شویم و این صفحه، مقدار 5 را نمایش می دهد.

ارسال دو یا چند متغیر، با روش GET در PHP :

شیوه ارسال دو یا چند متغیر، با روش GET در PHP ، دقیقا همانند ارسال یک متغیر است و تنها باید در بین متغیرها، از علامت & استفاده کنیم. به مثال زیر توجه کنید :

مثال

همان مثال قبل را این بار با دو متغیر می نویسیم (افزودن متغیر name). کدهای صفحه page1.php را به صورت زیر می نویسیم :

کدهای صفحه page2.php را به صورت زیر می نویسیم :

نتیجه :

بر روی لینک کلیک کنید تا به صفحه page2.php منتقل شوید :

خطا - صفحه را دوباره بارگذاری کنید

نمایش تمامی متغیرهای دریافت شده به روش GET ، در PHP :

چنانچه قصد داشته باشیم که در یک صفحه PHP ، تمامی متغیرهای دریافت شده به روش GET را مشاهده کنیم، می توانیم از دستور زیر استفاده نماییم :

در واقع، این دستور، مقادیر ذخیره شده در متغیر فوق سراسری $_GET را نمایش می دهد.

نویسنده علیرضا گلمکانی
شماره کلید 439
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 4 4 0
فرامرز
۱۳۹۸/۰۴/۱۲
۲۲:۱۵

سلام 
من ی متغیر از صفحه 1 به صفحه 2 میفرستم 
با متد GET : 
href="transform.php?bprice=2"

میخوام توی صفحه 2 فراخوانیش کنم که بتونم توی یک تابع جاوا ازش استفاده کنم:
چجوری وسط این کد فراخوانیش کنم ؟

 <اسکریپت>

            function Redirect() {

if (bprice==7){
               window.location="index.php?bprice=70.000";
            }
else if ($bprice==5)
{
window.location="index.php?bprice=50.000";
            }
else if ($bprice==3)
{
window.location="index.php?bprice=30.000";
            }
else if ($bprice==2)
{
window.location="index.php?bprice=20.000";
            }
   setTimeout('Redirect()', 4000);
}
           

ممنون میشم کمکم کنین

مرتضی
۱۳۹۸/۰۶/۱۰
۱۳:۲۴

با سلام
به نظر بنده شما می تونید کدهای جاوا رو به صورت echo در php فراخوانی کنید و اون قسمتی که می خوای متغیر قرار بدید از تابع get استفاده کنید و در اون قسمت قرار دهید.
این یه روشی هست که من تست کردم و جواب گرفتم.

zeinab
۱۳۹۸/۰۷/۰۵
۰۹:۱۳

سلام اگه بخوام یه input داشته باشم از نوع تکست که چیزی که کاربر مینویسه زیرش نمایش داده بشه .و بعد دوباره تو همون input چیزدیگری نوشت نمایش تکست قبلی پاک نشه و زیر هم نشون داده بشه چیکار کنم؟

samira
۱۴۰۲/۰۹/۰۵
۱۹:۰۲

بسیار عالی بود تونستم پاسخ سوالاتمو بگیرم
در پناه خدا موفق باشید

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)