PHP垃圾邮件过滤器的想法不起作用,但逻辑是健全的

PHP垃圾邮件过滤器的想法不起作用,但逻辑是健全的,php,post,logic,Php,Post,Logic,所以我运行了一个基于kusaba imageboards的chan 我收到了大量的垃圾邮件。垃圾邮件来自于运行脚本的人,他们甚至绕过了验证码系统。有时它包含文本,通常只是一个带有图像的新线程。我不是每32分钟就禁止一次,而是在尝试一件新的事情:如果一张图片上有一条消息,它应该看到消息是否是空白的。如果消息为空,则退出时显示错误代码(因此不过帐) 我写的代码在这里:` if isset($_POST['message']) && isset($_FILES['imagefile']

所以我运行了一个基于kusaba imageboards的chan

我收到了大量的垃圾邮件。垃圾邮件来自于运行脚本的人,他们甚至绕过了验证码系统。有时它包含文本,通常只是一个带有图像的新线程。我不是每32分钟就禁止一次,而是在尝试一件新的事情:如果一张图片上有一条消息,它应该看到消息是否是空白的。如果消息为空,则退出时显示错误代码(因此不过帐)

我写的代码在这里:`

if isset($_POST['message']) && isset($_FILES['imagefile']) {
        if ($_FILES['imagefile'] != NULL && $_FILES['message'] == NULL) {
            exitWithErrorPage('Please enter some text with your image to prevent spam abuse.');
    }
}
出于某种原因,我会出现以下错误: 解析错误:语法错误,意外的T_ISSET,在第106行的/home/content/61/11420661/html/board.php中应为“(”,这是一个语法错误:

if isset($_POST['message']) && isset($_FILES['imagefile'])
应该是

if (isset($_POST['message']) && isset($_FILES['imagefile']))

在第一个
if
语句周围缺少一组括号

if(isset($_POST['message']) && isset($_FILES['imagefile'])) {
  ^                                                       ^
您缺少(在if之后)和结束的一个。 试试这个:

if (isset($_POST['message']) && isset($_FILES['imagefile'])) {
        if ($_FILES['imagefile'] != NULL && $_FILES['message'] == NULL) {
            exitWithErrorPage('Please enter some text with your image to prevent spam abuse.');
    }
}

if
缺少括号:if(…){…}.BTW,错误消息非常明确:“unexpected ISSET,expecting(”…打击垃圾邮件的一个好方法是在表单中使用一个隐藏字段。人类看不到它,但垃圾邮件机器人会看到它,他们会经常为它输入一个值。只要在你的PostVar中检查一个值,如果存在,你就得到了垃圾邮件。例如:感谢所有发布者。它现在正在工作。做一些收尾工作,这样它只会对你产生影响cts新的线程,而不是回复。哦,孩子。