عرفان همتی
5 سال پیش توسط عرفان همتی مطرح شد
2 پاسخ

مشکل در ایجاد محدودیت لاگین در PHP

با سلام خدمت دوستان عزیز ...
بنده میخوام لاگین پیجی طراحی کنم که مثلا کاربر بعد از اینکه 3 بار ایمیل یا رمز عبورش رو اشتباه وارد کرد ، به اون یه پیغامی نشون بده ...
این کار رو با استفاده از کوکی انجام دادم ، ولی نمیدونم چرا اعمال نمیشه ... ممنون میشم اگر کمکم کنید .

فایل do_login.php

<?php
session_start();
require_once "conf/connect.php";
$email = $_POST['email'];
$pass = sha1($_POST['password']);
$ip = $_SERVER['REMOTE_ADDR'];
$check = 0;

if (isset($_POST['do_login'])) {
    if (!empty($email) && !empty($pass)) {

        if (isset($_COOKIE['LimitLogin-' . $email])) {
            $val = $_COOKIE['LimitLogin-' . $email];
            if ($val > 3) {
                $check = $val;
            }
        }

        if ($check > 3) {
            echo "BlockedLogin";
        } else {
            $Sql2 = "SELECT email , password FROM users WHERE email = '$email' AND password = '$pass'";
            $Result2 = mysqli_query($Connect, $Sql2);
            $Row2 = mysqli_fetch_array($Result2);

            if ($Row2['email'] == $email && $Row2['password'] == $pass) {
                if ($Row2['isadmin'] == 1) {
                    $_SESSION['AI'] = $Row2['id'];
                    echo "Admin";
                } else {
                    $_SESSION['UI'] = $Row2['id'];
                    echo "User";
                }
            } else {

                if (isset($_COOKIE['LimitLogin-' . $email])) {
                    $val = intval($_COOKIE['LimitLogin-' . $email]);
                    $val++;
                    $cookie_name = "LimitLogin-" . $email;
                    $cookie_time = time() + 3600;
                    setcookie($cookie_name, $val, $cookie_time);
                } else {
                    $cookie_name = "LimitLogin-" . $email;
                    $cookie_value = "1";
                    $cookie_time = time() + 3600;
                    setcookie($cookie_name, $cookie_value, $cookie_time);
                }
                echo "LoginFailed";
            }
        }
    } else {
        echo "EmptyValue";
    }
} else {
    header("location:login.php");
}
?>

فانکشن مربوط به ارسال اطلاعات به صورت ajax به سرور


function DoLogin() {
    var Email = $("#TxtEmail").val();
    var Password = $("#TxtPassword").val();

    if (Email != "" && Password != "") {
        $("#loading_spinner").css({"display": "block"});

        $.ajax({
            type: 'post',
            url: 'do_login.php',

            data: {
                do_login: "do_login",
                email: Email,
                password: Password
            },

            success: function (response) {
                if (response == "Admin") {
                    window.location.href = "AdminPanel.php"
                }

                else if (response == "User") {
                    window.location.href = "UserPanel.php";
                }

                else if (response == "BlockedLogin") {
                    $("#loading_spinner").css({"display": "none"});
                    swal(
                        'خطا !',
                        'نام کاربری یا رمز عبور اشتباه می باشد .',
                        'error'
                    )
                }

                else if (response == "block") {
                    $("#loading_spinner").css({"display": "none"});
                    swal(
                        'خطا !',
                        'شما رمز عبور خود را بیش از 3 با وارد کرده اید .',
                        'error'
                    )
                }

                else if (response == "EmptyValue") {
                    $("#loading_spinner").css({"display": "none"});
                    swal(
                        'خطا !',
                        'مقدار ورودی نمی تواند خالی باشد .',
                        'error'
                    )
                }

                else {
                    $("#loading_spinner").css({"display": "none"});
                    swal(
                        'خطا !',
                        'خطایی در عملیات لاگین به وجود آمده است .',
                        'error'
                    )
                }
            }
        });
    }

    else {
        swal(
            'خطا !',
            'مقدار ورودی نمی تواند خالی باشد .',
            'error'
        )
    }
    return false;
}

ثبت پرسش جدید
حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 5 سال پیش مطرح شد
0

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

var_dump();die;

Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 5 سال پیش مطرح شد
1

سلام
@e.hemmati.79

یه تیبل میتونید درست کنید که count رو در خودش ذخیره کنه و کوئری بزنید هر بار که ریست شد و به 3 که رسید حالا الارمی چیزی بده
این کار منطقی تر هست


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام