Во-первых, это не лучший способ написать общий код, но я пытаюсь использовать инструкции switch, поэтому я использую те же формы и сообщения об ошибках, чтобы практиковать различные функции и заявления php и т. Д.Оператор переключения PHP - ошибка эха
В этом конкретном случае номер дела (случай 1, случай 2, случай 3 и т. Д.) Включен в мое эхо-заявление, и я не уверен, почему
Итак, в приведенном примере, в форме под именем пользователя I введите букву C и ожидайте, что ошибка будет просто выводиться как «Имя пользователя должно быть не менее 6 символов», но то, что на самом деле выходит, равно «Имя пользователя должно быть не менее 6 символов2»
Я попытался поместить значение числа для начальной переменной в начале с помощью различных операторов if в «", и то же самое, когда я получаю инструкции оператора case в случае, если он должен был читать как текст, но это не не имеет значения
Любая помощь по этому вопросу будет оценена по достоинству. Скорее всего, что-то очень простое. пс пожалуйста, не смейтесь над моим кодом .... слишком много
`
<?php
##### Form Handling ####
if ($_SERVER[ 'REQUEST_METHOD'] == 'POST')
### Error Handling ###
// define variables and set to empty values
$userErr = $firstnameErr = $surnameErr = $emailErr = "";
$user = $firstname = $surname = $email = "";
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (empty($_POST["user"]))
{
$userErr = 1;
}
else
{
$user = $_POST["user"];
if (strlen($user) < 6) {
$userErr = 2;
}
if(strlen(trim($username)) != strlen($username)) {
$userErr = 3;
}
}
if (empty($_POST["firstname"])) {
$firstnameErr = "First name is required";
} else {
$firstname = $_POST["firstname"];
if (!preg_match("/^[a-zA-Z ]*$/",$firstname))
{$firstnameErr = "Only letters and white space allowed"; }
}
if (empty($_POST["surname"])) {
$surnameErr = "Surname is required";
} else {
$surname = $_POST["surname"];
if (!preg_match("/^[a-zA-Z ]*$/",$surname))
{$surnameErr = "Only letters and white space allowed"; }
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = $_POST["email"];
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
{ $emailErr = "Invalid email format"; }
}
}
?>
<form action="form_register.php" method="POST">
<p>Username:
<input type="text" name="user" value="<?php echo $user;?>">
<?php
switch($userErr)
{
case 1:
echo "Username is required";
break;
case 2:
echo "Username must be a minimum of 6 characters";
break;
case 3:
echo "Must not contain any spaces";
break;
default:
echo "*";
break;
}
echo $userErr;?> </p>
<p>First Name:
<input type="text" name="firstname" value="<?php if (isset ($_POST['firstname']))
echo $_POST['firstname'] ; ?>"> </p>
<p>Surname:
<input type="text" name="surname" value="<?php if (isset ($_POST['surname']))
echo $_POST['surname'] ; ?>"> </p>
<p>Email Address:
<input type="text" name="email" value="<?php if (isset ($_POST['email']))
echo $_POST['email'] ; ?>"> </p>
<p><input type="submit"></p>
</form>
`
Спасибо, я думал, что мне нужен оператор эха для вывода инструкции ошибки. Это действительно исправило это –