PDA

View Full Version : جلوگیری از لاگین دوباره کاربر



ahmadkavand
پنج شنبه 24 بهمن 1392, 12:00 عصر
با سلام خدمت همه اساتید

می خواستم بدونم و بهم کمک کنید چطور بتونم اجازه لاگین دوباره به کاربری که لاگین شده رو بگیرم؟
مثلا یه سایت دانشجویی هست که دانشجو میره و با یوزرنیم و پسوردش لاگین میشه و کارهاشو انجام میده

من میخوام بدونم چطور از لاگین دوباره کاربر جلوگیری کنم؟ یعنی با یه تب دیگه وارد سایت بشه و نتونه لاگین کنه


اگه بیام شماره دانشجویی و یا آی پی رو موقع لاگین شدن بزارم توی یه جدول و موقع لاگین شدن دوباره،برنامه ابتدا جدول رو بگرده وسپس اجازه لاگین رو بده ، این درصورتی درسته که کاربر دکمه خروج رو بزنه و موقع خروج از سایت شماره دانشجویش پاک بشه از جدول لاگین
حالا اگه دکمه خروج رو نزد ویا یکباره مثلا از روی سیستمش بلند بشه یا یکباره سیستمش رو خاموش کرد، شماره دانشجویی اون توی اون جدول می مونه و بار بعد نمیتونه لاگین کنه



ممنون میشم راه و چارش رو بهم بگید

mojgan.dashti71
پنج شنبه 24 بهمن 1392, 12:58 عصر
یک فیلد زمان براش در نظر بگیر و کاربر هر عملی که انجام داد فیلد زمانش رو آبدیت کن و یک بازه زمانی براش در نظر بگیر مثلا 10 دقیقه یعنی اگه تا 10 دقیقه کاربر عملی انجام نداد کاربر رو از سایت خارج کن سیشن و یا کوکیش رو حذف کن و همزمان داده های مربوط به لاکین کاربر وهم حذف کن

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

خودت یه کوچولو تحلیل کن ببین کدوم مورد به کارت میاد چه چیزی نیاز داری اونجوری طراحی کن مثلا میتونی به صورت آزاکس باز بودن مرورگر رو بررسی کنی و در هر یک دقیقه یک درخواست از کلاینت به سرور بفرستی و وضعیت کاربر رو آبدیت کنی

ahmadkavand
پنج شنبه 24 بهمن 1392, 16:25 عصر
ممنون از کاربر عزیز mojgan
این توی فکرخودمم بود
اپدیت شدنش انجام میشه باحرکت کاربر روی صفحات
ولی حذفش مهمه.اگه بگیم با لاگین کاربرجدید حذف بشه شایدهیچ کاربری لاگین نکنه

ممنون میشم دوستان کمکم کنید

beh3000
پنج شنبه 24 بهمن 1392, 18:03 عصر
بهترین راه اینه که وقتی سشن کاربر وجود داره ( یعنی کاربر لاگین کرده ) اجازه دسترسی به قسمت لاگین رو ندی ... تمام

sadegh1362
پنج شنبه 24 بهمن 1392, 19:54 عصر
سلام
این رو در نظر داشته باشد که وقتی سشن کاربر true هست . اگر صفحه جدیدی باز کنه چون سشن هنوز فعال هست . در صفحه جدید هم اون رو لاگین شده میدونه.

اصلا سشن متغیری است که شما باهاش می تونید . فعالیت کاربر رو در کل مرورگر کنترل کنید . یعنی در همه صفحاتی که بازه .

ahmadkavand
یک شنبه 27 بهمن 1392, 08:49 صبح
با تشکر از همه دوستان
اینکه کاربر میتونه با سشنی که true هست ، توی هر صفحه بره درست
ولی من بیشتر دنبال اینم که خارج شدنش رو تشخیص بدیم(برای جلوگیری از لاگین دوباره ، موقعی که لاگین شده)



ممنون

omidabedi
یک شنبه 27 بهمن 1392, 10:52 صبح
تئوریکال همچین چیزی امکان پذیر نیست.
اما میشه برای کاربرای عادی سخت ترش کرد
مثل چک کردن ای پی که میتونه از قندشکن استفاده کنه و دورش بزنه

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

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

SadeghPro19
یک شنبه 27 بهمن 1392, 12:06 عصر
خب توی تیبل یه فیلد بزارید بعد مقدارش رو با 0 و 1 پر کنید. موقع لاگین اول چک میکنید یوزری که میخواد وارد بشه اون فیلد مقدارش 0 بود بهش اجازه ورود میدیم و مقدار فیلد رو آپدیت میکنیم و 1 میزاریم و اگه هم که از همون اول موقع چک کردن 1 بود بهش اجازه ورود رو نمیدیم. ولی واسه اینکه اگه مرورگر رو بست و Logout هم نزده بود که ما اون فیلد رو 0 کنیم واسه این راه حلی به ذهنم نمیرسه!!!:لبخند:

ahmadkavand
یک شنبه 27 بهمن 1392, 22:21 عصر
مرسی از پاسخ های همه دوستان
ممنون میشم دور هم بتونیم این مشکل رو حل کنیم

یه راه دیگه هم هست
از cron jobs استفاده کنیم.تا مثلا هر یک ساعت جدول لاگین رو پاک کنه
اونوقت اگه اینم کار نکرد چی؟

ahmadkavand
چهارشنبه 14 اسفند 1392, 17:37 عصر
با سلام خدمت همه اساتید

کسی میدونه چطور این موضوع رو باید حل کنیم؟

منظورم بیشتر اینه که اگه قطع ارتباط شد با پنجره ویندوز رو بست ، چطور با php بتونیم logout کنیم کاربر رو؟

ahmadkavand
جمعه 16 اسفند 1392, 22:53 عصر
دوستان؟
همچنان منتظریم

رامین مرادی
جمعه 16 اسفند 1392, 23:10 عصر
فکرکنم یه جایی خونده بودم که میتونی با جی کوئری یا جاوا بفهمی که پنجرت بسته شده .فکر کنم توی رویداد آنلود پیج جاری باشه . که میتونی با جاوا تابعی رو اجرا کنی تا سشن های مورد استفاده قرار گرفته رو ببنده . اگه لینکشو پیدا کنم برات میزارم.فکر کنم توی کد پروجکت دیدم

[younes]
جمعه 16 اسفند 1392, 23:35 عصر
اصولا لاگین و لاگ اوت با استفاده از سشن ها پیاده سازی میشه به طوری که وقتی کسی توی سایت للگین شد اگه با همون مرورگر یه تب جدید باز کنه باز هم لاگین شدست. یعنی باید لاگ اوت کنه تا از تب جدید بتونه دوباره لاگین کنه و یا باید از یه مرورگر دیگه استفاده کنه و اگر شما می خواهید کلا یه یوزر در یک زمان فقط از یک پی سی و یک مرورگر لاگین باشه باید یه فیلد برای این حالت با مقادیر true و false دز نظر بگیرید که اگر یک کاربر با یه مرورگر دیگه اقدام به لاگین کرد اول اون فیلد برسی شه و بعد اجازه ورود بده . و در مورد خروج یه گزینه تو php.ini هست که میتونی با هاش مقدار اعتبار سشن ها رو تعیین کنی یعنی اگه میخای با بستن مرورگر خروج انجام شه یا در یه مدت زمان معین باید php.ini رو تغییر بدی یا از تابع ini_set استفاده کنی

bestirani2
شنبه 17 اسفند 1392, 07:38 صبح
شما چند تا کار باید بکنید
1. مدت زمانی که کاربر لاگین میمونه رو محدود به زمان کمی کنید مثلاً پنج دقیقه یعنی کاربر اگه پنج دقیقه توی صفحه فعالیت نداشته باشه لاگ اوت بشه.
2. ایدی کاربرانی که لاگین کردند رو توی دیتابیس ذخیره کنید + زمان.
3. زمان ورود رو توی سشن هم ذخیره کنید.
4. هر بار کاربر صفحه جدیدی رو باز میکنه چک کنید چقدر از زمان توی سشن میگذره اگه بیش از 4 دقیقه بود، زمان مربوط به یوزر لاگین کننده رو به زمان جدید آپدیت کنید.
5. هنگام لاگین کاربر با یه مرورگر دیگه چک کنید که ای دی کاربر با زمانی کمتر از 5 دقیقه پیش وجود نداشته باشه.
6. یه کران جاب تعریف کنید هر ده دقیقه یه بار ای دی هایی که بیش از 10 دقیقه از زمانشون میگذره رو پاک کنه.

mahtdy
دوشنبه 18 فروردین 1399, 18:34 عصر
[QUOTE=ahmadkavand;1974598]با سلام خدمت همه اساتید

می خواستم بدونم و بهم کمک کنید چطور بتونم اجازه لاگین دوباره به کاربری که لاگین شده رو بگیرم؟
مثلا یه سایت دانشجویی هست که دانشجو میره و با یوزرنیم و پسوردش لاگین میشه و کارهاشو انجام میده

من میخوام بدونم چطور از لاگین دوباره کاربر جلوگیری کنم؟ یعنی با یه تب دیگه وارد سایت بشه و نتونه لاگین کنه


اگه بیام شماره دانشجویی و یا آی پی رو موقع لاگین شدن بزارم توی یه جدول و موقع لاگین شدن دوباره،برنامه ابتدا جدول رو بگرده وسپس اجازه لاگین رو بده ، این درصورتی درسته که کاربر دکمه خروج رو بزنه و موقع خروج از سایت شماره دانشجویش پاک بشه از جدول لاگین
حالا اگه دکمه خروج رو نزد ویا یکباره مثلا از روی سیستمش بلند بشه یا یکباره سیستمش رو خاموش کرد، شماره دانشجویی اون توی اون جدول می مونه و بار بعد نمیتونه لاگین کنه



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

موفقو پیروز باشین..

ghasemihesar
جمعه 26 اردیبهشت 1399, 18:34 عصر
شما یک ستون برای وضعیت لاگین برای هر رکورد ( دانشجو ) اضافه میکنید با مقدار true یا false، زمانی که کاربری لاگین میکنه باید یک ریکوئست به سرور بزنید که مقدار اون فیلد ( وضعیت ) مربوط به دانشجو وارد شده رو true ست کنه، و در حرکت آخر باید هر 1 دقیقه یک ریکوئست از سمت سرور به مرورگر کاربر بزنید تا آنلاین بودنش چک بشه، و اگه به هر دلیلی آفلاین بشه ( پنجره رو ببنده، سیستم خاموش شه و... )، جواب ریکوئست سرور آفلاین برمیگرده و اونجا شما میگید که فیلد وضعیت دانشجو رو false کنه، همین !