نحوه ارسال متغیرها با روش GET ، در صورت وجود کاراکترهای غیر مجاز برای URL صفحه، با تابع urlencode ، در PHP

همان طور که می دانید، با استفاده از روش GET ، می توانیم متغیرها و مقادیر آنها را به یک صفحه دیگر ارسال کنیم و اطلاعات مربوط به متغیرهای ارسالی، در آدرس URL صفحه مقصد، نوشته خواهد شد، اما یک نکته مهم وجود دارد و آن این است که ما نمی توانیم هر کاراکتری را در آدرس URL صفحات به کار ببریم و به کار بردن برخی کاراکترها در آدرس URL ، ممنوع است.

مثلا فرض کنید که بخواهیم به صفحه ای با نام page.php ، متغیر با نام name و مقدار ali را ارسال کنیم، بنابراین باید به آن صفحه، به صورت زیر لینک بدهیم :

خوب اکنون فرض کنید که به جای ali ، قصد داشته باشیم مقدار زیر را برای متغیر name تعیین کنیم :

پس در نگاه اول، به نظر می آید که باید کد زیر را بنویسیم (اما غلط است) :

کد بالا غلط است، زیرا باعث می شود که در بین کاراکترهای آدرس URL ، یک فضای خالی داشته باشیم که غیرمجاز است. این یک مثال است و علامت هایی مثل & و = نیز اگر در مقدار متغیر وجود داشته باشند، باعث به وجود آمدن یک اشتباه در روند ارسال متغیرها خواهند شد (زیرا این دو علامت را برای روش GET به کار می بریم).

راه حل این مشکل، استفاده از تابع urlencode در PHP می باشد. این تابع، با کد کردن کاراکترها، عملا باعث می شود که کاراکترهای غیرمجاز، در آدرس URL صفحه، ظاهر نشوند. حتما تاکنون، علامت های % به کار رفته در آدرس URL برخی سایت ها را دیده اید. این علامت، توسط همین تابع ایجاد می شود و بخشی از کدهای حاصل از این تابع است.

شیوه استفاده از تابع urlencode به صورت زیر می باشد (برای همان موردی که مثال زدیم) :

بنابراین پس از کلیک بر روی لینک، در انتهای آدرس URL صفحه مقصد، عبارت زیر نمایش داده می شود (در برخی مرورگر ها، باید در قسمت نمایش آدرس، کلیک کنید تا آدرس به طور کامل نمایش داده شود) :

مشاهده می کنید که تابع urlencode ، کاراکتر فاصله را به کاراکتر + تبدیل کرده است.

نکته

نکته مهمی که باید به آن توجه داشت، این است که دیگر نیازی نیست که در صفحه مقصد، از تابع urlencode استفاده کنیم و خود PHP ، به طور خودکار، کاراکترها را در آن صفحه، تبدیل به همان کاراکترهای اصلی می کند که مد نظر ما بوده است.

مثال

فرض کنید این بار بخواهیم مقدار ali&reza را به عنوان مقدار متغیر ارسال کنیم، بنابراین باید لینک را به صورت زیر تعریف کنیم :

بنابراین پس از کلیک بر روی لینک، در انتهای آدرس URL صفحه مقصد، عبارت زیر نمایش داده می شود (در برخی مرورگر ها، باید در قسمت نمایش آدرس، کلیک کنید تا آدرس به طور کامل نمایش داده شود) :

مشاهده می کنید که تابع urlencode ، کاراکتر & را به کاراکترهای %26 تبدیل کرده است.

نکته

تابع rawurlencode نیز همانند تابع urlencode در PHP ، برای کد کردن آدرس صفحات URL به کار می رود. به مثال زیر توجه کنید :

مثال

نتیجه :

خطا - صفحه را دوباره بارگذاری کنید
نویسنده علیرضا گلمکانی
شماره کلید 441
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 0 0 0

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