PHP(MySQLまたはSQLiteなし)のみを使用してログインシステムを作成しようとしています。しかし何らかの理由で、エラーを表示するはずのコードは間違っていますが、空白のページが表示されます。正しい場合は動作します。 (これはテストのためだけのプロトタイプである私は、各ユーザーの「IF/ELSE」を作るつもりはありません。) 私のコード は:50近くユーザー名とパスワードが間違っている間にページが空白になる - ログイン - PHP
<?php
if (isset($_POST['user']) && isset($_POST['pass'])) {
if ($_POST['user'] == "jakeajames" && $_POST['pass'] == "test123") {
setcookie("loggedin", "yes", time() + 60 * 60 * 3, "/");
header("Location: home.php");
}
elseif ($_POST['user'] != "jakeajames" && $_POST['pass'] != "test123" && isset($_COOKIE['failed3']))
{
switch ($_COOKIE['failed3']) {
case "1":
setcookie("failed3", "2", time() + 60, "/");
echo '<html>
<head><title>Login</title></head>
<body>
<center>
<p style="color: red;"> 2 attempts remaining</p>
<form method="post">
Usename: <input type="text" placeholder="username" name="user"></input><br>
Password: <input type="password" placeholder="password" name="pass"></input><br>
<input type="submit"></input>
</form>
</body>
</html>';
break;
case "2":
setcookie("failed3", "3", time() + 60, "/");
echo '<html>
<head><title>Login </title></head>
<body>
<center>
<p style="color: red;"> 1 attempt remaining</p>
<form method="post">
Usename: <input type="text" placeholder="username" name="user"></input><br>
Password: <input type="password" placeholder="password" name="pass"></input><br>
<input type="submit"></input>
</form>
</body>
</html>';
break;
case "3":
echo "You need to wait 60 seconds till you can login again";
break;
}
}
elseif ($_POST['user'] != "jakeajames" && $_POST['pass'] != "test123" && isset($_COOKIE['failed3'])) {
setcookie("failed3", "1", time() + 60, "/");
}
}
if (!isset($_POST['user']) && !isset($_POST['pass'])) {
echo '<html>
<head><title>Login</title></head>
<body>
<center>
<form method="post">
Usename: <input type="text" placeholder="username" name="user"></input><br>
Password: <input type="password" placeholder="password" name="pass"> </input><br>
<input type="submit"></input>
</form>
</body>
</html>';
}
?>
*ブランクページ*は何かが壊れていることを意味します。これらの行をPHPスクリプトの最上部、 'ini_set( 'display_errors'、1)に追加してください。 error_reporting(E_ALL); 'エラーが発生したかどうかを確認します。 –
うーん。それがエラーであれば、私がチェックしたエラーログに表示されます。また、これは最初から試してみると2回目ですが、同じことが起こるのは – Jakeashacks
あなたのコードに他の条件がないので、その空白があるかもしれません。ユーザー名またはパスワードのどちらかが正しいときに何も表示されない1つの条件 – reza