Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z dynamicznie generowanymi meta tagami
Forum PHP.pl > Forum > Przedszkole
danussiaaa
Prosze pomóżcie. Zaczynam naukę obiektowego php i mam problem z takim kodem:

  1. class Strona
  2. {
  3. public $metatagi;
  4.  
  5. public function wyswietltagi()
  6. {
  7. if (isset($_GET[strona]))
  8. {
  9. switch ($_GET[strona])
  10. {
  11. case "kontakt":
  12. $this->metatagi = "<title>Formularz kontaktowy</title>\n<meta name='description' content='Tutaj możesz odnaleźć możliwości kontaktu ze mną'>\n<meta name='keywords' content='kontakt, e-mail, gadu-gadu, skype, imie nazwisko'><meta charset='UTF-8'>\n";
  13.  
  14. break;
  15. case "oferta":
  16. $this->metatagi = "<html>
  17. <head>
  18. <title>Oferta</title>
  19. <meta name='description' content='Tutaj możesz odnaleźć możliwości kontaktu ze mną'>
  20. <meta name='keywords' content='kontakt, e-mail, gadu-gadu, skype, imie nazwisko'>
  21. <meta charset='UTF-8'>
  22. </head>
  23. <body>";
  24. break;
  25. default:
  26. header("Location: index.php");
  27. break;
  28. }
  29. }
  30. else
  31. {
  32. $this->metatagi = "<title>Formularz kontaktowy</title><meta name='description' content='Tutaj możesz odnaleźć możliwości kontaktu ze mną'><meta name='keywords' content='kontakt, e-mail, gadu-gadu, skype, imie nazwisko'><meta charset='UTF-8'>";
  33.  
  34. }
  35. }
  36. public function Wyswietl()
  37. {
  38. echo "<html>\n<head>\n";
  39. $this->wyswietltagi();
  40. echo "</head>\n<body>\n";
  41. echo "</body>\n</html>\n";
  42. }
  43. }
  44. $www= new Strona();
  45. $www->Wyswietl();


Sama funkcja wyswietltagi() wywolana przez

  1. echo $www->metatagi;


Dziala bez zarzutu, ale już wewnątrz Wyswietl() nie sad.gif
Na pewno to jakas moja prosta pomyłka, ale jak nie wie sie czego szukac to pojawaiaja sie takie problemy tongue.gif
Gość
A czego się spodziewasz? Przecież metoda wyswietltagi() ustawia tylko właściwość klasy (metatagi), ewentualnie wysyła jakiś dziwny nagłówek (?) Na pewno nic nie wyświetla. A tak przy okazji powinno być $_GET['strona'] a nie $_GET[strona], bo strona to chyba nie jest jakaś zdefiniowana stała
danussiaaa
Po co ten trash talk? Owszem niefortunnie sie wyrazilam pisząć 'wyświetlić', chodziło mi o przesłanie tego nagłówka. A nie przesyła!
P.S. po co piszesz o brakujących apostrofach? Owszem nie jest to zbyt eleganckie ale nie wplywa na dzialanie kodu. Wiec jak nie chcesz pomoc to po prostu nie pisz

Ok poradziłam sobie sama.

Wygląda to tak:
  1. class WWW
  2. {
  3. public $tytul;
  4.  
  5. public function DodajTytul()
  6. {
  7. if (isset($this->tytul))
  8. {
  9. switch ($this->tytul)
  10. {
  11. case "kontakt":
  12. echo "<title>kontakt</title>\n";
  13. break;
  14. case "oferta":
  15. echo "<title>oferta</title>\n";
  16. break;
  17.  
  18. }
  19. }
  20. else
  21. {
  22. echo "<title>ggg</title>";
  23. }}
  24.  
  25. public function Wyswietl()
  26. {
  27. echo "<html>\n<head>\n";
  28. $this->DodajTytul();
  29. echo "</head>\n<body>\n";
  30. echo "</body>\n</html>\n";
  31. }
  32.  
  33.  
  34. }
  35. $eee= new WWW;
  36. $eee->tytul= $_GET['s'];
  37. $eee->Wyswietl();


Nie wiem czy jest poprawny, ale dziala.

Wątek do zamknięcia.
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.