Merhaba arkadaşlar iletişim formumdan kötü amaçlı olmasada spam mailler alıyorum.
Tam olarak şöyle:
* Site anlık yavaşladığı zaman ziyaretçi gönder buttonuna iki defa basınca bana mail iki defa düşüyor.
* Birde şuan hiç yapan olmadı ama ben denedim fark ettim. İletişim formunu doldurup yollayınca gonder.php sayfasına yönleniyor. O gonder.php sayfasını yenileyince ne kadar yenilersem o kadar mail üst üste geliyor.
Bunları engellemenin bir yolu var mı? Topalma - çıkarma veya captcha yöntemi dışında?
PHPMailler sınıfı kullanıyorum.
Bunun önüne geçmenin en iyi yolu captchadır. Ama captcha eklemek istemezseniz garantisi olmamakla birlikte şöyle bir yol izleyebilirsiniz.
form içerisine kontrol isilmli input hidden ekleyin ve değerini 0 yapın. Formu submit etmeden önce ise butonun onclick eventında js ile bu input hiddenın değerini 1 olarak güncelletin. ve php ile post verilerini aldığınız yerde $_POST['kontrol'] == '1' şeklinde bir if şartı yazarak kontrol değeri 1 ise mail göndertin. Böylece mouse ile gönder butonuna tıklamadan direk bot ile post edilirse mail gitmeyecektir. Bu yöntem piyasadaki basit botları engellesede birisi özellikle sitenize manuel bot bağlıyosa onun önüne geçmeyecektir.
Örnek kod:
<?php
if ($_POST['kontrol'] == '1')
{
//mail gönder
}
?>
<input type="hidden" name="kontrol" id="kontrol" value="0">
<input type="submit" value="Mesajı Gönder" onclick="$('#kontrol').val('1');">