Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Dynamiczne Tytuły i Keywords
Porter3
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 3
Dołączył: 18.11.2010

Ostrzeżenie: (0%)
-----


Mam działające dynamicznie Tytuły stron i keywords.
Mam problem z pewnym warunkiem.
Jestem początkujący.

index.php
Kod
<?php
$go=$_GET['id'];

if(!isset($go) )                  //jeśli $go nie istnieje to ustawia tytuł i keys z tablicy z indeksu "home"
    $go="home";

  $tytul = array (                               //tablica z tytułami
    "home" => "Strona Główna",
    "placowka" => "O Placówce",
    "regulamin" => "Regulamin",
    "galeria" => "Galeria",
    "kontakt" => "Kontakt",
  );
    
    $keys = array (                      //tablica z keyword
        "home" =>"strona główna, azyl, placówka opieki doraźnej w kielcach, witamy",
        "placowka" =>"informacje o placówce, rys historyczny, historia",
        "regulamin" =>"regulamin placówki, schemat organizacyjny",
        "galeria" =>"zdjecia placówki, galeria",
        "kontakt" =>"kontakt, informacje kontaktowe, adres, email, telefon, dojazd, forularz kontaktowy",
        );
        
require_once('skel/doc.php');           //ładuję <head> <script> itd.
?>
...



doc.php
Kod
meta name="keywords" content="<?php echo "$keys[$go]";?>"/>    
<title><?php echo "$tytul[$go] | xxx";?></title>


Menu, dynamika itd. działa prawidłowo.
Jeśli wpisze się w url inną zmienną niż ?id, to również pokazuje dane z home. To jest prawidłowo.

Chciałbym jednak, żeby też tak się działo, gdy wpisze się zmienną ?id= taką której nie ma w tablicy(jednocześnie w menu), czyli nie home,regulamin,galeria,kontakt. Chciałbym, żeby przeszło przez tablicę i sprawdziło, że nie ma takiego indeksu, więc też pokaże "home". Tymczasem na ten moment w ogóle nic nie wczytuje. Np. gdy dam www.xxx.pl?id=cokolwiek.

Proszę o podsunięcie pomysłu.
Dziękuję z góry jednocześnie prosząc o wyrozumiałość (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
sadistic_son
post
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Przeszukaj tablicę $tytuł funkcją in_array. Jeśli element zostanie znaleziony to ok, jeśli nie to przypisz wartość home. Np:
  1. if(!in_array($go,$tytul)){
  2. $go='home';
  3. }


Ten post edytował sadistic_son 24.11.2010, 00:27:57
Go to the top of the page
+Quote Post
Porter3
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 3
Dołączył: 18.11.2010

Ostrzeżenie: (0%)
-----


Kod
if (!isset($go))                   /jeśli nie istnieje zmienna $go to...
    $go="home";
elseif (!in_array($go,$tytul))       /jeśli nie znajdzie $go w tablicy $tytul to...
    $go='home';


Problem jest taki:

- gdy znajduje $go, które jest w $tytul to i tak daje 'home' i wyświetla: Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/xxxx/doc.php on line 13

- jeśli wpiszę $go, którego nie ma to działa dobrze, daje "home", ale też z ostrzeżeniem
- jeśli w ogóle nie istnieje $go to działa wyśmienicie, bez ostrzeżenia.

Jak naprawić, by:

- nie ustawiało "home" gdy istnieje w tablicy
- jak pozbyć się ostrzeżenia, gdy nie ma $go.

Proszę o podpowiedź. Być może źle zapisałem warunek.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.12.2025 - 18:11