Arama butonu
Bu konudaki kullanıcılar: 1 misafir
3
Cevap
610
Tıklama
0
Öne Çıkarma
Aynı Kullanıcının Tekrar Form verisi girmesinin ip ye göre engellenmesi
F
7 yıl
Er
Konu Sahibi

Merhaba,
Aynı kullanıcıların sürekli aynı verileri veri tabanına girmesini "ip" bilgisine göre nasıl engelleyebiliriz. REcaptca bulunması ve onay mekanizmasının olması da işin can sıkıcı olmasını engellemiyor maalesef. Ekleme kodu aşağıda tabi öncesinden öngörülmediği için "ip" çeken bir kod içerikte yok:

$kategori = $_POST['kategori'];
$ad = $_POST['ad'];
$adres = $_POST['adres'];
$tel = $_POST['tel'];
$eposta = $_POST['eposta'];
if(empty($kategori)){
echo("*Lütfen Tüm Alanları Doldurun");
}elseif(empty($ad)){
echo("<b>ADI YAZMADINIZ. LÜTFEN GERİ DÖNÜP DOLDURUNUZ.</b>");
}elseif(empty($adres)){
echo("<b>ADRESİ YAZMADINIZ. LÜTFEN GERİ DÖNÜP DOLDURUNUZ.</b>");
}elseif(empty($tel)){
echo("<b>TELEFONU YAZMADINIZ. LÜTFEN GERİ DÖNÜP DOLDURUNUZ.</b>");
}elseif(empty($eposta)){
echo("<b>E-POSTANIZI YAZMADINIZ. LÜTFEN GERİ DÖNÜP DOLDURUNUZ.</b>");
}else{
include "baglanti.php";
@$sql = "insert into tablo (kategori, ad, adres, tel, eposta) values ('$kategori', '$ad', '$adres', '$tel', '$eposta')";
@$kayit = mysql_query($sql);
}
if (isset ($kayit)){
echo "TEBRİKLER! Kaydınız alındı. ";
}
else {
echo "";
}

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



V
7 yıl
Onbaşı

genelde email adresinin aynı olup olmadığı kontrol edilir, ama siz illa ip adresiyle kontrol etmek istiyorsanız tablonuzda ekstradan bir ip adresi field'ı oluşturabilirsiniz. bu ip adresi fieldini unique olarak işaretleyin.

sql kodunuz;

$sql = "insert into tablo (kategori, ad, adres, tel, eposta) values ('$kategori', '$ad', '$adres', '$tel', '$eposta','{$_SERVER['REMOTE_ADDR']}')";

şeklinde değişecek..


ayrıca şuanki kodunuz sql injection'a açık durumda, onu bir şekilde kapatmanızı tavsiye ederim, bunun için en kısa yol;
include "baglanti.php";
satırını en üste taşıyıp mysql_real_escape_string fonksiyonunu kullanmanız.

$kategori = $_POST['kategori'];

yerine

$kategori = mysql_real_escape_string($_POST['kategori']);

aynısı diğerleri için de geçerli..



F
7 yıl
Er
Konu Sahibi

Paylaşımınız için teşekkürler. Dediğiniz gibi ip ye göre çözüm biraz uzun olabilir. hali hazırda e-posta sütünü bulunduğundan böyl bir çözüm ile lgili bir kod parçası paylaşabilir misiniz? Şimdiden teşekkürler.



V
7 yıl
Onbaşı

rica ederim,

o zaman; phpmyadmin'den email alanını unique/tekil olarak değiştirirseniz yeterli. eğer "aynı email adresiyle kayıtlı bir üye zaten var" şeklinde bir mesaj göstermek isterseniz;

if (isset ($kayit)){
echo "TEBRİKLER! Kaydınız alındı. ";
}
else {
echo "";
}


kodunuzu bu şekilde değiştirebilirsiniz.


if (isset ($kayit)){
echo "TEBRİKLER! Kaydınız alındı. ";
} elseif (mysql_errorno()==1062) {
echo "Aynı e-mail adresiyle kayıtlı bir üye zaten var. ";
} else {
echo "";
}





< Bu mesaj bu kişi tarafından değiştirildi vona70 -- 2 Nisan 2018; 23:17:37 >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.