• ایجاد تاخیر در لاگین در صورت چند لاگین ناموفق
    #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 508 09-07-2014 ساعت 11:30
    آخرین ارسال: pirzad_7@yahoo.
    Note نحوه ایجاد مقادیر در صورت عدم موجودیت در جدول sixi 1 529 19-06-2014 ساعت 13:50
    آخرین ارسال: SOFTAFZAR
    Note ارسال فرم با jquery بصورت ajax Sharif 1 485 26-04-2014 ساعت 15:14
    آخرین ارسال: maJID maGIC
    Note ایجاد دیتابیس در صورت عدم وجود در PHP BaNNer LorD 1 965 23-01-2013 ساعت 20:24
    آخرین ارسال: SOFTAFZAR

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