burada cok guzel bır orneg var madem ogrenmen ıcın verıldı buradan ogrenebılırsın hazır kodları yazmıycam
https://www.w3schools.com/css/tryit.asp?filename=trycss_sel_element_tilde
log dosyaları ıle ne yapıyor bu botlar tespıt edıp engelleyebılırsın mısal sıteye dedıgın gıbı gızlı lınk koy ve o lınke gıren tum ıplerı engelle
ama dıkkat et googleyıde banlama :)
gelsıtırdıkce paylasırım bıraz hızlı yazdım duzensız olabılır herkes yakaladıgı ipleri paylasırsa guzel bır verı tabanı olustururuz
evet kesınlıkle angular vue vs ıle node js alt yapısı kullanarak yapmalısın ama öğrenmesı kavraması zaman alır şahsen benım halen gozum kesmedı ogrenmek yaşlılıktan sanırım
ÖNCELİKLE SUNUCUNUN LOGLARINA BAKARAK BU htacess kodlarını olusturdum kendınıze gore ekleme cıkarma yapabılırsınız.
buradaki amaç
xx.com/wp-login yazan bot veya şahış kullanıcıyı hop.php sayfasına yonlendırıyorum.
RewriteRule ^wp-login$ hop.php [L,NC]
RewriteRule ^wp-loginx$ hop.php [L,NC]
RewriteRule ^wp-login.php$ hop.php [L,NC]
RewriteRule ^administrator/$ hop.php [L,NC]
RewriteRule ^administrator$ hop.php [L,NC]
RewriteRule ^admin$ hop.php [L,NC]
RewriteRule ^admin/$ hop.php [L,NC]
RewriteRule ^wp-admin$ hop.php [L,NC]
hop.php içeriği
$ip = GetIP(); // $ip=$_SERVER['REMOTE_ADDR']; şeklindede yapabılırsınız
$ch = curl_init('http://ip-api.com/json/'.$ip.''); // ip bilgilerini sorgulatıyorum
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
curl_close($ch);
$api_result = json_decode($json, true);
$isp=$api_result['isp'];
$encode=json_encode($api_result);
// ip adresi sql de varmı dıye sorgulatıyorum kı zaten giremıyorlar sıteye ama olsun
//belırlı ip leri engelleme dıyebılırım dıye sorgulattım
$bak=$db->prepare("SELECT * FROM ip_engelle WHERE ip=?");
$bak->execute([$ip]);
$say=$bak->execute();
$row=$bak->FETCH(PDO::FETCH_ASSOC);
//IP ADRESINI ISP VE DIGER GEREKLI BILGILER ILE VERI TABANINA EKLIYOR VE BANLIYORUM
if($row['ip']!=$ip){
$tur="robot";
$banla=$db->prepare("INSERT INTO ip_engelle (ip , tur, isp, full) VALUES (?,?,?,?)");
$banla->execute([$ip,$tur,$isp,$encode]);
}
bunuda sitenın en ustune koyuyorum ve sorgulatıyorum sısteme gırıs yapan ıplerı
$ipengelle=$db->prepare("SELECT * FROM ip_engelle");
$ipengelle->execute();
while($ipler = $ipengelle->FETCH(PDO::FETCH_ASSOC)){
$ipadres[]=$ipler['ip'];
}
$kimlik = GetIP();
foreach($ipadres as $ban){
//IP YASAKLAR ICINDE ISE GOOGLEYE YONLENDIRIYORUM
if($ban == $kimlik){
header('Location: http://www.google.com/');
exit();
}}
tabıkıde son yakaladıklarımıda paylasayım
kodları temıze cekıp paylasıcam boylece hep beraber gelıstırırız

https://www.verot.net/php_class_upload.htm?lang=en-GB
ile yap ugrasma
php & socket.io ılede yapabılrısın
https://www.youtube.com/watch?v=dM_Afb2zNho&ab_channel=PROTOTURK
public function getData($id){
$query = $this->db->prepare("SELECT * FROM category WHERE id = ?");
$query->execute([$id]); ---> sanırım boyle olması gerekiyor
return $query->fetchAll();
}
sorun surada once verı tabanından sılıyorsun sonra donguye sıldırecek bır sey kalmıyor.
o nedendendırkı once dosyaları sıldıreceksın sonra verı tabanını