试图在提交表单时显示警告消息而不是另一条


Trying to show warning message in place of another when form is submited

我有一个登录表单,当我访问这个登录页面时,我有一个警告消息说:"输入您的访问数据以开始会话"。

然后我验证邮件是否有效或是否为空,我想为此给出警告消息,我希望这些错误消息出现在"输入您的访问数据以开始会话"的地方。

所以我创建了一个变量$showWarning = false,如果这个变量为false,我只显示我的消息"Enter your access data to start session"

当我想要给出其他警告消息时我将变量设为true, $showWarning = true

但是它不工作,我同时得到两个警告。

你知道哪里不对了吗?

$showWarning = false;

<?php
    if(!(isset($_GET['remember'])))
    {
        echo '<h1>Login:</h1>   ';
        if($showWarning ==false){
            echo '<span>Enter your acess data to start session.</span>';  
        }
        if(isset($_POST['sendForm'])){
            $f['email'] = $_POST['email'];
            $f['pass'] = $_POST['pass'];
         if(!$f['email'] || !valMail($f['email'])){
             $showWarning = true;
             echo '<span>Email is empty.</span>';
         }
         else if(strlen($f['pass']) <5 || strlen($f['pass']) > 10){
            echo '<span>Pass must have between 5 and 10 chars.</span>';
            $showWarning = true; 
         }
     }

然后是我的表单:

<form name="login" action="" method="post">
      <label class="label">
          <input placeholder="Email" type="text" name="email" />
      </label>
      <label class="label">
           <input type="password" placeholder="Pass" name="pass" />
           <input type="submit" value="Login" name="sendForm" />
           <a href="index.php?remember=true">Forgot pass</a>
      </label>        
</form>

您正在尝试在定义$showWarning之前使用它。此外,在尝试显示另一个警告之前,您没有任何逻辑来检查是否显示警告。

根据我在你的代码中看到的,那个检查甚至是不必要的。检查一下表格是否提交了。如果是,则显示验证期间可能出现的任何错误。如果没有,显示你的"Enter your access data to start session"消息

    if(isset($_POST['sendForm'])){
        $f['email'] = $_POST['email'];
        $f['pass'] = $_POST['pass'];
         if(!$f['email'] || !valMail($f['email'])){
             echo '<span>Email is empty.</span>';
         }
         else if(strlen($f['pass']) <5 || strlen($f['pass']) > 10){
            echo '<span>Pass must have between 5 and 10 chars.</span>';
         }
    }
    else {
        echo '<span>Enter your access data to start session.</span>';  
    }