نمایش پیغام login successful قبل از redirect

پرسیده شده
فعالیت 1321 روز پیش
دیده شده 513 بار
0

ضمن عرض سلام و تبریک روز برنامه نویس خدمت همه عزیزان،

دو سوال در مورد کد زیر داشتم:
1) چرا باید مقادیر ارسالی به تابع login رو جدا جدا بفرستیم و مثل تابع register نمیشه کلا $_POST رو فرستاد؟
2) چرا در کد زیر پیغام login successful نشون داده نمیشه؟ (نتیجه تابع message رو return کردم تا بتونم داخل قالب در div مشخصی استفادش کنم)

    }else if($action == 'login'){

        $result = login($params['email'], $params['password']);
        
        if(!$result){
            $regMesssage = message("Email or Password is incorrect!");
        }else{
            $regMesssage = message("Login Successful!", 'success-msg'); ---> won't show
            sleep(3);
            redirect(site_url());
        }
    }

سرچ کردم و راه حل های مختلفی وجود داشت:
مثل استفاده از js:

echo "<script>setTimeout(\"location.href = 'http://www.example.com';\",1500);</script>";


یا نوشتن کد redirect به این شکل:

header( "refresh:5; url=login.php" );

 
و یا:

echo "<meta http-equiv='Refresh' content='2; URL=dis_edit.php'>";


استفاده از کدوم روش بهتره؟

فایل پیوست

امیرحسین شکری
امیرحسین شکری

22 شهریور 99

1
حذف شده

سلام

1- ممکنه شما بخواید از طریق دیگه (غیر از دریافت اطلاعات از _POST) لاگین رو صدا بزنید. پس بهتره جوری بنویسیمش که برای حالت های مختلف قابل استفاده باشه.

2- استفاده از sleep در سمت سرور برای ایجاد تاخیر درست نیست. اون sleep رو بردارید و در تابع ریدایرکت با استفاده از جاوااسکریپت و با تاخیر 3 ثانیه صفحه رو انتقال بدید.

همون استفاده از جاوااسکریپت بیشتر عرفه ...

فایل پیوست

لقمان آوند

توسط

لقمان آوند

25 شهریور 99