selamlar örneğin a.php ve b.php diye iki dosyam var a ya byi include ettim.local hosttan a ya gelince bye de gidiyor.burda bi sorun yok. fakat benim istediğim barowserde direk b.php yazdıgımda bu sayfaya gitmeyip bir hata mesajı vermesidir. yardımcı olursanız sevinirim. umarım iyi anlatabilmişimdir.
çok teşekkurler.
Kullandığın ftp programından b.php'ye sağ tıkla file permissions(dosya izinleri) tıkla 640 değerini girersen dışarıdan gelen isteklerde o sayfa çalışmaz ama sunucu içinde gelen isteklerde sorunsuz çalışır bu şekilde biraz daha pratik bir çözüm olur senin için.
Joomla kodlarını incelerken, beni sittin sene ne işe yarıo acaba diye düşündüren bi koda takılmıştım. Tam da senin istediğin işlevi gören. Joomlayla ilgilendiysen, doğrudan açılan dosyaların (index.php gibi) en başında
<?php
define ('JEXEC', 1);
şeklinde bir kod vardır. Joomlanın index sayfasına include edilmiş olan doğrudan değil de sistem tarafından çalıştırılması gereken dosyalara (misal includes/defines.php gibi) doğrudan girişi önlemek için o dosyalarda da;
<?php
defined ('JEXEC') or die('Restricted Acces');
aslında çok basit ama bir o kadar da faydalı bir kod vardı. Tam senin istediğin gibi, defines.php dosyası yani sana göre b.php, index.php içerisinde yani a.php içinde include edildiğinde sorun yok. JEXEC sabiti tanımlı olduğundan b.php'deki die komutu için false değeri döndürür ve sayfa sorunsuz açılır. Ancak a.php, b.php de include edilmediği için JEXEC sabitinin tanımı bulunamayacağından b.php'ye doğrudan girilmek istendiğinde die fonksiyonu true döndürür ve 'Restricted Access' ya da senin belirlediğin herhangi bir hata stringi döner.
Açıklamayı gereksiz bulabilirsin. Aslında amone'un anlattıklarının biraz daha kısaltılmış hali umarım faydalı olur.