Subpagina titels?

Status
Niet open voor verdere reacties.

grote frits

Gebruiker
Lid geworden
31 jul 2007
Berichten
86
Voor mijn website gebruik ik de include functie waarbij de index pagina altijd terug komt. De home pagina is bijvoorbeeld www.online-verdiensten.nl?p=home . Bij alle pagina's wordt de titel van de index pagina weergeven. Kan ik dit makkelijk aanpassen zodat de titel per pagina verschilt? Bijvoorbeeld dat bij de home pagina bijvoorbeeld Home wordt weergeven, en bij de mail pagina bijvoorbeeld Mail? Dit helpt natuurlijk voor betere zoekresultaten bij google!
 
Hoe heb je nu die wisselende pagina? Via een SWITCH?

Als je dat hebt kun je makkelijk een variabele aanmaken $titel en die verander je steeds bij elke case.
 
Hoe heb je nu die wisselende pagina? Via een SWITCH?

Als je dat hebt kun je makkelijk een variabele aanmaken $titel en die verander je steeds bij elke case.
Op de index pagina gebruik ik dit script:
PHP:
if (!isset($_GET['p'])) { 
             $p = ''; } else { $p = $_GET['p']; } if(empty($p)) {
             include_once('home.php'); } else { if(file_exists($p.'.php')) {
             include_once($p.'.php'); } else { include_once('home.php'); } }
Standaard wordt dus de home pagina geinclude, anders de pagina die je aanklikt. Wat wordt bedoelt met een SWITCH?
 
Laatst bewerkt door een moderator:
Met een switch kun je ook steeds de pagina wijzigen... In jouw geval heeft het geen zin aangezien je toch steeds naar een bestandsnaam zoekt.

Wat je nu kunt doen is met een array werken waarin je aan de ene kant steeds jouw ?p waarde neer zet en aan de andere kant de titel die jij wilt hebben

Zoiets dus:
PHP:
//Dit moet voor bovenstaand script staan.
$titelArray = array(
"home" => "Home",
"verdienen" => "Verdien geld!",
"contact" => "Neem contact met ons op"
);
Vervolgens zet je op de plek waar jij de titel wilt hebben (Op de bijbehorende pagina dus) behalve op de index pagina aangezien er dan nog geen ?p is
PHP:
echo $titelArray[$_GET['p']];
 
Laatst bewerkt:
Met een switch kun je ook steeds de pagina wijzigen... In jouw geval heeft het geen zin aangezien je toch steeds naar een bestandsnaam zoekt.

Wat je nu kunt doen is met een array werken waarin je aan de ene kant steeds jouw ?p waarde neer zet en aan de andere kant de titel die jij wilt hebben

Klopt, zo wordt er een de titel weergeven ergens op de pagina. Mijn vraag is echter, kan ik de paginatitel in het browser aanpassen? De titel die bovenaan de balk staat in je browser.
 
Dan zet je toch die variabele steeds tussen <title>...</title> ;)
 
Dan zet je toch die variabele steeds tussen <title>...</title> ;)

Ik plaats dit script
PHP:
<? echo $titelArray[$_GET['p']];  ?>
tussen de <title> en </title> en op de index zet ik
PHP:
$titelArray = array(
"test" => "Home",
"verdienen" => "Verdien geld!",
"contact" => "Neem contact met ons op"
);
(even test als test)
maar ik krijg verder geen titel, alleen bijvoorbeeld http://www.online-verdiensten.nl/?p=test

Wat doe ik fout?
 
In index.php
PHP:
<?
$titelArray = array( 
"test" => "Home", 
"verdienen" => "Verdien geld!", 
"contact" => "Neem contact met ons op" 
);
//Voor het gemak maar even een extra variabele anders moet je zo zoeken
$standaardTitel = "Online-verdiensten.nl blablabla";
?>
<html>
<head>
 <title> <? isset($_GET['p']) ? echo $titelArray[$_GET['p']] : echo $standaardTitel; ?></title>
</head>
<body>
etc
 
In index.php
PHP:
<?
$titelArray = array( 
"test" => "Home", 
"verdienen" => "Verdien geld!", 
"contact" => "Neem contact met ons op" 
);
//Voor het gemak maar even een extra variabele anders moet je zo zoeken
$standaardTitel = "Online-verdiensten.nl blablabla";
?>
<html>
<head>
 <title> <? isset($_GET['p']) ? echo $titelArray[$_GET['p']] : echo $standaardTitel; ?></title>
</head>
<body>
etc
Misschien erg amateuristisch, maar ik krijg een foutmelding en weet niet waar het in zit.... Parse error: syntax error, unexpected T_ECHO in /storage/mijndomein/users/094859/public/sites/test.online-verdiensten.nl/index.php on line 14
Kan jij de fout vinden?
 
Er moet vast nog een punt-komma na de eerste echo.
Was er niet zeker van of dat nou wel of niet moest.
 
Er moet vast nog een punt-komma na de eerste echo.
Was er niet zeker van of dat nou wel of niet moest.

Helaas, geen succes.. Ook als ik hem gewoon op de pagina zet krijg ik deze zelfde echo..? :confused:

Update: Gelukt!!!!!! Zelf aangepast naar
PHP:
<? if (!$_GET['p']) echo $standaardTitel; else echo $titelArray[$_GET['p']];  ?>
En tot mijn verbazing werkt het ook nog!
Bedankt voor de aanzet!
 
Laatst bewerkt:
PHP:
<? 
$titelArray = array( 
"test" => "Home", 
"verdienen" => "Verdien geld!", 
"contact" => "Neem contact met ons op" 
); 
//Voor het gemak maar even een extra variabele anders moet je zo zoeken 
$standaardTitel = "Online-verdiensten.nl blablabla";
?> 
<html> 
<head> 
<title><?= isset($_GET['p']) ? $titelArray[$_GET['p']] : $standaardTitel; ?></title> 
</head> 
<body>
..
</body>
</html>
Doet hetzelfde ;)

Waarschijnlijk ging het met de echo niet goed in combinatie met $a ? $b : $c
 
[
Doet hetzelfde ;)

Waarschijnlijk ging het met de echo niet goed in combinatie met $a ? $b : $c

Werkt prima als ik elke pagina een naam geef. Omdat ik veel subpagina's heb wordt hierdoor de pagina erg traag (naar mijn idee tenminste). Kan bij het andere script in de titel misschien iets bij waardoor hij de $standaardTitel laadt als ?p=.... niet voorkomt in de array lijst?
 
Ja hoor, even de functie isset() vervangen door array_key_exists()
PHP:
<? 
$titelArray = array( 
"test" => "Home", 
"verdienen" => "Verdien geld!", 
"contact" => "Neem contact met ons op" 
); 
//Voor het gemak maar even een extra variabele anders moet je zo zoeken 
$standaardTitel = "Online-verdiensten.nl blablabla"; 
?> 
<html> 
<head> 
<title><?= array_key_exists($_GET['p'], $titelArray) ? $titelArray[$_GET['p']] : $standaardTitel; ?></title> 
</head> 
<body> 
.. 
</body> 
</html>
 
Ja hoor, even de functie isset() vervangen door array_key_exists()
PHP:
<? 
$titelArray = array( 
"test" => "Home", 
"verdienen" => "Verdien geld!", 
"contact" => "Neem contact met ons op" 
); 
//Voor het gemak maar even een extra variabele anders moet je zo zoeken 
$standaardTitel = "Online-verdiensten.nl blablabla"; 
?> 
<html> 
<head> 
<title><?= array_key_exists($_GET['p'], $titelArray) ? $titelArray[$_GET['p']] : $standaardTitel; ?></title> 
</head> 
<body> 
.. 
</body> 
</html>

YIEHAA!! Alles werkt super! Hartstikke bedankt..:D
 
Alles werkt zeer voorspoedig, alleen....

Bij google zoekresultaten wordt elke pagina die ik heb benoemd niet met die titel weergeven, maar met de standaardtitel. Is dit altijd bij google, of is dit op te lossen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan