【发布时间】:2022-06-26 03:52:47
【问题描述】:
我正在创建一个使用引导 HTML 框架和 PHP 来验证表单字段并将数据发送到电子邮件的联系表单。我刚刚问了一个问题,为什么当我点击提交按钮时会出现 404 错误,通过更改我的操作和方法元素周围的一些错误引号来解决这个问题。在更改了这些并修复了几个 PHP 代码错误之后,我的表单现在将我带到按钮提交时的空白屏幕(地址栏显示为 myexamplewebsite.com/php/contact-form.php),我已经尝试找到解决这个问题的方法,因为它看起来很常见但未能成功解决我自己的问题。有关更多信息,我通过 NameCheap 托管我的网站,并一直在使用 cPanel 上传所有网络资产。我目前将我的索引文件保存为 HTML,但在观看了许多 youtube 视频后,我想知道是否需要将其更改为 .php 扩展名才能使表单正常工作。最后,在我发布我的代码之前,我还没有尝试将 invalid_class_name 添加到我的代码中。
我的 HTML:
<form name="contact_form" action="php/contact-form.php" method="POST" class="row g-4">
<div class="col-md-6">
<label for="first-name" class="form-label">First Name</label>
<input type="text" name="first-name" class="form-control" id="first-name" placeholder="John" required>
</div>
<div class="col-md-6">
<label for="last-name" class="form-label">Last Name</label>
<input type="text" name="last-name" class="form-control" id="last-name" placeholder="Smith" required>
</div>
<div class="col-md-6">
<label for="email" class="form-label">Email</label>
<input type="email" name="email" class="form-control" id="email-address" required>
</div>
<div class="col-md-12">
<label for="notes" class="form-label">Notes</label>
<textarea class="form-control" name="notes" id="notes" rows="4" placeholder="Include any additional information"></textarea>
</div>
<div class="col-12">
<button id="btnsubmit" type="submit" name="btnsubmit" class="pcs-cta-button form-submit-button">Submit</button>
</div>
</form>
我的 PHP:
<?php
$message_sent = false;
if (isset($_POST['email']) && $_POST['email'] != '') {
if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) ){
//submit the form
$userFirstName = $_POST['first-name'];
$userLastName = $_POST['last-name'];
$userEmail = $_POST['email'];
$message = $_POST['notes'];
$messageSubject = "New Concrete Job";
$to = "myemail@gmail.com";
$body = "";
$body .= "From: ".$userFirstName." ".$userLastName. "\r\n";
$body .= "Email: ".$userEmail. "\r\n";
$body .= "Notes: ".$message. "\r\n";
mail($to,$messageSubject, $body);
$message_sent = true;
}
else {
$invalid_class_name = "form-invalid";
}
}
?>
如果有人对让表单与 NameCheap/cPanel 一起使用有任何提示,我将不胜感激!
【问题讨论】:
-
如果文件中有 PHP 代码,那么是的,扩展名应该是
.php。是否所有验证都在同一页面上,并且表单是否应该发布给自己?我的猜测是您的action中的路径不正确,请尝试完全删除该操作 if 表单应该发布给自己。或者你的 PHP 中有语法错误,你应该检查 php 错误日志。 -
你好 Andrew,基本上我的表单包含在我的 index.html 文件中。在该表单的操作中,我有我的 /php/contact-form.php,这是存储上述 PHP 代码的位置。在我从中获取的示例中,他们将带有表单的文件保存为 PHP 扩展文件,并且有额外的 PHP 代码在消息发送时发送确认消息。我可以将我的索引文件保留为 HTML 扩展名吗?或者我应该使用 PHP 扩展名重命名它并告诉我的网站托管寻找 .PHP 版本?
-
我不确定你的整个
index.html文件是什么样的,但如果里面有 PHP,你会想要将扩展名更改为.php并告诉网站寻找.php版本(您可以在.htaccess文件中执行此操作)。请添加更多信息和上下文。你得到php错误吗?电子邮件是否发送?发送电子邮件后,您是否尝试重定向回index.html? -
问题:现在您提交数据时出现了一个空白页 --- 但是您收到邮件了吗?
-
如你所愿,只需将
if ($message_sent) { echo "Thank you for your information"; }这一行添加到你的php文件末尾