Php表单提交不起作用。它有什么问题?

时间:2015-03-11 19:17:26

标签: php html mysql forms submit

我只是想将表单数据(电子邮件,日期)添加到mysql数据库。以下是我的代码。它看起来很好,但出于某种原因,每次我提交表单,它都没有做任何事情。我没有收到任何错误消息。我在提交后看到的唯一更改是在顶部的浏览器网址搜索字段中。 “/本地主机/电子邮件=安培;提交= +通知我”

数据库已连接且表/列名称正确匹配。表单本身根本不处理。你能看看它是否有任何问题吗?

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

2 个答案:

答案 0 :(得分:2)

你需要有方法=&#34; post&#34;但不是打字。

这就是你所拥有的:

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

这就是你需要的:

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

答案 1 :(得分:2)

表单是使用GET而不是POST提交的,因为你有类型=&#34; post&#34;而不是方法=&#34; post&#34;在表格上。键入isn是一个有效的属性,因此id默认为GET,然后由于您检查$ _POST而被脚本忽略。