نمایش نتایج 1 تا 7 از 7

نام تاپیک: ریدایرکت به یک صفحه مشترک بین کل پروژه

  1. #1

    ریدایرکت به یک صفحه مشترک بین کل پروژه

    سلام دوستان
    من یه فایل header.php و footer.php دارم که در تمام صفحات پروژه include شدن تا عدر و فوتر تمام صفحات یکسان باشند.
    توی فایل هدر کد زیر رو قرار دادم
    if (!isset($_SESSION["logedin"])){
    header('Location: login.php');}

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

  2. #2

    نقل قول: ریدایرکت به یک صفحه مشترک بین کل پروژه

    تنها کار مورد نیاز که باید انجام بدین استفاده از یک شرط به کمک __FILE__ هست

  3. #3
    کاربر دائمی آواتار sara_aryanfar
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    جایی در ایران
    پست
    1,507

    نقل قول: ریدایرکت به یک صفحه مشترک بین کل پروژه

    نقل قول نوشته شده توسط hobab-theme مشاهده تاپیک
    سلام دوستان
    من یه فایل header.php و footer.php دارم که در تمام صفحات پروژه include شدن تا عدر و فوتر تمام صفحات یکسان باشند.
    توی فایل هدر کد زیر رو قرار دادم
    if (!isset($_SESSION["logedin"])){
    header('Location: login.php');}

    خب تا اینجا درست.
    ولی یه خطای منطقی رخ میده چون خود صفحه login.php هم از همین فایل هدر استفاده میکنه.
    یعنی درواقع اگر سیشن یافت نشد ریدایرکت میشه به login.php و تو این صفحه هم بازم میگه اگر سیشن یافت نشد ریدایرکتش کن. پس بینهایت ریدایرکت رخ میده و در نهایت خطا.
    حالا من چطور باید به برنامه بفهمونم که اگر تو صفحه login بودی دیگه نمیخواد ریدایرکت کنی؟
    خب اینو نباید میزاشتی تو هدرت وقتی داری همه جا صداش می کنی چون اولین کدهایی که اجرا میشن هدر خواهند بود حالا که انجام دادی به نظرم یه راه از بین راه های ممکنه اینه که یه گذاره دیگه هم به شرط خودتون اضافه کنید که اگر در صفحه لاگین بودی ریدایرکت نکن

  4. #4

    نقل قول: ریدایرکت به یک صفحه مشترک بین کل پروژه

    اگر در صفحه لاگین بودی ریدایرکت نکن
    ببخشید میتونم بپرسم چطور بفهمیم در صفحۀ لاگین هستیم؟

  5. #5

    نقل قول: ریدایرکت به یک صفحه مشترک بین کل پروژه

    نقل قول نوشته شده توسط hobab-theme مشاهده تاپیک
    سلام دوستان
    من یه فایل header.php و footer.php دارم که در تمام صفحات پروژه include شدن تا عدر و فوتر تمام صفحات یکسان باشند.
    توی فایل هدر کد زیر رو قرار دادم
    if (!isset($_SESSION["logedin"])){
    header('Location: login.php');}

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

  6. #6

    نقل قول: ریدایرکت به یک صفحه مشترک بین کل پروژه

    نقل قول نوشته شده توسط sara_aryanfar مشاهده تاپیک
    خب اینو نباید میزاشتی تو هدرت وقتی داری همه جا صداش می کنی چون اولین کدهایی که اجرا میشن هدر خواهند بود حالا که انجام دادی به نظرم یه راه از بین راه های ممکنه اینه که یه گذاره دیگه هم به شرط خودتون اضافه کنید که اگر در صفحه لاگین بودی ریدایرکت نکن
    سلام.
    خب چون پروژه جوری هست که لاگین شرط اول هر کاربری هست. مثل اپ های بانکی. پس باید اونجا قرارداده می شد.
    ولی طبق نظر یکی از دوستان و طبق گفته شما اول چک میکنه اگر تو صفحه لاگین یا رجیستر بود دیگه ریدایرکت نکنه

  7. #7

    نقل قول: ریدایرکت به یک صفحه مشترک بین کل پروژه

    نقل قول نوشته شده توسط ASHKANLAEI مشاهده تاپیک
    ببخشید میتونم بپرسم چطور بفهمیم در صفحۀ لاگین هستیم؟
    سلام
    من این قطعه کد رو نوشتم

    if (!isset($_SESSION["logedin"])){
    $url = substr($_SERVER['PHP_SELF'], strlen($_SERVER['PHP_SELF']) - 12, 12);
    if ($url !== "login-us.php" && $url !== "register.php"){
    header('Location: '. SITE_URL .'login-us.php?t=login');
    }
    }


    نقل قول نوشته شده توسط ASHKANLAEI مشاهده تاپیک
    یه جواب هم من میدم که ممکنه کار عجیبی باشه اما میتونین یک کپی از header بگیرین که این کد رو نداره و در لاگین، از این فایل include کنین.
    نه اینجوری در صورتی که یه تغییر توی هدر بدیم باید بریم توی هدر دوم هم تغییر بدیم که کار جالبی نیست و از هوشمندی برنامه کاسته میشه

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •