PDA

View Full Version : سوال: کار با session



mostafa272
یک شنبه 21 اسفند 1390, 16:52 عصر
با سلام

من یک سوال در مورد استفاده از session به ذهنم رسیده اونم اینکه وقتی چند کاربر به طور همزمان دارند از سایت ما استفاده می کنند (مثلا عضو می شوند یا لاگین می کنند) و ما همه مقادیر رو داخل session هایی با یک نام میریزیم چه طور مشکلی پیش نمی آید و اطلاعات کاربر های مختلف قاطی نمی شود؟(یا اگر چنین مشکلی پیش می آید راه حل چیست؟)

alonemm
یک شنبه 21 اسفند 1390, 16:59 عصر
باسلام:

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


موفق باشید.

khanlo.javid
یک شنبه 21 اسفند 1390, 17:02 عصر
با سلام

دوست گرامی سوالا خوبی کردی .

مگه ما session رو تو کامپیوتر خود شخص ذخیره نمیکنیم پس دلیلی نداره مشکلی پیش بیاد و اگر هم یه کسی از دوتا مرورگر استفاده کنه مجبوره مروگر اولی که وارد سایت شده با نام کاربری خودش رو log out کنه تا بتونه رو مرورگر دیگه لاگین کنه.


امید وارم مفهوم رو رسونده باشم



موفق باشید.

mosi2007
یک شنبه 21 اسفند 1390, 17:16 عصر
با سلام

دوست گرامی سوالا خوبی کردی .

مگه ما session رو تو کامپیوتر خود شخص ذخیره نمیکنیم پس دلیلی نداره مشکلی پیش بیاد و اگر هم یه کسی از دوتا مرورگر استفاده کنه مجبوره مروگر اولی که وارد سایت شده با نام کاربری خودش رو log out کنه تا بتونه رو مرورگر دیگه لاگین کنه.


امید وارم مفهوم رو رسونده باشم



موفق باشید.

ولی من تا حالا شنیدم که session تو سرور ذخیره میشه و cookie تو کامپیوتر شخص

khanlo.javid
یک شنبه 21 اسفند 1390, 17:28 عصر
ولی من تا حالا شنیدم که session تو سرور ذخیره میشه و cookie تو کامپیوتر شخص

درسته تو سرور ذخیره میشه ولی هر کاربری که یه نام کاربری برای خودش میسازه تو session آی دی اون ذخیره میشه پس مثل اینه که کوکی تو کامپیوتر شخصی ذخیره میشه پس هر session یه آی دی منحصر به فرد میگیره و تداخل بین کاربر ها پیش نمیاد.



موفق باشید.

mostafa272
یک شنبه 21 اسفند 1390, 18:37 عصر
راستش من یه مدت تو یه سایت موزیک عضو بودم که مثل بقیه سایت مشابه اون رو phpnuke راه اندازی شده بود و معمولا لاگ اوت نمی کردم و وقتی مرورگر رو باز می کردم همون حساب خودم بودم ولی گاهی وقتا حساب یکی از کاربرای دیگه سایت رو بالا می آورد که تا الان فکر می کردم یه همچین مشکلی باید با session داشته باشه که الان شما می گویید که ظاهرا چنین مشکلی به وجود نمی آید.یه سوال دیگه داشتم اونم اینه که ممکنه یه session خاص رو فقط از بین برد یعنی تابع دیگه مثل session_destroy آیا وجود داره که فقط یه session خاص رو از بین ببره؟

khanlo.javid
یک شنبه 21 اسفند 1390, 19:35 عصر
راستش من یه مدت تو یه سایت موزیک عضو بودم که مثل بقیه سایت مشابه اون رو phpnuke راه اندازی شده بود و معمولا لاگ اوت نمی کردم و وقتی مرورگر رو باز می کردم همون حساب خودم بودم ولی گاهی وقتا حساب یکی از کاربرای دیگه سایت رو بالا می آورد که تا الان فکر می کردم یه همچین مشکلی باید با session داشته باشه که الان شما می گویید که ظاهرا چنین مشکلی به وجود نمی آید.یه سوال دیگه داشتم اونم اینه که ممکنه یه session خاص رو فقط از بین برد یعنی تابع دیگه مثل session_destroy آیا وجود داره که فقط یه session خاص رو از بین ببره؟

به نظرم اگه آی دی توی session_destroy مشخص کنی session خاصی رو حذف کنه.

mtchabok
یک شنبه 21 اسفند 1390, 22:41 عصر
سلام
سشن یا جلسه شامل اطلاعاتی در سرور و آی دی در سمت کلاینت .
اطلاعات سمت سرور میتونه فایل ، رکوردی از جدول و یا هر چیزی باشه .
آی دی و یا شماره شناسایی سشن هم میتونه کوکی و یا حتی میشه از طریق query string به سرور ارسال بشه .


من یک سوال در مورد استفاده از session به ذهنم رسیده اونم اینکه وقتی چند کاربر به طور همزمان دارند از سایت ما استفاده می کنند (مثلا عضو می شوند یا لاگین می کنند) و ما همه مقادیر رو داخل session هایی با یک نام میریزیم چه طور مشکلی پیش نمی آید و اطلاعات کاربر های مختلف قاطی نمی شود؟(یا اگر چنین مشکلی پیش می آید راه حل چیست؟)

همونطوریکه در بالا گفتم هر کلاینت یه شماره شناسایی از سرور دریافت میکنه که با ارسال مجدد اون از طرف کلاینت به سرور ، سرور اون کلاینت رو تشخیص میده .


مگه ما session رو تو کامپیوتر خود شخص ذخیره نمیکنیم پس دلیلی نداره مشکلی پیش بیاد و اگر هم یه کسی از دوتا مرورگر استفاده کنه مجبوره مروگر اولی که وارد سایت شده با نام کاربری خودش رو log out کنه تا بتونه رو مرورگر دیگه لاگین کنه.
نه عزیز . مکانیزم لاگین شدن در سایتها بستگی به برنامه نویسیشون داره و خود سشن از لاگین دو کلاینت با یه آی پی جلوگیری نمی کنه .


راستش من یه مدت تو یه سایت موزیک عضو بودم که مثل بقیه سایت مشابه اون رو phpnuke راه اندازی شده بود و معمولا لاگ اوت نمی کردم و وقتی مرورگر رو باز می کردم همون حساب خودم بودم ولی گاهی وقتا حساب یکی از کاربرای دیگه سایت رو بالا می آورد که تا الان فکر می کردم یه همچین مشکلی باید با session داشته باشه که الان شما می گویید که ظاهرا چنین مشکلی به وجود نمی آید.
این مشکل زمانی پیش میآد که سرور دچار مشکل و یا فشار زیادی بهش وارد بشه .


یه سوال دیگه داشتم اونم اینه که ممکنه یه session خاص رو فقط از بین برد یعنی تابع دیگه مثل session_destroy آیا وجود داره که فقط یه session خاص رو از بین ببره؟
نه عزیز چنین تابعی وجود نداره . البته می تونید خودتون فایل و یا رکورد مربوط به سشن رو حذف کنین . اگه با فایل کار میکنید میتونید با این تابع مسیر قرار گیری فایل سشنها رو بگیرید :
session_save_path([string $newPath])

lady64
دوشنبه 22 اسفند 1390, 18:06 عصر
ممکنه یه session خاص رو فقط از بین برد یعنی تابع دیگه مثل session_destroy آیا وجود داره که فقط یه session خاص رو از بین ببره؟
من برای از بین بردن یک session خاص و اینکه کل session ها از بین نره از تابع unset استفاده میکنم