
Żeby uniknąć spamu zastosowałem mechanizm ReCaptcha. Ręcznie testowałem i działa IMO jak należy, jednak w dalszym ciągu przychodzi mi SPAM na maila. Nie wiem, czy to ktoś ręcznie wprowadza do formularza, czy może jakaś luka w skrypcie jest że boty potrafią wysłać maila omijając ReCaptchę.
Załączam kod:
<?php { echo '<form action="/kontakt/" method="post"> <table class="kontakt"> <tr> <td class="left">Temat wiadomości:</td> <td><input type="text" name="temat"></td> </tr> <tr> <td class="left">Treść wiadomości:</td> <td><textarea name="tresc" rows="6"></textarea></td> </tr> <tr> <td class="left">Zwrotny adres e-mail:</td> <td><input type="text" name="mail"'; { $id = $_SESSION['user_id']; $sql = "SELECT `mail` FROM `users` WHERE `id` = '$id'"; } echo '"></td> </tr>'; { echo '<tr> <td class="left">Captcha:</td> <td>'; require_once('script/recaptchalib.php'); $publickey = "[tu jest mój klucz]"; echo '</td> </tr>'; } echo '<tr> <td></td> <td style="text-align: center;"> <input type="submit" value="Wyślij wiadomość" name="submit"> </td> </tr> </table> </form>'; } else { require_once('script/recaptchalib.php'); $privatekey = "[tu jest mój klucz]"; $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if (!$resp->is_valid) { echo '<script type="text/javascript"> alert("Captcha nie została wprowadzona poprawnie. Wróć i spróbuj ponownie."); history.go(-1); </script>'; } else { $mail = $_POST['mail']; $title = $_POST['temat']; $headers = 'From: Mój mail <mail@mail.pl>' . PHP_EOL . 'Reply-To: '. $mail . PHP_EOL . $sql = "SELECT `tresc` FROM `config` WHERE `nazwa` = 'e-mail'"; echo '<div class="register"><b>Twoja wiadomość została wysłana.</b><br> Postaramy się na nią odpowiedzieć jak najszybciej ;)</div>'; } } ?>
Czy z tym skryptem wg Was wszystko jest ok? Czy może ReCaptcha została złamana i mam coś innego przeciw botom zastosować?
Pozdrawiam,