反垃圾邮件安全问题php联系表格

时间:2018-11-10 09:33:23

标签: php contact-form spam

我有一个工作联系字段。尽管我使用的是标准的垃圾邮件防护工具,例如蜜罐等。但我几乎每天都会收到垃圾邮件。所以我想我可能会提出一个安全性问题。所以我添加了这个: 垃圾邮件问题:天空是哪种颜色? (小写) 现在,我只想在正确回答此问题的情况下发送表格,否则它将显示错误消息。但是它不再发送但仍显示成功消息。我究竟做错了什么? 我已经将此添加到发送序列中,然后才能正常工作:!empty($ _ POST ['spamprotection'])|| ($ _POST [“ spamprotection”] ='blau')|| //发送电子邮件。 如果(!empty($ _ POST ['spamprotection'])||($ _POST [“ spamprotection”] ='blau')|| mail($ to,$ subject,$ message,$ header)){     $ result = [“颜色” =>“绿色”,“ msg” =>“ Ich habe Ihre Mail erhalten und melde mich inKürze!”];     如果($ file_type){       $ result ['msg']。=“”;     } }其他{     $ result = [“ color” =>“ red”,“ msg” =>“ Nachricht konnte nicht gesendet werden。Bitte senden Sie mir Ihre Anfrage a bm-translations@email.de”]; }

1 个答案:

答案 0 :(得分:1)

您在if语句中的逻辑无效。

您需要将代码更改为此。

if (isset($_POST['spamprotection']) && $_POST["spamprotection"] == 'blau') {

    $result = ["color" => "green", "msg" => "Ich habe Ihre Mail erhalten und melde mich in Kürze!"];
    mail($to, $subject, $message, $header);

    if ($file_type) {

      $result['msg'] .= "";

    }

} else {

    $result = ["color" => "red", "msg" => "Nachricht konnte nicht gesendet werden. Bitte senden Sie mir Ihre Anfrage an bm-translations@email.de"];

}

关于平等:

$a = '5'; //This sets $a = 5(string);
$b = 5; //This sets $b = 5(int);
$a == $b;  //This checks to see if $a is equal to $b. Will return true.
$a === $b; //This is a strict comparison of $a & $b.  It checks to see if $a is equal to $b as well as the type.  Meaning $a(string) is equal to $b(int). Will return false.