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.