Ana Sayfa / Genel / include() ve require()

include() ve require()

Server Side Includes (sunucu taraflı dosyaları koda çağırma- SSI)

Herhangi bir PHP dosyası içerisine sunucu tarafında çalıştırılmadan başka PHP dosyalarını ekleyebiliriz(çağırabiliriz). Bu işlem için iki genel fonksiyon olan include() ve require() kullanılır. Her iki fonksiyon da aslında aynı işi yapar. Tek farkları bir hata durumunda verdikleri tepkidir:

include() fonksiyonu bir uyarı oluşturur ancak kodlar çalıştırılmaya devam eder.

  • require() ise hata durumunda fatal error dediğimiz kritik bir hata uyarısı verir ve kodların çalıştırılması durur

Bu fonksiyonların asıl kullanım amaçları, önceden oluşturduğumuz hazır fonksiyonların, başlık bilgileri ve diğer bilgilerin yer aldığı sayfaların istediğimiz zaman ve istediğimiz sayfada kullanılabilmesidir.

Sunucu taraflı dosya çağrıları zamandan çok büyük tasarruf yapmamızı sağlar.  Mesela standart bir şablon oluşturup tüm siteyi sadece bir tek ya da daha fazla şablon dosyası içerisinde çalıştırabiliriz ya da bir dil dosyası aracılığı ile sitenin dilini tek hareketle değiştirebiliriz vs. gibi örnekleri çoğaltabiliriz. (sitenin menüsünü değiştirme,başlık, içerik vs. bir çok şey verilebilir örnek olarak)

 

 


PHP include() fonksiyonu

include() fonksiyonu yardımıyla önceden hazırlanmış bir dosyanın tamamını yeni kodlarımıza dahil edebiliriz. Bir hata olması durumunda fonksiyon bir uyarı oluşturur ancak kodlarımız çalışmaya devam eder. demiştik.

Örnek 1

Önceden hazırladığımız header.php isimli dosyayı include() fonksiyonu yardımıyla sayfamıza aktarma işlemi.

<html>
<body>

<?php include("header.php"); ?>
<h1>Web siteme hoşgeldiniz!</h1>
<p>vb. sayfa içeriği.</p>

</body>
</html>

Örnek 2

Aşağıda yer alan kodların sayfalarımızın hepsinde görünen bir menü olarak yer almasını istiyoruz diyelim.

<a href="/default.php">Ana Sayfa</a>
<a href="/dersler.php">Dersler</a>
<a href="/referanslar.php">Referanslar</a>
<a href="/ornekler.php">Örnekler</a>
<a href="/hakkimizda.php">Hakkımızda</a>
<a href="/iletisim.php">İletişim</a>

Yukarıda yer alan kodları menu.php ismiyle kaydettiğimizi düşünürsek:

<html>
<body>

<div class="m_menu">
<?php include("menu.php"); ?>
</div>

<h1>İnternet sitemize hoşgeldiniz.</h1>
<p>Yaptığımız işlerin…</p>

</body>
</html>

Üstte yer alan kodların olduğu bir sayfanın kaynağına tarayıcımızdan bakarsak aşağıdaki gibi bir kod görürüz:

<html>
<body>

<div class="m_menu">
<a href="/default.php">Ana Sayfa</a>
<a href="/dersler.php">Dersler</a>
<a href="/referanslar.php">Referanslar</a>
<a href="/ornekler.php">Örnekler</a>
<a href="/hakkimizda.php">Hakkımızda</a>
<a href="/iletisim.php">İletişim</a>
</div>

<h1>İnternet sitemize hoşgeldiniz.</h1>
<p>Yaptığımız işlerin…</p>

</body>
</html>


PHP require() Fonksiyonu

Bu fonksiyonunda include() ile aynı işi yaptığı tek farkının hata olması durumunda kodlarımızın çalışmasının durduğunu söylemiştik

Şimdi bu hatalar üzerinde duralım, buradan sonra ne demek istediğmi daha kolay anlayacaksınız.

include() fonksiyonu için hata örneği

<html>
<body>

<?php
include("olmayan_bir_dosya.php");
echo "Merhaba dünya!";
?>

</body>
</html>

Üstteki dosyamız test.php ismiyle kaydedilmiştir.Hata mesajıyla birlikte sonuç:

Warning:include(olmayan_bir_dosya.php) [function.include] :
failed to open stream:
No such file or directory in C:webbirbitbilgitest.php on line 5

Warning:include() [function.include] :
Failed opening ‘olmayan_bir_dosya.php’ for inclusion
(include_path=’.;C:php5pear’)
in C:webbirbitbilgitest.php on line 5

Merhaba dünya!

 

Sonuç olarak hata olmasına rağmen test.php isimli dosyamız çalıştırılmaya devam etmiştir.

 

require() fonksiyonu için hata örneği

Yukarıda yer alan örneğimizi bu seferde require ile deneyelim.

<html>
<body>

<?php
require("olmayan_bir_dosya.php");
echo "Merhaba dünya!";
?>

</body>
</html>

Hata mesajı:

Warning:require(olmayan_bir_dosya.php) [function.require] :
failed to open stream:
No such file or directory in C:webbirbitbilgitest.php on line 5

Fatal error:require() [function.require] :
Failed opening required ‘olmayan_bir_dosya.php’
(include_path=’.;C:php5pear’)
in C:webbirbitbilgitest.php on line 5

 

Açıkca görüldüğü ve anlaşıldığını düşünüyorum. Burada echo komutu çalıştırılmadı.

Tavsiye olarak require() fonksiyonunu kullanmanızı öneririm. Çünkü bir hata olduğunda istenmeyen şeyler ve bu hatadan dolayı yaptığınız tüm emeklerin boşa gitmesi kaçınılmaz olabilir. Bazı kötü niyetli kişiler bu hataları kullanarak sisteminize zarar verebilir daha da önemli tüm bilgileriniz istenmeyen kişilerin eline geçebilir.

harun Hakkında

Matematikçi...Bilgisayar Yüksek Mühendisi... Bir zamanlar Adli Bilişim uzmanı...

İlginizi Çekebilir

Port Tarama

Bu makalede port taramanın ne olduğuna değinip, farklı port tarama yöntemleri ve güvenlik açıklarını nasıl …

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir