Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我有一个赢得';t验证以显示正确的错误消息_Php - Fatal编程技术网

Php 我有一个赢得';t验证以显示正确的错误消息

Php 我有一个赢得';t验证以显示正确的错误消息,php,Php,这将不会显示提交时的错误消息,我不知道是什么错了,我的代码似乎对我来说是好的。由于某些原因,当文本失败时,span元素中的错误代码无法显示错误消息。在提交表格后,甚至连回显的数据都没有打印出来 <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <label>

这将不会显示提交时的错误消息,我不知道是什么错了,我的代码似乎对我来说是好的。由于某些原因,当文本失败时,span元素中的错误代码无法显示错误消息。在提交表格后,甚至连回显的数据都没有打印出来

    <body>
        <form method="post" action="<?php echo
            $_SERVER['PHP_SELF']; ?>">
           <label>
              <input type="text" placeholder="Enter
              fullname here" name="name">
              <span class="err"><?php echo @$name_err; ?></span>
           </label>
           <label>
              <input type="text" placeholder="Enter 
               Email here" name="email">
               <span class="err"><?php echo @$email_err; ?></span>
               </label>
           <label>
               <input type="submit" value="submit">
            </label>
         </form>
      </body>
    </html>

     <?php
    if($_SERVER['REQUEST_METHOD'] == 'POST') {

        $name = $email = '';
        $name_err = $email_err = '';
        if(!empty($_POST['name'])) {
            $name = $_POST['name'];
       } else {
            $name_err = 'You fullname is required';
       }

        if(!empty($_POST['email'])) {
            $email = $_POST['email'];
       }else {
        $email_err = 'Your email is required';
    }
    }

   echo $name.'<br>';
   echo $email.'<br>';
?>


这应该行得通。在渲染表单之前,您应该检查错误。另外,对于$email\u err,您的变量名也是错误的

<?php
    if($_SERVER['REQUEST_METHOD'] == 'POST') {

        $name = $email = '';
        $name_err = $email_err = '';
        if(!empty($_POST['name'])) {
            $name = $_POST['name'];
       } else {
            $name_err = 'You fullname is required';
       }

        if(!empty($_POST['email'])) {
            $email = $_POST['email'];
       }else {
        $email_err = 'Your email is required';
    }
    }

   echo $name.'<br>';
   echo $email.'<br>';
?>
<body>
    <form method="post" action="<?php echo
        $_SERVER['PHP_SELF']; ?>">
       <label>
          <input type="text" placeholder="Enter
          fullname here" name="name">
          <span class="err"><?php echo @$name_err; ?></span>
       </label>
       <label>
          <input type="text" placeholder="Enter 
           Email here" name="email">
           <span class="err"><?php echo @$email_err; ?></span>
           </label>
       <label>
           <input type="submit" value="submit">
        </label>
     </form>
  </body>
</html>


您没有使用$name\u err执行任何操作吗?加上您的电子邮件验证转储到此VARAIBLE我已经回显了输入字段下方显示的错误消息,因为表单将提交给它自己,因为您的变量是在打印它们之后定义的。您究竟为什么要在VAR前面加上
@
?不要压制错误,只要修正它们以压制错误,但我现在如何才能真正得到它?@pedroyanky请仔细阅读答案。首先是HTML。它似乎和mineNo一样,但不一样。我的代码工作,你的代码永远不会工作。我认为我的方法的问题是排序,php代码排在第一位。但这有关系吗?