Php 表单提交无效。它出什么问题了?

Php form submit not working. What's wrong with it?

我只是想将表单数据(电子邮件、日期)添加到 mysql 数据库。下面是我的代码。它看起来不错,但出于某种原因,每次我提交表单时,它什么也没做。我没有收到任何错误消息。提交后我看到的唯一变化是在顶部的浏览器 url 搜索字段中。 "/localhost/?email=&submit=Notify+Me"

数据库已连接并且 table/column 名称正确匹配。表单本身根本不处理。能不能看看有没有问题?

                    <?php
     
     if(isset($_POST['submit'])) {
      
      $email = trim($_POST['email']);
      
      if(empty($_POST['email'])) {
       
       $error = 'Please enter your email address.';
       
      } else {
      
       $newEmail = $email;
       $date   = date('Y-m-d H:i:s');
   
       $insert = $db->prepare("INSERT INTO email_list(email, date) VALUES(:email, :date)");
       $insert->bindParam(':email', $newEmail);
       $insert->bindParam(':date', $date);
       $insert->execute();
       $result = $insert->execute();
       
       if($result == false) {
       
        $error = 'There seems to be a problem. Please try again.';
       
       } else {
       
        $success = 'Success.';
        
       
       }
      }
     }
     ?> 
     <div id="error"><?php echo $error; ?></div>
     <div id="success"><?php echo $success; ?></div>
     
     <form action="" method="post">
      <input type="text" name="email" placeholder="Enter email address"/>
      <input type="submit" name="submit" value="Notify Me"/>
     </form>

您需要有 method="post" 而不是 type。

这是你拥有的:

<form action="" type="post" enctype="multipart/form-data">

这就是你需要的:

<form action="" method="post" enctype="multipart/form-data">

表单使用 GET 而不是 POST 提交,因为您在表单上使用的是 type="post" 而不是 method="post"。类型不是有效属性,因此 id 默认为 GET,然后由于您正在检查 $_POST.

而被您的脚本忽略