Я пытаюсь создать рабочую регистрацию, однако у меня есть проблема. Проверки работают, но есть ошибка, даже если пользователь вводит правильную информацию, оператор INSERT не выполняется. Однако, когда оператор «elseif» удаляется, ошибка отражается на интерфейсе, но данные по-прежнему INSERTED, даже если в пользовательской форме есть ошибка; например, пароль имеет только буквы. Буду признателен, если кто-нибудь сможет исправить эту ошибку. Ниже приведена полная проверка. Благодаря Wasimинструкция if-else strlen не работает php
<?php include "connection2.php" ?>
<?php
session_start();
if (empty($errors)) {
if(isset($_POST['submitted'])) {
$firstname=$_POST['Firstname'];
$lastname=$_POST['Lastname'];
$username=$_POST['Username'];
$password= $_POST['Password'];
$email=$_POST['Email'];
if ($username&&$password&&$email) {
if (strlen($username)>10) {
echo "Username is too long (Max 10 Characters)";
}
else {
//check password length
if (strlen($password)>15||strlen($password)<5) {
echo "Password must be 5 to 15 characters<br>";
}
if (!preg_match("#[0-9]+#", $password)) {
echo "Password must include at least one number!<br>";
}
if (!preg_match("#[a-zA-Z]+#", $password)) {
echo "Password must include at least one letter!<br>";
}
elseif ((!strlen($username) >10) and
(!strlen($password)>15||!strlen($password)<5) and
(preg_match("#[0-9]+#", $password)) and
(preg_match("#[a-zA-Z]+#", $password))) {
$sql = mysql_query
("INSERT INTO users(firstname, lastname,username, password, email)
VALUES ('$firstname','$lastname','$username',
'$password','$email')");
md5($password);
//register the user!
echo "Your Are Now a Member";
}
}
}
mysql_close();
}}
else { ?>
<?php }
?>
Первое, что вам нужно сделать, это стандартизировать ваш отступы, чтобы сделать его более легким для чтения. – developerwjk
Также прекратите использование mysql_ *. используйте mysqli_ * или PDO. –
попробуйте, если это имя пользователя: '); DROP TABLE users: - – h3n