Skocz do zawartości

Pytanie dot. dynamicznego <title>


joketown

Rekomendowane odpowiedzi

Hej,

Mam pewnie lamerski problem ;) Tzn nie wiem, gdzie robię błąd. Strona generuje dynamicznie podstrony, na każdej z nich chcę mieć inny <title> dostosowany do zawartości podstrony na której się znajduje. Problem polega na tym, że zmienna zawierająca dany tytuł, nie działa kiedy wrzucam ją pomiędzy tagi title, czyli np <?php $zmienna_tytulu ?>. Kiedy wstawię ten sam kod poniżej, w sekcji <body> jest ok, ale tam nie chce. Każda podstrona ma w urlu zmienną na zasadzie index.php?zmienna_tytulu=nazwa_strony, zamienioną poprzez modrewrite na domena.pl/nazwa_strony. I tak jak wspomniałem, wszystko jest ok, kiedy pobieram wartość zmmiennej w sekcji <body>, zaś w <title> niet..

Odnośnik do komentarza
Udostępnij na innych stronach

a gdzie masz echo, pint ?

<?php echo $zmienna_tytulu ?>

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Pewnie masz jakiś błąd w kodzie. Sprawdź czy w ogóle w tym miejscu kodu gdzie nasz echo $zmienna_tytulu; ta zmienna istnieje.

W ogóle to wklej najlepiej cały kod strony.

Tzn skoro nic się nie wyświetla, tzn, że wartości dla zmiennej nie ma. Zastanawia mnie tylko to, że po wklejeniu tego samego fragmentu odwołania się do zmiennej <?php echo $zmienna_tytulu; ?> w sekcji body, jest ok. Nie działa w sekcji <head>.

Kodu strony nie będę wklejał, bo poza powyższym odwołaniem i skryptem, który zamieszczę poniżej nie ma na niej innych skryptów. Przykład: Menu pobierane jest z bazy, następnie na każdej stronie sprawdzana jest wartość dla $zmienna_tytulu, która charakteryzuje daną podstronę z menu. Jeśli istnieje, przekazywana jest do przeglądarki dana strona, a więc:

switch ($zmienna_tytulu) {

case 'o-nas' :

require_once("nazwa.pliku");

break;

case 'kontakt' :

require_once("nazwa.pliku");

break;

case 'dowcip' :

require_once("nazwa.pliku");

break;

default :

require_once("nazwa.pliku");

break;

}

I wracając do problemu, zmienna ta zostaje dopisywana do url. W sekcji head nie mogę się do niej dobrać, w body jest ok..

Może da się to zrobić w jakiś inny sposób..

Odnośnik do komentarza
Udostępnij na innych stronach

Skoro to jest cały skrypt to faktycznie dziwna sprawa bo nie widzę w tym skrypcie aby zmiennej $zmienna_tytulu została przyporządkowana jakakolwiek wartość.......

ehh.. pisałem, ten skrypt sprawdza tylko, czy istnieje zmienna i jaką ma wartość, w zależności od wyniku uruchamia daną podstronę. Wartości zmiennej znajdują się w url, każda strona ma inny np.: klikając w link pierwszej zakładki menu, w url pojawia się np: index.php?zmienna_tytulu=strona_pierwsza. A więc zmienna wraz z wartością zostaje przekazana do url. Wtedy dopiero wspomniany skrypt sprawdza jej wartość i uruchamia przypisaną jej podstronę. Powtarzam po raz kolejny, wartość zmiennej jest odczytywana w sekcji body, w head nie. Zastanawiam się, że może to być problem, to rozwiązanie nawigacji i przejścia na kolejne podstrony poprzez menu, a jeśli tak, jak inaczej to rozwiązać?

Odnośnik do komentarza
Udostępnij na innych stronach

Zastanawia mnie tylko to, że po wklejeniu tego samego fragmentu odwołania się do zmiennej <?php echo $zmienna_tytulu; ?> w sekcji body, jest ok. Nie działa w sekcji <head>.
Jeśli tak się dzieje to odpowiedz jest następująca:

Kod skryptu jest analizowany liniowo i jeśli masz kod php pomieszany z HTMT, to cześć head jest nad częścią body wiec w części head ziemna $zmienna_tytulu nie ma wartości. Dopiero wartość zmiennej jest przypisywana dalej [czytaj niżej] -> zrobiłeś błąd w koncepcji kodu...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Kod skryptu jest analizowany liniowo i jeśli masz kod php pomieszany z HTMT, to cześć head jest nad częścią body wiec w części head ziemna $zmienna_tytulu nie ma wartości. Dopiero wartość zmiennej jest przypisywana dalej [czytaj niżej] -> zrobiłeś błąd w koncepcji kodu...

dokładnie tak jak napisał poprzednik. możesz też zrobić tak, że wstawisz ileśtam razy echo w kodzie,

żeby sprawdzić, czy rzeczywiście wykonuje się to, co myślisz, że się wykonuje, a nie inna część kodu,

choćby przez jakiś if, pustą zmienną itp. może wykonywać się zupełnie inna część kodu niż Ci się wydaje, czyli:

kod html lub php
<? echo('1 '.$zmienna_tytul); ?>
kod html lub php
<? echo('2 '.$zmienna_tytul); ?>
kod html lub php
<? echo('3 '.$zmienna_tytul); ?>
....

ps)

zapraszam do https://eaptek.net - katalog stron medycznych, farmacja, apteki, ciąża i poród i inne

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności