Я пытаюсь создать основной скрипт регистрации. Если оставить все формы пустыми, я получаю сообщение о том, что я не использовал действительный адрес электронной почты, но я хотел бы, чтобы он сказал мне, что я не ввел никаких данных, и сделайте это, если какая-либо форма оставлена пустой. Логика не кажется правильной, ее, вероятно, небольшая проблема, но я не могу ее найти.Базовая регистрационная форма, логика неправильная
homepage.php
<html>
<head>
</head>
<body>
<?php
require 'functions.php';
registration_form();
?>
</body>
</html>
functions.php
function registration_form() {
echo '<form id="register" action="register.php" method="post">';
echo '<fieldset>';
echo '<legend>Register</legend>';
echo '<input type="hidden" name="submitted" id="submitted" value="1" /></br>';
echo '<label for="email">Email Address:</label></br>';
echo '<input type="text" name="email" id="email" maxlength="100" /> </br>';
echo '<label for="password">Password:</label></br>';
echo '<input type="password" name="password" id="password" maxlength="60" /></br>';
echo '<label for="confirmpassword">Confirm Password:</label></br>';
echo '<input type="password" name="confirmpassword" id="confirmpassword" maxlength="60" /></br>';
echo '<input type="submit" name="Submit" value="Submit">';
echo '</fieldset>';
echo '</form>';
}
function validate_registration($password, $confirmpassword, $email) {
if ((!isset($email)) || (!isset($password)) || (!isset($confirmpassword))) {
registration_form();
echo "Please enter the required information:";
}
elseif ((filter_var($email, FILTER_VALIDATE_EMAIL)) && ($password == $confirmpassword)) {
echo "You have registered with: $email";
}
elseif ((filter_var($email, FILTER_VALIDATE_EMAIL)) && ($password !== $confirmpassword)) {
registration_form();
echo "Your password does not match!";
}
else {
registration_form();
echo "You have not entered a valid email address!";
}
}
register.php
require 'functions.php';
$email = $_POST['email'];
$password = $_POST['password'];
$confirmpassword = $_POST['confirmpassword'];
validate_registration($password, $confirmpassword, $email);
Не связано с PHP, но если вы знаете Javascript, вы можете использовать JQuery, чтобы проверить, пусты ли поля формы, и только отправить, если форма завершена. – jh314
Валидация на стороне клиента отлично подходит для сокращения поездок на сервер, но не слепо доверять чему-либо, поступающему от клиента. –