ریدایرکت با php

  • منتشر شده در تاریخ

ریدایرکت با php

ریدایرکت با php مکانیزمی برای هدایت کاربر از یک صفحه به صفحه دیگر بدون کلیک کردن بر روی یک لینک است . این قابلیت ریدایرکت با php  در مواردی که نیاز به هدایت کاربر در پشت صحنه باشد ، بسیار مفید خواهد بود . برای مثال ، زمانی که کاربر در حال انتقال به صفحه پرداخت می باشد ، ریدایرکت باید به صورت خودکار توسط اسکریپت php انجام شود .

Php تابع پیشفرضی برای هدایت کاربر از طریق url، به اسم header() معرفی کرده است . با استفاده از تابع header در php ، ما نیاز داریم که location را برای هدایت کاربر در قالب url یا به صورت relative (نسبی) تعیین کنیم.

برخلاف ریدایرکت با جاواسکریپت که راه های مختلفی برای مدیریت url بر اساس مرورگر خاص ارایه داده است ، php از این پیچیدگی اجتناب کرده و فقط یک تابع header برای اعمال تاثیر یکسان بر روی تمامی مرورگرها ارایه داده است . پس حتما متوجه شدید که ریدایرکت با php بسیار آسان تر و منطقی تر از استفاده در جاواسکریپت می باشد .!

ریدایرکت با php

سینتکس ریدایرکت با php

در کد سینتکس ریدایرکت با php بالا ، ما باید یک url صحیح برای صفحه ای که قصد هدایت کاربر به آنجا را داریم تعیین کنیم . می توانیم url ها را به صورت کامل (absolute) یا نسبی (relative) مشخص کنیم . اگر آدرس url به صورت نسبی تعیین کنیم ، در اینصورت در به دنبال آدرس در جایی که هستیم می گردد .

نکته : قبل از مشخص کردن آدرس url در loction header ، باید از وجود صفحه مورد نظر اطمینان پیدا کنیم.

احتیاط قبل از redirect

قبل از اجرای عملیات ریدایرکت با php ، باید در این مورد اطمینان داشته باشیم که ، هیچ خروجی در مرورگر قبل از خطی که قصد صدا زدن تابع header وجود نداشته باشد. برای مثال ،

این اسکریپت یک خطای warning notice را به مرورگر ارسال می کند.

این “احتیاط” فقط در مورد تابع header در php نیست ، بلکه برای همه توابعی مثل set_cookie() ، session_start() و … صدق می کند . در واقع هر تابع مثل بالا که یک سری اطلاعات و تغییرات در هدر ارسالی از طرف ما به سرور اضافه می کند ، از قبل باید هیچ خروجی حتی یک کاراکتر کوچک . نداشته باشد ، چون باعث خطاهایی مثل

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

مواردی که باعث خطای header می شوند

  • محتویات html مثل متن یا تگ ها
  • جاهای خالی غیرضروری قبل از تگ php
  • خطاها یا warning های قبل از اجرا شدن redirect
  • دستورات چاپ متنی مثل echo() ، print()

راه های مدیریت خطای output قبل از ریدایرکت با php

برای امنیت بیشتر بعد از اجرای دستور header ، exit را قرار بدیم

می توانید خاصیت output buffering را از طریق فایل پیکربندی php (php.ini) یا از طریق تابع ob_start() در اول کد هاتون قرار بدید.

استفاده از ریدایرکت و هدایت کاربر به یک صفحه دیگر از موارد خیلی مهم و جدانشدنی در php و پروژه های تحت وب است .

موفق باشید

حسن شفیعی علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم

آموزش های رایگان بیشتر در اینستاگرام ما ...

NETPARADIS /
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۲)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. Arman Askari ۷ آذر ۱۳۹۶

    میتونم از ریدایرکت تو بات نویسی استفاده کنم؟ به عنوان مثال اگر پیام دریافتی شامل عکس بود ریدایرکت کنم به یه فایل php دیگه و عملیات مورد نظرم رو رو عکس انجام بدم
    header(‘location : image.php?img=simple’); exit

    پاسخ
    1. حسن شفیعی ۷ آذر ۱۳۹۶

      سلام . نه متاسفانه امکان همچنین موردی نیست .
      راه خیلی بهتری به جای ریدایرکت وجود داره . کافیه مسیر فایل رو همراه با پارامتری دلخواهی به url مورد نظر اضافه کنید و بعد اون url رو با تابعfile_get_contents اجرا کنید تا خروجی شما انجام بشه.

      مثلا

      کاری که در ربات افکت عکسی که چندماه پیش طراحی کردیم انجام شده و به خوبی هم کار میکنه

      موفق باشید

      پاسخ
دوره های آموزشی

دانلود رایگان کتاب آموزش PHP

صفر تا صد PHP و MySQL را یکجا یاد بگیرید
همین الان دانلود کن
نگران نباشید. ایمیل‌های مزاحم نمی‌فرستیم
close-link