PHP 回显错误


PHP echo error

首先,这不是编写整体代码的最佳方式,但我正在尝试练习switch语句,所以我使用相同的形式和错误消息来练习不同的php函数和语句等

在这种特殊情况下,案例编号(案例 1、案例 2、案例 3 等)包含在我的 echo 语句中,我不确定为什么

因此,在给出的示例中,在用户名下的表单中,我输入字母 C 并期望错误简单地输出为"用户名必须至少为 6 个字符",但实际上结果是"用户名必须至少为 6 个字符2"

我尝试将初始变量设置的数字值放在开头的各种 if 语句放入"中,当我到达 case switch 语句时也是如此,以防它必须作为文本读取,但这没有任何区别

任何这方面的帮助将不胜感激。可能是非常简单的事情。附言请不要嘲笑我的代码....太多了

'

<?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>

'

在案例块之后,您正在回显数字本身:

echo $userErr;?>

删除该echo,它应该可以正常工作。