【问题标题】:PHP form confirmationPHP 表单确认
【发布时间】:2020-11-30 19:03:05
【问题描述】:

我的表单有问题,我不知道该怎么办。 我正在创建一个表单来收集数据并将其传递到第二页(名称、用户名、密码......)当我填写我的第一个表单时,我有它应该有的所有验证错误,但它仍然让我去下一页(例如,如果在第一页中我输入名称:sara 第二页会说 Welcome sara。通常如果它是空的,它不应该转到第二页,但在我的情况下它会。我怎样才能强制填写所有进入下一页之前的信息和验证密码?

谢谢。

<?php 
      if(isset($_POST['create'])){
    $Name       = $_POST['Name'];
    $lastName   = $_POST['lastName'];
    $userName   = $_POST['userName'];
    $pWord      = $_POST['pWord'];
    $confirm    = $_POST['confirm'];
      
          if(empty($Name) || empty($lastName) || empty($userName) || empty($pWord) || empty($confirm)){
            $empty_error = "Enter all informations";
              include('Registration.php');
        }
  

?>

【问题讨论】:

  • 重定向到下一页的代码在哪里?
  • 我是 web dev 的新手,来自我的不理解我只需要输入 php 页面即可到达那里
  • 如果第一个if 评估为真,您的else if (...) 将不会被执行甚至评估。所以你不能在else if (...) 中使用你在if () {....} 中定义的变量。您需要创建另一个单独的if 语句来验证它们,或者在第一个if 中添加empty($_POST['Name']) || ...Here's the manual about else/else if
  • 看不到else if 的逻辑。例如。您不希望您的 create 字段存在吗?

标签: php html forms validation


【解决方案1】:

你的情况不好。

您需要检查 IF 中的变量是否为空,而不是 else 分支(您的 ELSE IF 意味着 if !isset($_POST['create']) - 在这种情况下,所有变量未定义)。

if(isset($_POST['create'])){
    $Name       = $_POST['Name'];
    $lastName   = $_POST['lastName'];
    $userName   = $_POST['userName'];
    $pWord      = $_POST['pWord'];
    $confirm    = $_POST['confirm'];

    if(empty($Name) || empty($lastName) || empty($userName) || empty($pWord) || empty($confirm)){
        // at least one field is empty
        $empty_error = "Enter all informations";
        include('Registration.php');
    } else {
        // all data are filled, do stuff
    }
} 

【讨论】:

    猜你喜欢
    • 2013-12-30
    • 2014-10-01
    • 2011-08-27
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多