MyBB.de Forum

Normale Version: [PHP] Titel verändern wenn andere include-Datei
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallöchen,

Ich verstehe im Moment leider nicht, wie ich den Titel meiner Internetseite ändere, wenn ich auf andere interne Links auf meiner Seite verlinke.

Dies mache ich mit include:

PHP-Code:
$site $_GET['site'];

if(!isset(
$site)) 
{
$site="news";
}
$invalide = array('/','//',':','.');
$site str_replace($invalide,' ',$site);
include(
"seiten/".$site.".php"); 

Doch wenn ich eine andere Seite include, kann ich den Titel meiner Page nicht mehr ändern, ist das richtig?

Gibt es dafür eine Lösung?

MfG,
Waluigi
Code:
<head>
<title>TITEL Der Seite</title>
</head>

Vor dem <body> einfügen:
PHP-Code:
<head>
<?
php
$site 
$_GET['site'];

if(!isset(
$site)) {
$site="news";
}
$invalide = array('/','//',':','.');
$site str_replace($invalide,' ',$site);
include(
"seiten/".$site.".php"); 
if (
$site == "news"){
?>
<title>News</title>
<?php
}else{
?>
<title>andere Seite</title>
<? } ?>
</head> 
so würde das gehn...

Gruss
Ja, sowas habe ich mir auch schon gedacht.

Leider habe ich sehr viele Seiten und es kommen fast täglich mehr Seiten hinzu.

Ich wollte jetzt eigentlich nicht eine Datei machen, wo ich dann hunderte if-Anwendungen rein schreibe. Das fände ich etwas aufwendig.

Kann man das nicht vielleicht nicht noch irgendwie anders machen?

Wir schreben nämlich viele Tests und wenn die Endung "index.php?site=tests&testID=67" ist, gebe ich ja eigentlich auch sehr unbrauchbare Variablen wieder.

Kann mir vielleicht trotzdem jemand einen Tipp geben, wie ich das am besten machen kann?

MfG,
Waluigi
Wäre es nicht am einfachsten, einfach eine Variable zB $title festzulegen, die jedes zu includierende Script mit einem Wert füllen muss? Dann könntest du nach dem include des "Unterscripts" einfach $title als Titel ausgeben, und hast die Festlegung des Titels immer in deinen Unterscripten, und kein überdimensioniertes If oder switch im Hauptscript Wink

index.php
PHP-Code:
$site $_GET['site'];

if(!isset(
$site)) 
{
$site="news";
}
$invalide = array('/','//',':','.');
$site str_replace($invalide,' ',$site);
include(
"seiten/".$site.".php"); 

// Eventuell noch prüfen, ob $title wirklich belegt ist, und andernfalls nen Standard-Titel zuweisen
echo "<head><title>{$title}</title></head>"//Titel ausgeben 

news.php
PHP-Code:
<?php
$title 
"News und so";
// Und der ganze Rest, was so eine news.php noch so macht ^^
?>


EDIT:
Eventuell ist es besser, auf eine Konstante zurückzugreifen, die in den Unterscripts definiert, und im Hauptscript dann ausgegeben wird. Der Vorteil ist, dass einmalig definiert, diese sich nicht mehr (versehentlich) überschreiben lässt, bei der oberen Lösung kann schnell mal an $title was neues (auch versehentlich) zugewiesen werden ^^

index.php
PHP-Code:
// include Dingens
if (!defined('TITLE')) define('TITLE'"Standard Titel");
echo 
"<head><title>".TITLE."</title></head>"

news.php
PHP-Code:
define('TITLE'"News und so");