HTML表单/PHP已连接,但MySQL为空
我正在为我的域设置一个联系人表单。我已经成功地从cPanel创建了数据库和表,但是我在让PHP代码正常工作时遇到了问题。我能够使用PHP在HTML表单和数据库之间建立连接。当我在表单上点击“提交”时,它会连接到数据库,我会收到一条“成功”消息 然而,当我登录并通过PHPmyadmin检查MySQL数据库时,我可以看到它确实在表中创建了一个新行,但它是空的 我花了数小时逐行梳理语法,似乎找不到任何不合适的地方,现在我添加了一系列故障排除步骤来尝试解决它 非常感谢您的帮助 HTML格式如下所示:HTML表单/PHP已连接,但MySQL为空,php,html,mysql,forms,Php,Html,Mysql,Forms,我正在为我的域设置一个联系人表单。我已经成功地从cPanel创建了数据库和表,但是我在让PHP代码正常工作时遇到了问题。我能够使用PHP在HTML表单和数据库之间建立连接。当我在表单上点击“提交”时,它会连接到数据库,我会收到一条“成功”消息 然而,当我登录并通过PHPmyadmin检查MySQL数据库时,我可以看到它确实在表中创建了一个新行,但它是空的 我花了数小时逐行梳理语法,似乎找不到任何不合适的地方,现在我添加了一系列故障排除步骤来尝试解决它 非常感谢您的帮助 HTML格式如下所示: &
<form action="insert.php" method="post" name="sentMessage" id="contactForm">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<input type="text" class="form-control" placeholder="Your Name *" name="name" required data-validation-required-message="Please enter your name.">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="email" class="form-control" placeholder="Your Email *" name="email" required data-validation-required-message="Please enter your email address.">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input type="tel" class="form-control" placeholder="Your Phone *" name="phone" required data-validation-required-message="Please enter your phone number.">
<p class="help-block text-danger"></p>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<textarea class="form-control" placeholder="Your Message *" name="message" required data-validation-required-message="Please enter a message."></textarea>
<p class="help-block text-danger"></p>
</div>
</div>
<div class="clearfix"></div>
<div class="col-lg-12 text-center">
<div id="success"></div>
<button type="submit" value="submit" class="btn btn-xl">Send Message</button>
</div>
</form>
发送消息
将HTML表单连接到MySQL的PHP文件是:
<?PHP
$link = mysqli_connect('localhost', myUserName', 'myPassword', 'myDatabase');
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
$name = mysqli_real_escape_string($_POST['name'], $link);
$email = mysqli_real_escape_string($_POST['email'], $link);
$phone = mysqli_real_escape_string($_POST['phone'], $link);
$message = mysqli_real_escape_string($_POST['message'], $link);
$sql = "INSERT INTO 1stChoice_Contact (name, email, phone, message) VALUES ('$name', '$email', '$phone', '$message')";
if(mysqli_query($link, $sql)){
echo "Your message has been sent!";
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
if(empty($_POST['name']) ||
empty($_POST['email']) ||
empty($_POST['phone']) ||
empty($_POST['message']) ||
!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo "No arguments Provided!";
return false;
}
$name = strip_tags(htmlspecialchars($_POST['name']));
$email_address = strip_tags(htmlspecialchars($_POST['email']));
$phone = strip_tags(htmlspecialchars($_POST['phone']));
$message = strip_tags(htmlspecialchars($_POST['message']));
$to = 'sample@yourgmail.com';
$email_body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $phone\n\nMessage:\n$message";
$headers = "From: youremail@yourdomain.com\n";
$headers .= "Reply-To: $email_address";
mail($to,$email_subject,$email_body,$headers);
return true;
header('location:index.html');
?>
您似乎缺少开场白标签
另外,mysqli_real_escape_string第一个参数是连接,第二个参数是字符串,您没有选择数据库
我建议大家仔细阅读一下
您的代码在几个级别上失败您在连接时没有选择数据库使用方法POST提供表单缺少的开始标记我一直都有表单标记。我只是在复制代码粘贴到这里时错过了它。另外,我选择了DB,出于安全原因,我只是在这里发布时删除了代码。我所拥有的是:$link=mysqli_connect('localhost',myUserName','myPassword','myDatabase');我有表单开始标签,我在这里粘贴代码时没有复制它。我道歉。此外,我尝试切换参数,但仍然存在相同的问题。与数据库的通信在那里,但因为我可以看到分配给表的自动增量ID增加。但是,没有任何字符串(数据)添加到我的表中;并查看是否将值正确添加到查询或打印($\u POST);查看您的值是否正确提交。还要检查列类型,确保字符串的列类型为varchar。