两种形式一种是更新数据库,另一种不是(PHP)



我在一个页面的网站上有两个表单-订阅时事通讯和联系人表单。我使用了类似的模式,能够将用户的输入提交到数据库。除此之外,使用validate.js我遇到了以下问题:

  • 时事通讯订阅-向数据库提交输入并显示感谢消息,但validation.js停止工作,因此基本上即使不是电子邮件也要提交。

  • 联系人表单-提交后显示感谢消息,必须连接到数据库,但提交空字段。

时事通讯提交表格:

<form novalidate type="" action="http://local.project/thankyou_newsletter.php?form=email" method="post" class="newsletter__form-js">

联系方式:

<form novalidate type="" name="contact_form" class="contact__form__wrapper" method="post" action="http://local.project/thankyou_contact.php?form=email">

谢谢_ newsletter.php

<?php
require 'connection.php';
$conn    = Connect();
$email   = $conn->real_escape_string($_POST['email']);
$query   = "INSERT into newsletter (email) VALUES('" . $email . "')";
$success = $conn->query($query);
if (!$success) {
die("Couldn't enter data: ".$conn->error);
}
echo "Thank you for subscribing to our newsletter. <br>";
$conn->close();
?>

谢谢你_contact.php

<?php
require 'connection.php';
$conn    = Connect();
$name    = $conn->real_escape_string($_POST['name']);
$email   = $conn->real_escape_string($_POST['email']);
$message = $conn->real_escape_string($_POST['message']);
$query   = "INSERT into contactForm (name, email, message) VALUES('" . $name . "','" . $email . "','" . $message . "')";
$success = $conn->query($query);
if (!$success) {
die("Couldn't enter data: ".$conn->error);
}
echo "Thank you for your message. We will get back to you shortly. <br>";
$conn->close();
?>

connection.php

<?php
function Connect()
{
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "root";
$dbname = "responses";
// Create connection
$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname) or die($conn->connect_error);
return $conn;
}
?>

好的,问题出在我设置的数据库中。我是在phpMyAdmin中完成的,没有将字段类型更改为"varchar"。

相关内容

最新更新