Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Inne meta tagi na każdej podstronie serwisu - mam kod, proszę o pomoc w jego zmianie
Forum PHP.pl > Forum > Przedszkole
catalog
Bardzo proszę o pomoc.
Na stronie udało mi się zrobić, aby każda podstrona miała inne <title>, natomiast chciałbym zrobić to samo również z:
<meta name="Description" content="....." />
<meta name="Keywords" content="....." />

W jaki sposób mogę to ustawić, na przykład stosując poniższy kod, dzięki któremu mogę mieć inny <title>?
Jestem zupełnym laikiem, ledwie udało mi się na stronie dopasować ten poniższy kod.
Czy mógłby mi ktoś pokazać w jaki sposób zastosować inne Description i Keywords na innych podstronach serwisu?


1. Plik index.php:

a.) w <head> mam to:

  1. <title><!--TYTUL-->Główna nazwa serwisu</title>


b.) plus poniżej mam to:

  1. <?
  2. $title = ((defined('TITLE')) ? ' - '.TITLE : '');
  3. $html = ob_get_clean();
  4. echo preg_replace('#<!--TYTUL-->#', $title, $html);
  5. ?>



2. Plik podstrony serwisu:

  1. <? define('TITLE', 'Tytuł podstrony serwisu'); ?>



Mam nadzieję, że wszystko dobrze wyjaśniłem.
Z góry bardzo, bardzo dziękuję za pomoc smile.gif
Xelah
To jest w 100% twój autorki kod, czy korzystasz z jakiegoś gotowca? Bo jeśli to twój kod to chyba zabierasz się za to od złej strony...
catalog
nie, to nie jest mój kod. Pochodzi z Internetu, ze strony z kursem.
Dlatego tak, jak mówie, ja w ogóle na .php nie znam się, ale strona ma bardzo dużo podstron i kilka plików przez to jest includowanych.

Natomiast to co podałem w pierwszym poście sprawdza się bardzo dobrze, jeżeli chodzi o tytuły stron.
jeżeli są lepsze rozwiązania to chętnie bym z nich skorzystał, ale to był jedyny kurs z którego udało mi się - krok po kroku - utworzyć inne <title> dla każdej podstrony serwisu.

Jeżeli ktoś ma na tyle cierpliwości, aby pokazać mi dokładnie, co miałbym zrobić, aby kod był odpowiedni to oczywiście będę bardzo wdzięczy.
Jeżeli nie, to również będę wdzięczny, jeżeli ktoś analogicznie do tego przykładu mógłby mi pokazać jak zrobić Description i Keywords na każdej stronie osobno.
ghastblood
OMG

najszybciej i najłatwiej

  1. $title = "tytuł strony";
  2. $description = "opis strony";
  3. $keywords ="słowa kluczowe"


  1. <title><?php $title; ?> - Główna nazwa serwisu</title>
  2. <meta name="Description" content="<?php $description; ?>" />
  3. <meta name="Keywords" content="<?php $keywords; ?>" />



ewentualnie moża użyć

  1. define('TITLE', 'Tytuł podstrony serwisu');


ale zamist tego

  1. <?
  2. $title = ((defined('TITLE')) ? ' - '.TITLE : '');
  3. $html = ob_get_clean();
  4. echo preg_replace('#<!--TYTUL-->#', $title, $html);
  5. ?>

i tego


  1. <title><!--TYTUL-->Główna nazwa serwisu</title>


zrobić

  1. <title><?php echo TITLE;?> - Główna nazwa serwisu</title>
catalog
przepraszam, wyjdę na niepoważnego, ale próbuję to zrobić od ponad 5 godzin i po prostu brakuje mi już pomysłów.
Próbowałem w obydwu plikach tego używać i w index.php oraz w stronie wczytywanej na wszelkie możliwe kombinacje.
Jedynie co się pokazuje to tylko "- Główna nazwa serwisu" na każdej podstronie, ale to chyba tylko dlatego, że znajduje się w <title> w pliku index.php.

Może lepiej będzie jeśli podam kod.

1. Plik index.php

  1. <? ob_start() ?>
  2.  
  3. <?php header('Content-Type: text/html; charset=utf-8');
  4. $add_site = true;
  5. ?>
  6.  
  7. <!DOCTYPE html
  8. PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  9. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  10. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  11. <head>
  12. <meta http-equiv="content-type" content="text/html; charset=utf-8">
  13. <meta name="Description" content="aaaaaaaaaaaaa" />
  14. <meta name="Keywords" content="bbbbbbbbbbbb" />
  15. <title>cccccccccccccc</title>
  16. <link rel="Stylesheet" type="text/css" href="style/style.css" />
  17. <link rel="Stylesheet" type="text/css" href="style/style-menu-poziome.css" />
  18. <link rel="Stylesheet" type="text/css" href="style/style-menu-pionowe.css" />
  19. </head>
  20.  
  21. <body>
  22. <div>
  23.  
  24. treść strony
  25.  
  26. <?php
  27. $go = $_GET['go'];
  28. if(!empty($go)) {
  29. if(is_file("page/$go.php")) include "page/$go.php";
  30. else echo "<br />Niestety nie można wyświetlić strony";
  31. }
  32. else include "page/index.php";
  33. ?>
  34.  
  35. treść strony
  36.  
  37. </div>
  38. </body>
  39. </html>



2. Plik wczytywany (.php)

W plikach, które są wczytywane występuje tylko i wyłącznie sam tekst plus formatowanie tekstu jak np. <p> <h1> <b> itp.
Nie ma ram dokumentu ani nic innego.



ghastblood gdzie powinienem wstawić dokładnie podane przez Ciebie dwa pierwsze kody?
Pierwszy do wczytywanej strony, a drugi do pliku index.php, tak? Tylko w której dokładnie miejsca wstawić te kody i czy to są całe kody?
Bo do tego pierwszego dopisywałem <? oraz ?>, ale po prostu nie potrafię.

Być może ktoś mi zarzuci, że nie chciało mi się tego samemu robić, ale naprawdę nie potrafie i stąd tylko moja prośba - czy mógłby ktoś podstawić potrzebne funkcje podane w poprzednim poście do mojego kodu w odpowiednie miejsca? Lub jakiekolwiek funkcje, aby każda podstrona serwisu miała inne meta tagi?
Ewentualnie w przypadku drugiego pliku (tego wczytywanego) również dopisać czy coś w nim potrzeba poza tym kodem dopisać?

Przepraszam za kłopot - z mojej wiedzy, a w zasadzie niewiedzy, jak najbardziej można się śmiać wink.gif
A temat "inne metatagi na każdej stronie" wyskakuje na pierwszej pozycji w google (przynajmniej u mnie), więc jestem przekonany że komuś jeszcze się przyda smile.gif
patwoj98
Skoro chcesz w każdej podstronie mieć inne dane to po co chcesz to robić PHP?
catalog
index jest w php, ponieważ wczytywane są do niego pliki takie, jak menu, treść podstron itp.

Natomiast plik podstron był w .html i wówczas działał mi inny tutał na każdej stronie.
Jednak gdy "ghastblood" podał mi kod jakiego użyć to zamieniłem te wczytywane pliki na .php (na początku próbowałem tego użyć w .html, ale program pokazywał mi ten tekst jako nieaktywny, jako zwykły tekst).

Oczywiście nie twierdzę, że kod "ghastblood'a" był zły tylko składaniam się ku temu, że ja nie potrafię tego zastosować.
Jeśli więc byłby ktoś na tyle uprzejmy, aby mi w tym pomóc, a w zasadzie wyjaśnić krok po kroku jak to zrobić to bardzo bym prosił smile.gif
patwoj98
Z var_dumpuj title przy każdym i podaj wartości.
catalog
Tak, jak napisałem w pierwszym poście "Jestem zupełnym laikiem, ledwie udało mi się na stronie dopasować ten poniższy kod." to nadal nic w tej kwestii się nie zmieniło wink.gif Niestey nie potrafie używać .php, tym bardziej, że mam problem nawet z .html czy .css smile.gif

W moim przedostatnim poście specjalnie podałem kod strony, aby ktoś mógł, jeśli tylko będzie chciał, dopisać do niego w odpowiednie miejsce np. to, co napisał jeden z kolegów forumowiczów, bo ja jak pisałem, próbowałem tego, co mi poradział używać i w żaden sposób mi się nie udało zrobić innych description oraz keywords.

patwoj98, jeżeli byłbyś na tyle dobry, aby wstawić do kodu, który podałem wyżej w taki sposób, aby były inne meta tagi na każdej podstronie to będę Ci bardzo wdzięczny wink.gif
patwoj98
Ustalmy coś. Skąd się biorą dane tytuły stron? Ja bym zrobił na index page'u takiego if'a:

  1. if($_POST['strona']){
  2. // jeżeli jest jakaś strona do wywołania
  3. $strona = $_POST['strona'].'.html';
  4. include("$strona");
  5. }else{
  6. include('index.php');
  7. }


przetestuj
catalog
patwoj98 naprawdę szczerze Ci dziękuję za chęć pomocy, ale ja naprawdę w ogóle nie rozumiem .php.
W poprzednich postach podałem kod strony, a w pierwszy poście napisałem w jaki sposób jest na tej stronie zrobione <title>, aby na każdej podstronie srwisu było inne. Jednak jak również napisałem to .php było wzięte z pewnego kursu, gdzie krok po kroku było to wyjaśnione i ja jest tylko wkleiłem na stronę i o dziwo zadziałało smile.gif jednak brak mi pozostałych meta tagów.

A Twój kod oczywiście wkleiłem na stronę, ale szczerze mówiąc próbowałem w różnych miejscach....o ile to ma w ogóle jakieś znaczenie. Poza tym później skapnąłem się, że to chyba mi nie zmieni title na podstronach, bo i również przecież tam musiałbym coś dopisać chyba, tak?
Nie wspominając już o tym, że na początku w ogóle się dziwiłem czemu kod mam napisany jako zwykły tekst po czym dopiero przyszło mi do głowy że przecież trzeba dopisać <? i ?>....

naprawdę w ogóle tego nie rozumiem.
Nie wiem czy zwracałeś uwagę na mój pierwszy post w tym temacie oraz na post z 08. czerwca, godz.: 22:08 - w pierwszym poście jest kod w jaki title mam różne, natomiast w poście z 08. czerwca jest kod strony.

A jeżeli już straciłeś do mojego problemu cierpliwość to także w pełni to zrozumiem smile.gif
ale to nie zmienia faktu, że jestem nadal wdzięczny za chęć pomocy wink.gif
Star
Catalog, a gdybys na każdej stronie ustawił jako zmienna sesyjną tutuł i co tam innego chcesz ?
np
  1. <?php
  2. $_SESSION["title"] = "jakistytuł";
  3. <html>
  4. <head>
  5. <title>{$_SESSION['title'] }</title>
  6. //reszta strony


Jesli mialbys strone na sesjach to nie musialbys definiowac w kazdym katalogu jaki ma byc tytul lecz w jednym pliku ktorego bys ładował na starcie
patwoj98
Tyle, że jak on nie ogarnął mojego ifa to sesji tymbardziej. Rozwiązań jest sporo, ale pytanie brzmi po co to jest potrzebne? smile.gif
catalog
No tak, nie ogarnąłem, bo jak już pisałem chyba 3 razy w tym wątku, że PHP ja w ogóle nie znam smile.gif
więc Panowie zlitujcie się, wycinek kodu .php do prawdy, nic a nic mi nie mówi - jest dla mnie jak jakiś chiński język wink.gif

Star w moim problemie właśnie chodzi o to, że chcę definiować tytuł, description i keywords każdej podstrony, każdego artykułu. Chyba, że źle zrozumiałem Twoje ostatnie zdanie - jeśli tak to przepraszam smile.gif

patwoj98, po co mi to jest potrzebne?
Chcę, aby strona lepiej się pozycjonowała. I o ile keywordsy pewnie niewiele dają, to jest description pasuje mi dać inny na innych podstronach chociażby po to, aby w google to wyglądało ładnie i schludnie smile.gif

Nie chodzi o to, że chcę gotowca (chociaż w zasadzie na to niestety wychodzi z powodu braku mojej wiedzy o PHP), ale gdyby ktoś mi podał coś na zasadzie:

1. Ten kod wklej w pliku index.php np. w <head> albo w <body> lub gdziekolwiek indziej
2. Ten kod wklej w plikach, które są wczytywane, czyli w podstronach. I czy musi to być plik .php czy .html?
3. Co ewentualnie zmienić w tych podanych wyżej kodach (np. nazwe 'strona' zmień na nazwę jakiegoś tam pliku)
Tak - niestety trzeba mi to wytłumaczyć, jak dziecku, abym zrozumiał smile.gif

Może chociaż to mnie poratuje - odnośnie tego gotowca - że nie piszę bezczelnie "napiszcie mi kod na to......" ;D tylko jednak staram się wyjaśnić najdokładniej jak to możliwe i opisać mój problem chociaż za każdym razem wydaje mi się, że opisałem go tak, że już bardziej się nie da, a tu piszę post za postem i kolejny wcale nie jest krótszy niż poprzedni smile.gif
patwoj98
Z tego co wiem to, żeby pozycjonować stronę najważniejsze w tej chwili jest zrobienie mobilności (np: Bootstrapem) może w ten sposób promuj stronę, aniżeli czymś na czym się nie znasz. Co do bootstrapa, html, css to poucz się na W3 jak ogarniesz, a jak nie to googluj.

Narazie to ja nie wiem skąd ma się brać tytuł strony u Ciebie.
Star
No wlasnie zle zrozumiales, bo definiowal bys wszystko w jednym pliku ,ktorego bys wrzucal na kazda strone np przez require i tyle.

stworz sobie jakis plik typu title.php i stworz ta tyle tytulow sesyjnych ile chcesz, poprzedzajac je rozpoczeciem sesji np

  1. $_SESSION["title1"] = "jakistytuł1";
  2. $_SESSION["title2"] = "jakistytuł2";
  3. $_SESSION["title3"] = "jakistytuł3";
  4. $_SESSION["title4"] = "jakistytuł4";


potem na poczatku kazdej strony wklej taki kawalek kodu:
require("title.php");

no i jak to zrobisz to bedziesz mógł wybrac ktory z tych sesyjnych tytulow ma sie znajdowac na stronie robiac taki kod
  1. <title><?php {$_SESSION['$_SESSION["title2"] ']} ?> </title>

badz taki
  1. <title><?php {$_SESSION['$_SESSION["title3"] ']} ?> </title>

itd
tak samo mozesz z meta .... postapic
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.