با سلام خدمت دوستان عزیز ...
بنده میخوام لاگین پیجی طراحی کنم که مثلا کاربر بعد از اینکه 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;
}
سلام
@e.hemmati.79
یه تیبل میتونید درست کنید که count رو در خودش ذخیره کنه و کوئری بزنید هر بار که ریست شد و به 3 که رسید حالا الارمی چیزی بده
این کار منطقی تر هست
شاید پاسخ شما همینجا باشد