çok aydınlatıcı oldu teşekkür ederim.
bunu tüm userlar aynı şekilde görecekse güvenilir bir yanı yok.
hayır birtek ben göreceğim diyorsanızda "şlskj3221kj12lk213" isimli klasörü zaten kimse bulamaz. sabitte olsa olur.
sen login kısmını ve sorgu kısımlarını sıkı tutarsan bu tarz şeylere gerek kalmayacaktır. hackleyecek adam IP den serverıda hackleyebilir. biz bir dönem hackleyemediğimiz sitelerin hostinglerinden host alıp servera sızıyorduk. yani sen mükemmel kusursuz bir sitede yapsan. sonuçta server açıgı diye birşey var. :)
tayfun beyin dediği gibi sorgu kısımlarını sıkı tutmak lazım.
@tayfunerbilen yok tayfun bey aşağıda daha detaylı anlattım. umarım anlatabilmişimdir. 2. filtre deki dizilişe ihtiyacım var
//JSON ARRAY'IMIZ
1: { grup: A, time: 19:50 }
2: { grup: B, time: 19:30 }
3: { grup: C, time: 19:32 }
4: { grup: B, time: 19:55 }
5: { grup: D, time: 19:49 }
6: { grup: E, time: 19:15 }
1 . Filtre zamana göre olursa İD ler şu şekilde diziliyor
// Bu zamana göre filtrelemede sorun yok.
6: { grup: E, time: 19:15 }
2: { grup: B, time: 19:30 }
3: { grup: C, time: 19:32 }
5: { grup: D, time: 19:49 }
1: { grup: A, time: 19:50 }
4: { grup: B, time: 19:55 }
2 . Filtrede ise istediğim şu; zamana göre sırala ama şu grup kuralına da uy!
Aynı gruptan diyelim ki (B) , 2 tane var. Ama biri saat olarak en sona denk geliyor. İşte o en sona kalmayacak. 1. B nin peşine yazılacak. Yani şöyle gözükecek. ve devamında diğer gruplarda da böyle düzen varsa onlara da uygulayacak
6: { grup: E, time: 19:15 }
2: { grup: B, time: 19:30 }
4: { grup: B, time: 19:55 } // bu normal "sort" işlemlerinde sona denk geliyor. bana burada B nin altında lazım
3: { grup: C, time: 19:32 }
5: { grup: D, time: 19:49 }
1: { grup: A, time: 19:50 }
neden iki panel kullanıyorsun ? adminin panelin şifresini user dan mı ayırmaya çalışıyorsun?
eğer önemsizse
mysql e access diye tablo eklersin.
hangi userların admin panele erişebileceğini oradan yönetirsin
sessionı da
$_SESSION["login"] = "true,false"; // 1. login olup olmadığı 2. admin panele erişimi olup olmadığı
bu şekilde süzer ona göre giriş çıkışı kontrol edebilirsin
acaba anlatamadım mı? yoksa yazının uzunluğumu sorun oldu.
aslında şu kombinasyon için izlemem gereken birkaç komut adı belirtseniz ben function u uyarlarım.
var people = [
{
data: {
id: "1",
family: "1",
grouptotal: "2",
groupname: "A1",
newtime: "2023-02-24 12:24:00",
},
data: {
id: "2",
family: "1",
grouptotal: "2",
groupname: "A1",
newtime: "2023-02-24 12:24:00",
}
}
];
burada diyelim önce saati ben kendi içinde sıraladım.
people[1] in yerini people[3] ün altına taşıyacagım.
nasıl bir array komutu kullanmalıyım ? yani data dizinini komple yer değiştirmeliyim.
function oluşturup çok kolay kullanılabilir.
const today = new Date("2019-01-01T00:00:00");
const yyyy = today.getFullYear();
let mm = today.getMonth() + 1;
let dd = today.getDate();
if (dd < 10) dd = '0' + dd;
if (mm < 10) mm = '0' + mm;
const formattedToday = dd + '/' + mm + '/' + yyyy;
console.log(formattedToday);
off yaa uyuyup uyanınca kendime geldim. yanlış komuta odaklanmışım
filter komutu sıralama için degil sort u kullanmalıymışım.
1 . sıralamayı yaptım ama ikinci sıralamayı yapamıyorum.
sıralamada grupname mevcutsa
zamanı en küçügü sıralaya koyup diğerlerini zaman sıralamasına göre kendi içinde altına ekleyip döngüye devama etmek istiyorum.
id: 1 time: 12:00
id: 2 time: 12:05
id: 3 groupname: A1 time: 12:25 **** bu kısım gibi
id: 6 groupname: A1 time: 12:29
id: 8 groupname: A1 time: 12:33
id: 4 time: 12:27
id: 5 time: 12:29
id: 7 time: 12:29
id: 9 time: 12:35
id: 10 groupname: B3 time: 12:33
id: 11 groupname: B3 time: 12:33
1 . function çalışıyor.
var newArray = people.sort(function (a, b) {
return a.data.entertime.localeCompare(b.data.entertime);
});
console.log(newArray);
});
bu database.php olsun
<?php
$username = "root"; // VERİ TABANI KULLANICI ADINIZ
$pass = "12345678"; // VERİ TABANI ŞİFRENİZ
$database = "yazarlar"; // HANGİ DATABASE YE BAĞLANMAK İSTİYORSANIZ ONUN ADI
try{
$db = new PDO("mysql:hosst=localhost; dbname=$database;",$username,$pass);
}catch (PDOException $e){
echo $e->getMessage();
};
Bu da bahsettigim ajax ile php üzerinden sorgu alabilen index.php dosyan olsun
<!doctype html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<!-- BOOTSTRAP -->
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
<title>Arama Motoru </title>
</head>
<body>
<div class="container mt-5">
<div class="row">
<div class="col-md-12 alert alert-primary text-center">
Yazar Bulma Platformu
</div>
</div>
<div class="row">
<div class="form-group">
<div class="col-md-12">
<label for="">Yazar Adı veya Soyadı Giriniz</label>
<input type="text" class="form-control yazar">
</div>
</div>
</div>
<!-- YAZARLAR BURADA LİSTELENECEK -->
<div class="row mt-3">
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Yazar Adı</th>
<th scope="col">Yazar Soyadı</th>
</tr>
</thead>
<tbody id="yazarListele">
</tbody>
</table>
</div>
</div>
<!-- JQUERY -->
<script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk="
crossorigin="anonymous"></script>
<script>
$(".yazar").keyup(function () {
var kelime = $(this).val();
if (kelime == ""){
document.getElementById("yazarListele").innerHTML = "";
}else{
$.ajax({
url: "islem.php",
type: "POST",
data: {
kelime: kelime
},
success: function (e) {
var data = JSON.parse(e);
var element = "";
document.getElementById("yazarListele").innerHTML = "";
data.forEach(function (item) {
element += "<tr>";
element += "<td>" + item.yazarno + "</td>";
element += "<td>" + item.yazarad + "</td>";
element += "<td>" + item.yazarsoyad + "</td>";
element += "</tr>";
});
document.getElementById("yazarListele").innerHTML = element;
}
});
}
});
</script>
</body>
</html>
buda bilgicek.php dosyan olsun
<?php
require_once 'database.php';
if (isset($_POST['kelime'])){
$data = $_POST['kelime'];
$yazarlar = $db->prepare("SELECT * FROM yazar WHERE yazarad LIKE :kelime OR yazarsoyad LIKE :kelime ");
$yazarlar->execute(array(
":kelime" => '%'.$data.'%'
));
$yazar_cek = $yazarlar->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($yazar_cek);
}
?>
şimdi sen bu bilgiler eşliğinde önce kendi database ine göre bunu uyarla basit birkaç veriyi süz.
ondan sonra diğer verileri nasıl kullanman gerektiğini anlayacaksın.
usb dongle olarak geçiyor.
normal usb bellek gibi değil. tek taraflı mifare tarzı şifreli byte byte bir çipe yazılıyor.
o şifre olmadan okunamadığı için de kopyalanamıyor.
zamanında kırmaya çalıştığımda bazı grupların belli versiyonları kırdığını okumuştum. ama bugün için bir bilgim yok.
eğer karşı klasöre erişebiliyorsan
klasör içinde .htaccess dosyası oluşturup içine
Header set Access-Control-Allow-Origin "*"
yazman yeterli. exploit açıgına sebep olabilir onun için * yerine tam yol belirmek daha güvenli olabilir. araştırmak lazım.