از بین بردن سیشن ها

mohsen162

Member
با سلام خذمت دوستان
من یک اسکریپ نوشتم و می خوام وقتی که کاربر صفحه خودشو بست اتوماتیک تمام سیشن unset بشه( در php منظورمه ) برای این کار این کدهارو نوشتم
PHP:
<script type="text/javascript">
var logout = function() {
    var xhr = new XMLHttpRequest;
    xhr.open("GET", "logout.php", false);
    xhr.send(null);
};

var winNumber=1;
window.onload = function() {
   winNumber=winNumber+1;
};

window.onbeforeunload = function() {
    winNumber=winNumber-1;

    if (winNumber === 1) {
        logout();
    }
};
</script>
مشکلم اینجاست که با رفرش کردن صفحه هم سیشن ها از بین میره در صورتی که من می خوام فقط بعد از بسته شدن صفحه این اتفاق بیفته لطفا راهنمایی کنید به همین موضوع کل اسکریپم از کار افتاده خیلی خیلی ممنون میشم
 
با سلام خذمت دوستان
من یک اسکریپ نوشتم و می خوام وقتی که کاربر صفحه خودشو بست اتوماتیک تمام سیشن unset بشه( در php منظورمه ) برای این کار این کدهارو نوشتم
PHP:
<script type="text/javascript">
var logout = function() {
    var xhr = new xmlhttprequest;
    xhr.open("get", "logout.php", false);
    xhr.send(null);
};

var winnumber=1;
window.onload = function() {
   winnumber=winnumber+1;
};

window.onbeforeunload = function() {
    winnumber=winnumber-1;

    if (winnumber === 1) {
        logout();
    }
};
</script>
مشکلم اینجاست که با رفرش کردن صفحه هم سیشن ها از بین میره در صورتی که من می خوام فقط بعد از بسته شدن صفحه این اتفاق بیفته لطفا راهنمایی کنید به همین موضوع کل اسکریپم از کار افتاده خیلی خیلی ممنون میشم
دوست عزیز نیاز نیست شما برای اینکه هر موقع صفحه بسته شد سشن ها رو پاک کنی چون
سیستم سشن خودش جوری طراحی شده که برای هر صفحه سشن خاصی رو تعریف می کنه
پس شما با بستن اون صفحه به طور خود کار سشن از بین می رود

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

-----------------------
برای خروج هم شما می تونی با یه ادیدی چک کنی اگه می خواد خروج کنه سشن ها از بین بروند اگه نه که به کار خود ادامه بده

بهتر اون کد php و logout رو بزاری که با اون راهنمایت کنیم
 
آخرین ویرایش:

mohsen162

Member
سلام دوست عزیز ببنید من وقتی یک کاربر وارد میشه یک سیشن رو true میکنم و زمان ورودشم در یک دیتابیس دخیره میکنم بعد هر صفحه که میخوام به اون فرد نشون بدم چک میکنم ببینم اون فرد وارد شده یعنی سیشنش ok هست اگر فرد بدون اینکه روی منوی خروج کلید کنه
PHP:
session_destroy();
که نمیشه پس باید هر بار که میدونید که 99 درصد کاربران روی خروج کلید نمیکنن
صفحه logout.php من خیلی ساده است
زمان خروج وارد دیتابیس میکنه و همجنین سیشن کی ساختم رو از بین میبره

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

mohsen162

Member
دوست عزیز رو لوکال که اینجوری نیست نمیدونم شما بیشتر از من واردید
خوب زمان خروج رو چطوری وارد دیتابیس کنم
 
آخرین ویرایش:
دیگه اونو باید با جاوا چک کنی وقتی خروج کرد ذخیره بشه

یه کد دیده بودم که بیشتر تو ویلاگ ها استفاده می شد که وقتی بازدید کننده می خواست صفحه وبلاگ رو ببنده
یه alert میومد و یه پیغام می داد از اون کد می تونی استفاده کنی البته با تغییر

خوب در مورد اونم نت چکش کن ببین چه جوریه تا اونجا که من کار می کنم و دیدم و شنیدم که اینجوری بوده حالا :-؟؟
 

mohsen162

Member
میدونید بدبختیش اینه که با هر بار رفرش کردن این کد اجرا میشه خیلی اذیتم میکنه اگه کلکی به خاطرتون میرسه بگید
 
خوب نه ببین تو اون کد که من دیدم هر وقت خروج می کرد یه پیغام می داد واسه رفرش پیغام نمی داد
تو گوگل سرچ بزن ریخته کدش می تونی با یه تغییر کوچیک بجای اینکه پیغام بده اون کار مربوطه رو انجام بده

کدش رو پیدا کن اگه به مشکل خوردی پیغام بده دوستان هستن کمک می کنن
 

mohsen162

Member
ببنید این سایت اینجا
کاملا گفنه خواهشا اگر اون کد میدونید بگید من سایت های ایرانی و خارجی رو زیر رو کردم
 
ببنید این سایت اینجا
کاملا گفنه خواهشا اگر اون کد میدونید بگید من سایت های ایرانی و خارجی رو زیر رو کردم

خوب دوست عزیز این کد رو ببین باید تو قسمت body سایتت بزاری :

کد:
<body onUnload="window.alert('پيام شما');">
به جای :

کد:
window.alert('پيام شما');
می تونی اون فانکشن جاوای خودتو بزاری که به صفحه php هدایت بشه و خروج بشه :green:
 

mohsen162

Member
سلام
دوست خوبم دوتا تابع وجود داره که ما می تونیم بفهمیم که کاربر تغییری تو browser خودش ایجاده یکی onUnload و beforeunload اما این دوتا هر دو رفرش هم یک تغییر میدونن مشکل اینه ما باید بهش بگم که فقط وقتی browser بسته شده این کارو بکن خواهش میکنم اون سایتی که میگین فقط وقتی بسته میشد پیامو میدادو پیدا کنید ممنون میشم
به این آدرس بری دقیقا متوجه میشی که جی میگم اینجا
 
آخرین ویرایش:

danny foung

New Member
سلام محسن جان
طبق میلی که زده بودی بررسی کردم و جواب رو واست میذارم اینجا

<script type="text/javascript">
var
logout = function() {
var
xhr = new XMLHttpRequest;
xhr.open("GET", "logout.php", false);
xhr.send(null);
};


window.onbeforeunload = function() {

if (window.event.clientX < 0 && window.event.clientY < 0)
{
logout();
}

};
</script>



محسن جان اینبار اگه کار داشنی جونه من زنگ بزن گوشیم .
من اتفاقی میلت رو دیدم . بزنگ تا باهم هماهنگ کنیم تا اینقدر وا3 یه چیز ساده وقتت گرفته نشه .

امیدوارم کمکی کرده باشم
09379678117
 

جدیدترین ارسال ها

بالا