PDA

View Full Version : سوال: سیستم چت : کوکی یا سشن ؟



beh3000
یک شنبه 24 فروردین 1393, 17:33 عصر
سلام به دوستای خوبم

من دارم یک سایت مینویسم که توش کاربرا میتونن با همدیگه چت کنن حالا یه سوال : اول بگم که هر کاربر وقتی لاگین میکنه 7 یا 8 تا سشن براش ایجاد میشه از جمله نام .. نام خانوادگی .. یوزرنیم و .... حالا مسئله اینه : برای چت کردن باید مشخص کرد که این کاربر با کدوم کاربر میخواد چت کنه و پنجره چت رو مثل فیسبوک میخوام باز کنم .. ای دی کاربر باید یه جا ذخیره بشه که وقتی صفحات سایت عوض میشن اون پنجره چت میخوام خود به خود باز بشه ( دقیقا مثل فیسبوک ) ... حالا آی دی کاربر دومی که دارم باهاش چت میکنم رو کجا ذخیره کنم ؟ سشن یا کوکی ؟ اگه چندتا چت همزمان باشه چی ؟ بصورت آرایه باید ذخیره کرد درسته ولی بهترین روشش چیه ؟ میترسم سشن که زیاد بشه روی سرور فشار بیاره ؟ اصلا این ترس من درسته ؟

دوستان جوابهارو زودتر محبت کنن لطفا برام خیلی واجبه

R_Rajaee_Rad
یک شنبه 24 فروردین 1393, 18:24 عصر
سشن از منابع سرور استفاده میکنه و کوکی روی سیستم کاربر ذخیره میشه..فکر میکنم کارشما با کوکی ها راه بیفته

beh3000
یک شنبه 24 فروردین 1393, 18:35 عصر
مشکل اینجاست که کوکی رو میشه غیر فعال کرد ... یعنی اگه غیر فعال باشه یک پیغام نمایش بده که فعال کنه ؟

SadeghPro19
یک شنبه 24 فروردین 1393, 19:43 عصر
اگه کوکی غیرفعال بشه سشن هم از کار خواهد افتاد چون سشن برای انتقال داده ها از کوکی استفاده میکنه...

SlowCode
یک شنبه 24 فروردین 1393, 20:38 عصر
بله. وقتی یه سشن ایجاد میشه تو سیستم کاربر هم یه کوکی با نام PHPSESSID ایجاد میشه که توش شناسه کوکی که سمت سرور ذخیره شده نگه داری میشه.



مشکل اینجاست که کوکی رو میشه غیر فعال کرد ... یعنی اگه غیر فعال باشه یک پیغام نمایش بده که فعال کنه ؟


با این کد میتونی فعال یا غیرفعال بودن کوکی رو متوجه بشی:


<script type="text/javascript">
function createCookie(name, value, days) {
var expires;
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
}
else expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}

function eraseCookie(name) {
createCookie(name, "", -1);
}

function areCookiesEnabled() {
var r = false;
createCookie("testing", "Hello", 1);
if (readCookie("testing") != null) {
r = true;
eraseCookie("testing");
}
return r;
}
</script>



طریقه استفاده :


<script type="text/javascript">
alert(areCookiesEnabled());
</script>



از سشن و آرایه استفاده کن.
نگرانیت طبیعی هست. ولی بستگی داری به تعداد بازدیدکنندگان سایتت و کیفیت سرویسی که گرفتی. برای مثال سرویس معمولی با سرویس های پربازدید متفاوت هستن.