hocam bunun bir çok yolu var, seç beğen al;
1. yol :
dosyalar.php içinde include yapman önce $dosyaphp = true; koyarsın, dosya.php nin içinde en üst alana da
if(!$dosyaphp){
die("direkt ulasma izni yok");
}koydun mu uyarı verir. ne yapmış olduk? ana dosyada bir adet true değeri tanımladık, alt dosyada onu kontrol ettik.
2. yol : get_included_files() fonksiyonunu kullanmak. bu fonksiyon php dosyasının içine dahil edilmiş dosyaları bildirir.
bu kodları dosya.php nin en üstüne koyarsın.
if(count(get_included_files()) == 1 ){
die("direkt ulasma izni yok");
}fakat bunun kötü bir yanı senin include ettiğin dosyanın içine başka bir dosya include ediyorsan çalışmaz.
3. yol : $_SERVER['PHP_SELF'] ile adresi ve dosya adını alırız, direkt ulaşılırsa hata verdirtiriz;
if($_SERVER['PHP_SELF'] == "dosya.php"){
die("direkt ulasma izni yok");
}yalnız dosya.php iç klasörlerdeyse klasör adını da yazman lazım misal "include/dosya.php" gibi.
4. yol : yok ben klasör adını yazmaya üşenirim diyorsan
$phpsayfa_bilgi = explode('/', $_SERVER['SCRIPT_FILENAME']);
$phpsayfa = $phpsayfa_bilgi[count($phpsayfa_bilgi)-1];
if($phpsayfa == "dosya.php"){
die("direkt ulasma izni yok");
}
gibi bir kaç taneden daha fazla yolu var. bunlardan birisi işini görür diye düşünüyorum.