Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] include i <title>
Forum PHP.pl > Forum > Przedszkole
scretch
Witam party.gif

Mam sobie kod:

  1. <?
  2. $dozwolone = array('home', 'programy', 'gify');
  3.  
  4. if (isset($_GET['id']))
  5. {
  6.  $id = $_GET['id'];
  7.  
  8.  if (in_array($id, $dozwolone))
  9.  include($_GET['id'].'.php');
  10.  else
  11.  echo('Podana strona nie istnieje!<br><br>Prawdopodobnie wpisałes zły adres URL lub strona nie została jeszcze dodana d
    o spisu.<br><br>Powiadom o tym autora strony - scretch@tlen.pl'
    );
  12. } else
  13.  include ($dozwolone[0].'.php');
  14. ?>


Ten kod wczytuje do pliku index.php pliki zawarte w zmiennej dozwolone i tu pojawia się problem... bo plik index.php w meta ustawione ma np. <title>Scretch Team - extra jazda</title>. A jak przechodzę na stronę index.php?id=gify (choć plik gify.php ma ustawione Scretch Team - super gify) to tytuł strony się NIE zmienia i tu pojawia się pytanie jak zmodyfikować kod, aby tytuł się zmieniał wraz z znacznikiem <title> na wczytywanej stronie winksmiley.jpg
Ludvik
Najprościej zapisać tablicę z tytułami:
  1. <?php
  2. $titles = array('index' => 'extra jazda', 'gify' => 'super gify');
  3. ?>

I pomiędzy znacznikami <title> i </title> wstawić:
  1. <?php
  2. echo 'Scretch Team';
  3. if (isset($_GET['id'])) {
  4. echo isset($titles[$_GET['id']]) ? $titles[$_GET['id']] : '';
  5. }
  6. ?>

Pisałem z głowy, powinno jakoś działać.
scretch
nie zmienia się... pokazuje się tylko Scretch Team sad.gif
Ludvik
A upewniłeś się, że zmienna $titles jest dostępna w momencie wykonywania napisanych przeze mnie instrukcji? Jeżeli jest to widzę tylko dwie przyczyny:
1. Zmienna $_GET['id'] jest pusta.
2. Nie masz odpowiedniego tekstu w tablicy $titles.
U mnie wszystko działa. Wklej sobie od razu cały kod (z małą poprawką - dodałem separator " - ").

  1. <?php
  2. $titles = array('index' => 'extra jazda', 'gify' => 'super gify');
  3.  
  4. echo 'Scretch Team';
  5.  
  6. if (isset($_GET['id'])) {
  7. echo isset($titles[$_GET['id']]) ? ' - ' . $titles[$_GET['id']] : '';
  8. }
  9. ?>
scretch
  1. <?
  2. $titles = array('index' => 'extra jazda', 'gify' => 'super gify');
  3. $dozwolone = array('home', 'programy', 'gify');
  4.  
  5. if (isset($_GET['id']))
  6. {
  7.  $id = $_GET['id'];
  8.  
  9.  if (in_array($id, $dozwolone))
  10.  include($_GET['id'].'.php');
  11.  else
  12.  echo('Podana strona nie istnieje!<br><br>Prawdopodobnie wpisałes zły adres URL lub strona nie została jeszcze dodana do spisu.<br><br>Powiadom o tym autora strony - scretch@tlen.pl');
  13. } else
  14.  include ($dozwolone[0].'.php');
  15. ?>


tak ma wyglądać plik wczytywający?questionmark.gif


A ten kod:
  1. <?php
  2. $titles = array('index' => 'extra jazda', 'gify' => 'super gify');
  3.  
  4. echo 'Scretch Team';
  5.  
  6. if (isset($_GET['id'])) {
  7. echo isset($titles[$_GET['id']]) ? ' - ' . $titles[$_GET['id']] : '';
  8. }
  9. ?>


dać w każdym <title> czy tylko index.php questionmark.gif
Gość
W index.php...

Nie wiem co rozumiesz przez "każdy" <title>, skoro specyfikacja zezwala tylko na jeden taki element w zakresie znacznika <head>.
scretch
chodzi mi oto czy dać tylko w index.php w <title> czy też w gify.php ?
Ludvik
Myślałem, że wypisujesz znacznik title tylko w głównym pliku. Jak masz same znaczniki w dołączanych plikach, to ten skrypt nie ma sensu, lepiej na stałe wpisać.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.