v2.5.2
Giriş yap

Php İle Her Sayfaya Farklı Başlık

ynscnr55
1,081 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Merhabalar PHP ile kodlanmış bir web sitem var ve sabit title verisi kullanılıyor. Sayfa değiştikçe başlığında değişmesini istiyorum. Örneğin Bilgi Bankası sayfasına girildiğinde Başlıkta Bilgi Bankası ve site title yazacak. Nasıl olur bir fikriniz var mı ?

ebykdrms
962 gün önce

Merhaba. Dosya yapınızı bilmiyorum. Sayfaların uzantısı .php mi yoksa .html mi? Sayfa yönlendirmeleri nasıl yapılmış? Projeyi görmeden net cevap vermek zor.
Varsayımsal bir örnek üzerinden gidelim. Diyelim ki kök klasörünüzde şöyle bir dosyalama yapılmış:

  • index.php (anasayfanız)
  • hakkimizda.php
  • iletisim.php
  • template klasöründe: head.php, foot.php
  • styles klasöründe: anasayfa.css, hakkimizda.css, iletisim.css
  • scripts klasöründe: jquery.min.js, anasayfa.js, hakkimizda.js, iletisim.js
    Tüm sayfalarda sabit title kullanıldığına göre tahmin ediyorum ki tüm sitenin tüm sayfaları şöyle kurgulanmış:
    Örneğin hakkimizda.php:
    <?php include("template/head.php"); ?>
    <link rel="stylesheet" href="styles/hakkimizda.css" />
    <h1>Hakkımızda Sayfası</h1>
    <p>Hakkımızda sayfasının içeriği</p>
    <script src="scripts/jquery.min.js"></script>
    <script src="scripts/hakkimizda.js"></script>
    <?php include("template/foot.php"); ?>
    

    Yani her sayfa önce head.php dosyasını include ediyor. Sonra kendi içeriğini bulunduruyor. Sonra da foot.php dosyasını include ediyor.
    Haliyle aynı head.php dosyası her sayfada aynı şekilde göründüğünden, <title></title> da her sayfada aynı oluyor.
    template/head.php:

    <html>
      <head>
          <title>Site Başlığı</title>
      </head>
      <body>
          <section id="contentPlaceHolder">
    

    template/foot.php:

          </section>
      </body>
    </html>
    

    Tabi bu sıralamada hakkimizda.php dosyasının içeriği head.php dosyasının içeriğinden sonra geldiği için hakkimizda.php dosyasında oluşturacağınız bir değişkenle head.php dosyasına etki edemiyorsunuz.
    Bu sorunu aşmak için kök dizininizde controller adında bir klasör oluşturun ve içine sayfalarınızla aynı isimde php dosyaları oluşturun:

  • controller
    • anasayfa.php (index.php'nin controller'ı)
    • hakkimizda.php
    • iletisim.php

Ve hakkimizda.php sayfanızın içeriğini şu şekilde güncelleyin:

<?php include("controller/hakkimizda.php"); ?>
<?php include("template/head.php"); ?>
<link rel="stylesheet" href="styles/hakkimizda.css" />
<h1>Hakkımızda Sayfası</h1>
<p>Hakkımızda sayfasının içeriği</p>
<script src="scripts/jquery.min.js"></script>
<script src="scripts/hakkimizda.js"></script>
<?php include("template/foot.php"); ?>

Sayfanızın başına controller/hakkimizda.php dosyasını include etmiş oldunuz. Bu controller dosyası sayfanın en başında çağırıldığı için burada oluşturacağınız değişkenleri template/head.php dosyanızdan da okuyabileceksiniz. Mesela controller'ınızın içine şunları yazın:
controller/hakkimizda.php

<?php
    $pageTitle = "Hakkımızda Sayfası";

Sonra da template/head.php dosyanızdaki <title> alanını güncelleyin:

<html>
    <head>
        <title><?=(isset($pageTitle) ? $pageTitle : "Site Başlığı")?></title>
    </head>
    <body>
        <section id="contentPlaceHolder">

Yani demiş oldunuz ki: Eğer $pageTitle adında bir değişken varsa buraya onu yaz. Yoksa "Site Başlığı" yaz.