こんにちは、登録の詳細がデータベースで一致しないかどうかを確認する関数があります。一致する場合は、コードを返します。
しかし、コードを返すたびに、HTML の読み込みが妨げられるため、HTML が読み込まれません。特定の理由で、HTML を常に PHP コードの下に配置したい (フォームの下ではなく、フォームまでエラーを表示したい)。
これは私の機能の例です:
function check_available($name, $password, $email)
{
global $pdo;
$check_user = $pdo->prepare("SELECT * FROM users WHERE user_name = :username LIMIT 1");
$check_user->execute( array(':username' => $name) );
$check_email = $pdo->prepare("SELECT * FROM users WHERE user_email = :email LIMIT 1");
$check_email->execute( array(':email' => $email) );
$error = '';
if ($check_user->rowCount())
{
$error .= 'Username already exists!';
return handle_errors($error);
}
else if($check_email->rowCount() && !$check_user->rowCount())
{
$error .= 'Email already exists!';
return handle_errors($error);
}
else
{
return true;
}
}
if (isset($_POST['submit']))
{
$check_in = check_available($name, $password, $email);
if ($check_in == true)
{
echo 'Created account sucessfully!';
}
}
?>
<html>
<form action="register.php" method="POST">
Username: <input type="text" name="username"><br />
Password: <input type="password" name="password"><br />
Email: <input type="text" name="email"><br />
<input type="submit" name="submit">
</form>
</html>
送信後 (データベースで既に一致するユーザー名を使用)、HTML が非表示になり、エラーが表示されます。
これを防ぐにはどうすればよいですか?そのためのトリックはありますか?