我是一名业余网页设计师,我在stackoverflow.com和其他网站上搜索过并找到了很多针对此问题的修复程序,但是没有一个有效(可能是因为我错误地实现了它们).我希望有更多知识的人可以帮我解决一个简单的问题,或者告诉我如何实现我发现的一个修复程序.
问题:我在我的公司网站上有一个非常简单的php联系表格.它已经运作了很多年,但在上周被黑了.我现在每天收到数百份没有评论的联系表格提交,他们只有(显然是有效的)电子邮件地址,以及名称字段中的一串字符(如"58ee8b52eef46").
我已经尝试了几种技术来防止这种垃圾邮件,它们要么破坏我的PHP表单,要么它们不会阻止垃圾邮件.如果可能的话,我想要一个不需要Captcha失真文本测试的解决方案,并且不需要填写表单的所有字段.
这是我的完整PHP代码:
<?php
if(isset($_POST['email'])) {
$email_to = "myemail@example.com";
$email_subject = "website form submission";
function died($error) {
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}
if (!isset($_POST['name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['comments'])) {
died('We are sorry, but there appears to be a problem with the form …Run Code Online (Sandbox Code Playgroud)