انتقال متغیر با URL در php (آموزش Passing variables in URL)

در این جلسه تیم کدگیت قصد دارد شما را با روش انتقال متغیر با url در php آشنا سازد پس در این آموزش ما را همرایی کنید.

گاهی لازم است که شما یکسری داده را به شکل متغیر از یک صفحه php به صفحه ای دیگر انتقال دهید برای این کار شما می توانید به کمک روش های زیر یک متغیر را از یک صفحه php به صفحه دیگر انتقال دهید:

  •  انتقال متغیر با URL
  • انتقال متغیر با Post و Get
  •  انتقال متغیر به وسیله Session
  • انتقال متغیر به وسیله Cookie
  • انتقال متغیر به وسیله فرم های HTML

در این قسمت قصد آموزش انتقال متغیر در url را به شما عزیزان داریم و در قسمت های آینده به سایر بخش ها نیز خواهیم پرداخت.

انتقال متغیر با URL

در این روش شما پس از نوشتن آدرس صفحه مقصد یک علامت سوال (؟) قرار داده و پس از آن نام و مقدار متغیر را که قرار است به صفحه مقصد برود ، بنویسید. به این رشته کاراکتری ( String ) که بعد از علامت سوال می آید query string می گویند.

درمثال زیر query string ها به رنگ قرمز نمایش داده شده اند:

  • http://www.mydomain.com/showart.php?id=12345
  • http://www.mydomain.com/showart.php?id=$num

اگر شما قصد داشته باشید چند متغیر را به صفحه ای دیگر انتقال دهید، می توانید از علامت “&” استفاده نمایید.لطفا به مثال زیر توجه فرمایید:

http://www.mydomain.com/showart.php?id=12345&lang=en

حال می خواهیم نحوی ایجاد یک query string را در زبان php و در قالب کد به شما نشان دهیم. برای این کار شما باید لینکی را که برای انتقال به صفحه مقصد می باشد را همراه با متغیر تولید کنید.برای ابن کارفایی با نام movie1 ایجاد می کنیم.لطفا به مثال زیر توجه فرمایید:

همانطور که مشاهده می کنید قطعه کد بالا لینکی در صفحه مرورگر به شما نمایش می دهد که علاوه بر آدرس صفحه مقصد یک متغیر به نام favmovie که حاوی داده متغیر این صفحه با نام moviename است ،به صفحه مقصد انتقال می دهد.

نکته اینجاست حال که ما یک متغیر را به روش انتقال متغیر با url به صفحه مقصد انتقال دادیم چگونه می توانیم از آن در صفحه جدید استفاده نماییم؟!!!

دریافت متغیر از url

برای دریافت متغیر از url از ساختار زیر می توانیم استفاده کنیم:

$_REQUEST[‘نام پارامتر ‘]

به عنوان مثال آدرس زیر ر در نظر بگیرید:

http://www.mydomain.com/showart.php?id=12345&lang=en

برای بدست آوردن متغیر های این آدرس از قطعه کد زیر استفاده می کنیم:

دقت داشته باشید که در صورت نبود متغیر در آدرس ، برنامه شما دچار خطا شده و یک پیام به صورت error به شما نمایش داده می شود.

به عنوان مثالی کامل تر به فرض کنید که مثال اول این بحث صفحه مبدا می باشد پس در این صورت کد صفحه مقصد به شکل زیر می باشد:

قطعه کد بالا درون فایلی با نام moviesite.php در کنار فایل movie1.php قرار می گیرد.

تابع urlencode

اگر متحوای متغیری که قرار است به صفحه ی مقصد انتقال یابد شونده، حاوی کاراکتر فاصله خالی(Space) یا علائم خاص باشد، ممکن است URL را با مشکل مواجه کند.برای حل این موضوم باید قبل از قرار دادن متغیر در آدرس صفحه مقصد آن را در تابع urlencode قرار داده تا بتوان جلوی خطاهای آینده را گرفت.در واقع این تابع علائم موجود متغیر ارسالی شما را با علائمی جایگزین می کند.لطفا به مثال زیر توجه فرمایید:

معایب انتقال متغیر با url

این ساختار انتقال داده می تواند مشکلاتی برای ما بوجود بیاورد ولی اساسی ترین آنها موارد زیر است:

  •  مقدار متغیر برای کاربر قابل رویت است.
  • مشخص بود مقدار متغیر برای کاربر خود یک مشکل امنیتی(جز در موارد خاص) ایجاد می کند.
  • کاربر می تواند مقدار متغیر را در URL دستکاری کند این امر ممکن است شرایط ناخواسته پیش بیاورد که برنامه نویس قسمتی را برای کنترل آن در نظر نگرفته است.

در اینجا محبث انتقال متغیر با url به پایان می رسد امیدواریم تونسته باشیم مفهوم این بحث را به خوبی به شما انتقال دهیم.

دسته : php

دیدگاه بگذارید

نظر شما چیست؟

مطلع کردن شما از
avatar

wpDiscuz