طراحی سایت, ساخت ربات تلگرام, آموزش php , سورس کد php ,سورس ربات تلگرام , سورس فروشگاه اینترنتی , آموزش طراحی وب

ریدایرکت با 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 ، باید از وجود صفحه مورد نظر اطمینان پیدا کنیم.

حتما بخوانید  ارسال ایمیل های HTML زیبا توسط PHP

احتیاط قبل از 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 را قرار بدیم

حتما بخوانید  ساخت بارکد درphp توسط API گوگل

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

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

موفق باشید

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

دیدگاه کاربران

avatar
1 دیدگاه ها
1 پاسخ ها
0 دنبال کننده ها
 
دیدگاه با بیشترین پاسخ
پرطرفدارترین دیدگاه ها
2 تعداد نویسندگان دیدگاه
حسن شفیعیArman Askari نویسنده های اخیر دیدگاه
Arman Askari
Arman Askari

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

دانلود رایگان (هدیه ویژه)

کتاب آموزش زبان برنامه نویسی PHP را دانلود و همین امروز یادگیری را شروع کن و به جمع برنامه نویسان ملحق شو ;)

دانلود رایگان کتاب

سورس فروشگاهی دیجی کالا

بخش کاربران

هنوز عضو نیستید ؟ کلیک کنید

مجوزهای ما

logo-samandehi

دانلود کتاب

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