ایجاد تاخیر در لاگین در صورت چند لاگین ناموفق
#1
Note 
سلام
چه جوری میتونم یک فرم ورود (login)بسازم که اگه کاربر رمز رو تا 5 بار اشتباه وارد کرد دیگه به کاربر اجازه ورود نده و پیغامی نمایش بده که شما اجازه ورد ندارید؟

پاسخ
#2
Note 
سلام
میتونید با استفاده از آیپی کاربر و یا استفاده از کوکی اینکار رو انجام بدید که روش اول بهتره
روش کار خیلی سادست هر دفعه که کاربر رمز رو اشتباه وارد میکنه شما یه عدد به شمارنده اضافه میکنی و تو دیتابیس ذخیره میکنی و هر وقت مقدار شمارنده بیشتر از 5 شد پیام مورد نظر و نمایش بدید.

مردم دنیا 10 دسته هستند: کسانی که باینری میفهمند و کسانی که باینری نمیفهمند !
پاسخ
#3
Note 
امکان داره کدش و برام قرار بدین؟

پاسخ
#4
Note 
بله حتما،
کد php:
<?php
$login_success 
tryToLogIn($username$password);

if (!
$login_success) {
    
// some kind of unique hash
    
$ipusr getUserIP() . $username;

    
DB:update('INSERT INTO failed_logins (ip_usr, failed_attempts) VALUES (:ipusr, 1) ON DUPLICATE KEY UPDATE failed_logins SET failed_attempts = failed_attempts+1 WHERE ip_usr=:ipusr', array((':ipusr' => $ipusr));

    
$failed_attempts DB:selectCell('SELECT failed_attempts WHERE ip_usr=:ipusr', array(':ipusr' => $ipusr));

    
sleep($failed_attempts);
    
redirect('/login', array('errorMessage' => 'login-fail! ur doin it rong!'));
}
?>

یا

کد php:
session_start();
 
$attempts "your MySQL result from the attempts table";
 if(
$attempts 5){
  
//normal login with error message
  
$next_attempts $attempts++;
  
//code to write $new_attempts to attempts table
  //set the start of the lockout timer
  
if($attempts == 4){
     
$_SESSION('timeout') = time();
  }
}
//LOCKED OUT CODE
else{
    echo 
"sorry you have to wait 15 min to log in again";
    
//Check elapsed time
    //10 minute timeout
    
if ($_SESSION['timeout'] + 10 60 time()) {
       
$attempts 0;
       
//code to write $attempts to table attempts
       
session_destroy()
    }


مردم دنیا 10 دسته هستند: کسانی که باینری میفهمند و کسانی که باینری نمیفهمند !
پاسخ
#5
Note 
Stack OverFlow نوشته است:بله حتما،
کد php:
<?php
$login_success 
tryToLogIn($username$password);

if (!
$login_success) {
    
// some kind of unique hash
    
$ipusr getUserIP() . $username;

    
DB:update('INSERT INTO failed_logins (ip_usr, failed_attempts) VALUES (:ipusr, 1) ON DUPLICATE KEY UPDATE failed_logins SET failed_attempts = failed_attempts+1 WHERE ip_usr=:ipusr', array((':ipusr' => $ipusr));

    
$failed_attempts DB:selectCell('SELECT failed_attempts WHERE ip_usr=:ipusr', array(':ipusr' => $ipusr));

    
sleep($failed_attempts);
    
redirect('/login', array('errorMessage' => 'login-fail! ur doin it rong!'));
}
?>

یا

کد php:
session_start();
 
$attempts "your MySQL result from the attempts table";
 if(
$attempts 5){
  
//normal login with error message
  
$next_attempts $attempts++;
  
//code to write $new_attempts to attempts table
  //set the start of the lockout timer
  
if($attempts == 4){
     
$_SESSION('timeout') = time();
  }
}
//LOCKED OUT CODE
else{
    echo 
"sorry you have to wait 15 min to log in again";
    
//Check elapsed time
    //10 minute timeout
    
if ($_SESSION['timeout'] + 10 60 time()) {
       
$attempts 0;
       
//code to write $attempts to table attempts
       
session_destroy()
    }


سلام.....ببخشید به جای getUserIP میشه از این استفاده کرد؟؟

کد php:
$_SERVER['REMOTE_ADDR'

پاسخ
#6
Note 
سلام
آره در حقیقت getuserip یه تابع هست که توش از همین کد استفاده شده.

پاسخ
#7
Note 
باشه...مرسی

پاسخ
#8
Note 
سلام دوست عزیز
من مدیر نیستم اما معمولا برای تشکر از دکمه تشکر استفاده میکنن Confusedmile16:

پاسخ
#9
Note 
maJID maGIC نوشته است:سلام دوست عزیز
من مدیر نیستم اما معمولا برای تشکر از دکمه تشکر استفاده میکنن Confusedmile16:
ایشالا دفعه بعد حتما استفاده میکنم

پاسخ
#10
Note 
خیلی سپاس گذارم

پاسخ
ایجاد موضوع جدید   پاسخ به موضوع  

موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Note تغییر عکس به صورت اسلاید اسلاید pirzad_7@yahoo. 2 354 09-07-2014 ساعت 11:30
آخرین ارسال: pirzad_7@yahoo.
Note نحوه ایجاد مقادیر در صورت عدم موجودیت در جدول sixi 1 403 19-06-2014 ساعت 13:50
آخرین ارسال: SOFTAFZAR
Note ارسال فرم با jquery بصورت ajax Sharif 1 345 26-04-2014 ساعت 15:14
آخرین ارسال: maJID maGIC
Note ایجاد دیتابیس در صورت عدم وجود در PHP BaNNer LorD 1 607 23-01-2013 ساعت 20:24
آخرین ارسال: SOFTAFZAR

کاربرانِ درحال بازدید از این موضوع:   1 مهمان