基本的なログインページがあります。このページは、ログインに失敗したユーザー名とUNIX時間を記録するために使用されます。
ユーザーにパスワードの入力を許可する前にユーザー名を確認し、5回以上試行して30分間無効にすることは可能ですか?
Webを検索しましたが、何も見つかりません。他の解決策は、コードを続行する前にテーブルを確認することでしたが、少し頭がおかしくなりました。十分に簡単であると確信していますが、ユーザーを停止することをお勧めします。ついさっき?
私が何をしようとしているのかがわかるように、チェックページを添付しました。
Include("include/conn.php");
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
mysqli_select_db('DATABASE');
// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
// To protect MySQL injection
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
// encrypt password
$encrypted_mypassword=md5($mypassword);
//see if account is locked
//STUCK HERE if looking at amount of attements before allowing code to run.
//look up username and pasword match
$sqli="SELECT * FROM TABLE WHERE Username='$myusername' and Password='$encrypted_mypassword'";
$result=mysql_query($sqli);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $Unique_Id and redirect to file "home.php"
session_register("myusername");
session_register("Unique_Id");
header("location:home.php");
}
//if log in if not sucsesfull
else {
echo "Wrong Username or Password";
//update attempt log with attempt +1 and unix time
$sql_query_update = "UPDATE TABLE SET
Attempts = Attempts+1,time = UNIX_TIMESTAMP(now())
WHERE TABLE.Username ='$myusername'";
mysql_query( $sql_query_update );
//close mysql
mysql_Close();
}
?>
私は古いコードを知っていますが、これはmysqli
仮想サーバーでの構成に苦労しているため、テスト専用です。