スクリプトにクッキーコードを実装する方法がわかりません。相続人は以下の私のページのための私のコード:ログインスクリプトのログイン試行回数を制限するにはどうすればよいですか?
ログインページ: -
<form name="loginform" class="form-horizontal" action="includes/login.php" method="post" onsubmit="return validateloginForm()">
<div class="form-group">
<label for="username" class="col-sm-2 control-label">Username</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="username" placeholder="Enter the username" id="username">
</div>
</div>
<div class="form-group">
<label for="password" class="col-sm-2 control-label">Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" name="password" placeholder="Password" id="password">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" name="signin" class="btn btn-primary">Sign in</button>
</div>
</div>
</form>
ログインチェック私は上記のスクリプトにこのコードを実装する必要が
if(isset($_POST['signin'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$username = mysqli_real_escape_string($connection, $username);
$password = mysqli_real_escape_string($connection, $password);
$query = "SELECT *FROM users WHERE username = '{$username}'";
$select_user_query = mysqli_query($connection, $query);
if(!$select_user_query) {
die("QUERY FAILED". mysqli_error($connection));
}
while ($row = mysqli_fetch_array($select_user_query)) {
$db_user_id = $row['user_id'];
$db_username = $row['username'];
$db_user_password = $row['user_password'];
$db_user_firstname = $row['user_firstname'];
$db_user_lastname = $row['user_lastname'];
$db_user_role = $row['user_role'];
}
$password = crypt($password, $db_user_password);
if ($username !== $db_username && $password !== $db_user_password){
header("Location: ../index.php");
} else if ($username == $db_username && $password == $db_user_password) {
$_SESSION['username'] = $db_username;
$_SESSION['firstname'] = $db_user_firstname;
$_SESSION['lastname'] = $db_user_lastname;
$_SESSION['user_role'] = $db_user_role;
header("Location: ../admin");
} else {
header("Location: ../login.php");
}
}
if($login_incorrect){
if(isset($_COOKIE['login'])){
if($_COOKIE['login'] < 3){
$attempts = $_COOKIE['login'] + 1;
setcookie('login', $attempts, time()+60*10); //set the cookie for 10 minutes with the number of attempts stored
} else{
echo 'You are banned for 10 minutes. Try again later';
}
} else{
setcookie('login', 1, time()+60*10); //set the cookie for 10 minutes with the initial value of 1
}
}
前もって感謝します。ログインを3回に制限し、10分間禁止する必要があります。
あなたown__パスワードハッシュを__rollいけないしてください。 PHPは 'password_hash()'と 'password_verify()'を提供します – RiggsFolly
このコードを上記のスクリプトに実装する必要はありません。ログインカウンタを保存するために既に使用しているセッションを使用しないでください – RiggsFolly
? – Morph9090