PDA

View Full Version : تغییر خودکار مقدار session اذ مقدار جدید به قدیم ...



Arsess
پنج شنبه 05 خرداد 1390, 18:18 عصر
سلام

من یه سلیت نوشتم که اگه کسی login کنه اطلاعاتش توی session ذخیره میشه. سایت کار میکنه و مشکلی نیست.

مشکل وقتی پیش میاد که بعضی از استفاده کننده ها یک admin دارن که میتونن چند تا username تعیین کنن. من میخوام توی این admin قسمتی بذارم که اونا لیست username هاشونو ببینن و با کلیک روی هر کدوم، مستقیم به سایت هدایت و login بشن.

این کار هم انجام میشه ولی با اینکه مقدار session['UserName'] رو کلا تغییر میدم، بعد از تغییر صفحه مقدار سشنها به مقدار قبلیشون برمیگردن. یعنی اگه یه نفر یا نام Arsess ، مستقیما توی سایت login کنه ، بعد از طریق admin بخواد تحت نام Koorosh وارد بشه، وارد میشه ، میبینه یا نام کورش لاگین شده ولی به محض تعویض صفحه میبینه که با نام login ، Arsess
شده.

من تا حالا یه همچین مشکلی ندیده بودم. کسی میدونه مشکل از چیه؟

mtchabok
جمعه 06 خرداد 1390, 10:10 صبح
عزیزم این به خاطر کوکی هس که در صفحه لاگین ادمین با path همون صفحه ادمین ثبت میشه .
به این صورت که کوکی صفحه لاگین عادی شما در مسیر "/" ذخیره میشه ولی در صفحه ادمین نیز در این "/admin" مسیر ذخیره میشه .
تنها کاریکه باید بکنید این هس که مسیر کوکی رو در صفحه ادمین "/" قرار بدین تا مرورگر در تمامی صفحات کوکی مربوط به سشن رو برای سرور ارسال کنه .

رضا قربانی
جمعه 06 خرداد 1390, 12:51 عصر
آیا شما توی سیستم دیگه با اکانت یوزر وارد بشید آیا بازم این مشکل رو دارید ؟؟

سیشن ها همگی یه جا ذخیره می شن و وقتی صفحه مورد نظر بیاد بالا اولویت با اولین سیشنی که اجازه دادید می شه و اون یوزر میاد بالا . پس 1 : در کد نویسی دقت نکردید !! 2 : طبق گفته دوستمون می تونید آدرس ذخیره سیشن رو برای ادمین یا یوزر تغییر بدید

Arsess
دوشنبه 09 خرداد 1390, 11:54 صبح
من این مشکل رو طور دیگه ای حل کردم:


session_start();
session_regenerate_id();
session_destroy();
unset($_SESSION);
session_start();
session_regenerate_id();


برنامه خیلی خوب کار میکنه و دیگه مشکلی نیست. از توجهتون واقعا ممنونم