Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 收到来自我自己的垃圾邮件_Php_Email_Captcha - Fatal编程技术网

Php 收到来自我自己的垃圾邮件

Php 收到来自我自己的垃圾邮件,php,email,captcha,Php,Email,Captcha,我有一个网站,这是建立在正常的HTML和只有一个网页是在php,为生成电子邮件从联系我们的网页。 现在发生的事情是,我的联系人页面工作正常,但我每天早上3:10到3:12收到的电子邮件中都有相同的垃圾邮件条目“1” 例如: 名称:1 电子邮件:我自己的电子邮件地址(与发件人(我自己)的电子邮件地址相同) 公司:1 地址:1 这是我正在经历的主要问题。我使用验证码来防止垃圾邮件。 请帮助:请参阅我使用的以下代码: PHP电子邮件代码(示例form.PHP): if-else子句中存在逻辑错误:

我有一个网站,这是建立在正常的HTML和只有一个网页是在php,为生成电子邮件从联系我们的网页。 现在发生的事情是,我的联系人页面工作正常,但我每天早上3:10到3:12收到的电子邮件中都有相同的垃圾邮件条目“1” 例如:
名称:1
电子邮件:我自己的电子邮件地址(与发件人(我自己)的电子邮件地址相同)
公司:1
地址:1

这是我正在经历的主要问题。我使用验证码来防止垃圾邮件。 请帮助:请参阅我使用的以下代码: PHP电子邮件代码(示例form.PHP):



if-else子句中存在逻辑错误:

if (!empty($_REQUEST['captcha'])) {
    if (empty($_SESSION['captcha']) || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha']) {
        header('Location: /captchacode.html');
        exit();
    }
    unset($_SESSION['captcha']);
}
如果有人填写了验证码,您只需测试验证码是否正确。因此,如果有人在发送表单的同时将验证码留空,那么测试将通过,邮件将被发送。如果您将测试更改为以下内容,它应该可以工作:

if( empty($_REQUEST['captcha']) 
    || empty($_SESSION['captcha']) 
    || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha']) {
    // captcha not filled in, or captcha not correct.
}

如果您能够在垃圾邮件收件箱中看到邮件,则邮件代理的声誉较低。尝试在标头中添加发件人地址并进行检查

这个问题已经在前面回答过了。

OP并不是说他收到垃圾邮件收件箱中的邮件,请正确阅读问题。我检查了验证码条件,验证码工作正常……输入错误时,将重定向到错误页面,电子邮件不会发送。如果输入正确,则不会发送电子邮件是的,但如果未输入,则将通过测试。。。也许您的javascript正在检查是否发布了值,但您的PHP代码没有,而且我们都知道,javascript很容易被绕过。如果它没有输入,它没有传递结果,验证码要求输入值。如果没有输入任何内容,我就不会收到电子邮件。哥们。。。我不知道如何解释得更清楚。。。验证码依赖于javascript来进行第一次检查(不离开页面),PHP来检查验证码是否正确。但是你要做的是检查验证码是否正确,只有在输入了一些东西的情况下,这通常不会是一个问题,但是如果有人绕过JAVASCRIPT并将其数据直接发送到你的脚本,你的检查就会失败。。。
if (!empty($_REQUEST['captcha'])) {
    if (empty($_SESSION['captcha']) || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha']) {
        header('Location: /captchacode.html');
        exit();
    }
    unset($_SESSION['captcha']);
}
if( empty($_REQUEST['captcha']) 
    || empty($_SESSION['captcha']) 
    || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha']) {
    // captcha not filled in, or captcha not correct.
}