İzinsiz İşlem Tespit Edildi.
Merhaba arkadaşlar. Admin paneline giriş yapmak istediğimde izinsiz işlem tespit edildi hatası alıyorum.
if (isset($_SESSION["guvenlik"]["kullanici_giris"]) == "") {
exit("izinsiz işlem tespit edildi.");
}
hata veren kodlar burada. kodları silince de sayfaya tekrar döngü atıyor.
isset()
fonksiyonu true veya false döner ve sadece değişkenin varlığını ve varsa değerinin null olup olmadığını kontrol eder.
Ayrıca ""
ifadesi de if içinde false kabul edilir. Çünkü ""
ifadesi PHP tarafından 0 elemanlı bir dizi olarak algılanır. Zaten elemanı olmayan bir array de PHP'de if içinde false kabul edilir.
Kodunuzu, yorumlayıcının anladığı şekilde adım adım bakacak olursak,
$_SESSION["guvenlik"]["kullanici_giris"]
değişkeninde null haricinde bir değer varsa:
if (isset($_SESSION["guvenlik"]["kullanici_giris"]) == "") { exit("izinsiz işlem tespit edildi."); }
if(true == "") { exit("izinsiz işlem tespit edildi."); }
if(true == false) { exit("izinsiz işlem tespit edildi."); }
if(false) { exit("izinsiz işlem tespit edildi."); }
- koşul sağlanmadığı için if bloğu atlandı.
Veya $_SESSION["guvenlik"]["kullanici_giris"]
değişkeninde null haricinde bir yoksa veya bu değişken hiç oluşturulmamışsa:
if (isset($_SESSION["guvenlik"]["kullanici_giris"]) == "") { exit("izinsiz işlem tespit edildi."); }
if(false == "") { exit("izinsiz işlem tespit edildi."); }
if(false == false) { exit("izinsiz işlem tespit edildi."); }
if(true) { exit("izinsiz işlem tespit edildi."); }
- koşul sağlandığı için if bloğuna girildi ve
exit
ile yorumlama durduruldu.
Yani aslında kodlar istediğiniz işi yapıyor gibi görünüyor. Büyük ihtimalle siz bi'yerlerde $_SESSION["guvenlik"]["kullanici_giris"]
değişkenine "" değeri atıyorsunuz. Yani session'ı oluşturuyorsunuz ama içine "" değeri atıyorsunuz. isset()
fonksiyonu "" değeri de olsa bu durumda true
döner. Yani isset()
e göre değişken oluşturulmuştur ve değeri de sonuçta değer null
değildir.
Eğer tek sorun buradaysa büyük ihtimalle paylaştığınız kodun yerine şunu yazarsanız sorun ortadan kalkacaktır:
// session hiç oluşturulmamışsa durdur. Oluşturulmuş ama değeri "" ise yine durdur:
if (!isset($_SESSION["guvenlik"]["kullanici_giris"])) exit("izinsiz işlem tespit edildi.");
if ($_SESSION["guvenlik"]["kullanici_giris"]=="") exit("izinsiz işlem tespit edildi.");