PDA

View Full Version : مشکل ajax با سشن expire شده



adelx61
جمعه 25 دی 1394, 11:59 صبح
با سلام به دوستان . یه سوال داشتم در مورد مشکلی که در استفاده از ajax برام پیش اومده . فرض کنید در یک صفحه از برنامه به نام index.php که باید سشن معتبر هم ست شده باشد درخواستی را به صورت ajax نوشته ایم که مثلا به صفحه request.php بره و پاسخش را به صورت ایجکس برگردانده و در index.phpنمایش دهد . حالا این صفحه request.php هم جزو فایلهایی است که در بالای ان بررسی میشه که اگه سشن وجود نداره یا منقضی شده مثلا به login.php ریدایرکت بشه . ضمنا سشن های ما timeout دارند و حالا تصور کنید ما در index.php هستیم و به دلیل timeout سشن expire شده است , ما درخواست ایجکسیمان را میفرستیم ولی چون سشن منقضی شده است request.php باید ما را به login.php ریدایرکت کند . مشکل من اینه که این ریدایرکت به صورت یک پاسخ ایجکسی به index.php انجام میشود . یعنی برنامه به login.php ریدایرکت نمیشه بلکه صفحه login.php به عنوان پاسخ به index.php برگشت داده میشه . سوال اینه که چکار کنیم این اتفاق نیفته . ممنون

us1234
جمعه 25 دی 1394, 15:05 عصر
یک فایل به نام مثلا control.php باید درست کنید که تمام ajax ها به این فایل زده میشود و داخل این فایل عملیات ها انجام شود . یکی از کارهایی که داخل این فایل میکنید بررسی سشن است که اگر نبود دیگه نیاز به هدر ریدارکت نیست بلکه یک کد جوا اسکریپت ست میکنید که صفحه را ریدارکت کند . یا اینکه پیغام میدهید شما در سایت لاگین نیستید .

adelx61
جمعه 25 دی 1394, 16:44 عصر
تشکر از پاسخ شما . بله من هم به این روش فکر کردم ولی تعداد صفحات این برنامه و نیز تعداد عملیاتهای ایجکسی این برنامه خیلی زیاده و برنامه به صورت mvc پیاده شده . البته میشه یک فایل برای همه ایجکسها درست کرد ولی چون تعداد این ایجکسها در کنترلرهای مختلف زیاده ، اگر همه اینها را بخواهیم در یک فایل جدا انجام دهیم مدل برنامه تا حدودی از حالت mvc خارج میشه . چون اینجوری یه فایل داریم برای همه عملیاتهای ایجکسی که تعداد انها حدودا 50 متد است و هرکدام از این متدها مربوط به یک کنترلر خاص است و کلا نظم برنامه به هم میریزه