Seite 1 von 1
Eine header.inc und verschiedene Titel
Verfasst: 25.02.2010, 20:39
von lorenzolamas
Hallo,
auf meiner Website wird alles über die index.php gesteuert und hier wird auch bereits eine header.inc includet, wo Titel und so weiter eingetragen ist. Das hat natürlich den Nachteil, dass ich jetzt auf jeder Seite ein und den selben Titel habe. Lässt sich das irgendwie umgehen?
Zum Beispiel, dass ich der Seite index.php?page=123 sage, sie soll nich die header.inc nehmen, sondern lieber die die header2.inc. Oder kann ich trotz der header.inc der Seite index.php?page=123 einen anderen Titel geben?
Ich hoffe, es weiß jemand Rat. Über die Suche habe ich ähnliches gefunden, aber nicht genau dieses Problem.
Verfasst:
von
Content Erstellung von
ABAKUS Internet Marketing
Ihre Vorteile:
- einzigartige Texte
- suchmaschinenoptimierte Inhalte
- eine sinnvolle Content-Strategie
- Beratung und Umsetzung
Jetzt anfragen:
0511 / 300325-0
Verfasst: 25.02.2010, 21:24
von Andreas I.
Ja, du musst einfach nur die Parameter aus der URL auslesen und im script header.inc entsprechend reagieren.
Das läuft ja wohl ungefähr so ab, Beispiel-URLs:
index.php?id=42
In header.inc musst du dann für die jeweilige id den passenden Titel ausgeben. Am besten aus einer Datenbank lesen...
Verfasst: 25.02.2010, 21:36
von lorenzolamas
ok, danke erstmal.
Mal angenomen es ist die hier index.php?page=102
was schreib ich dann in die header.inc ?
Verfasst:
von
SEO Consulting bei
ABAKUS Internet Marketing Erfahrung seit 2002
- persönliche Betreuung
- individuelle Beratung
- kompetente Umsetzung
Jetzt anfragen:
0511 / 300325-0.
Verfasst: 25.02.2010, 22:18
von Andreas I.
Ganz primitiv:
[php]
if ($_GET['page']==102) echo "<title>Ich bin auf Seite 102</title>";
[/php]
Natürlich sollte man das mit einer Datenbank lösen und nicht per if-Abfrage...
Du musst deine header.inc deinen Wünschen anpassen.
Verfasst: 25.02.2010, 23:05
von 800XE
lorenzolamas hat geschrieben:
auf meiner Website wird alles über die index.php gesteuert
so mach ich das auch
und einunddieselbe index.php ist nicht nur für eine Site(=Domain) sondern für mehrere zuständig
lorenzolamas hat geschrieben:ok, danke erstmal.
Mal angenomen es ist die hier index.php?page=102
was schreib ich dann in die header.inc ?
dort gibst du garnix ein
dort liest du aus
und gibst aus
Andreas I. hat geschrieben:Ganz primitiv:
[php]
if ($_GET['page']==102) echo "<title>Ich bin auf Seite 102</title>";
[/php]
Natürlich sollte man das mit einer Datenbank lösen und nicht per if-Abfrage...
Du musst deine header.inc deinen Wünschen anpassen.
etwas verkürzt
Code: Alles auswählen
$DCkill_ =$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$metakeywords="";
$metadescript="";
include('cms800/cms800ini.php');
header("HTTP/1.1 200 OK");
include("cms800/cms800.php");
include("cms800/cms800request.php");
include('cms800/cms800filer.php');
if ( $DCkill
&& strcmp($DCkill,$DCkill_) )
{
if ( strstr($DCkill_,'%') )
{
$DCkill_= urldecode ( $DCkill_ );
if ( strcmp($DCkill,$DCkill_) )
make301($DCkill);
}
else make301($DCkill);
}
$CMS800END=microtime_float();
$CMS800RUN=round($CMS800END-$CMS800START,4);
echo(str_replace('_PHPrun_',$CMS800RUN,$tbuf));
in der letzten Zeile ist
echo(str_replace('_PHPrun_',$CMS800RUN,$tbuf));
erst dort ist eine ausgabe, vorher wird alle sin $Vars geschieben
Die Inhalte der Vars werden dann genommen um Platzhalter im Template zu ersetzen
=
index.php
Code: Alles auswählen
$tbuf = file_get_contents( 'template.html' );
// module laden die COntent in $Vars schreiben
$tbuf = str_replace( '_tit_', $tit, $tbuf );
$tbuf = str_replace( '_navi_', $navi, $tbuf );
$tbuf = str_replace( '_content_', $content, $tbuf );
$tbuf = str_replace( '_metadesc_', $metadesc, $tbuf );
$tbuf = str_replace( '_metakey_', $metakey, $tbuf );
echo( $tbuf );
Verfasst: 25.02.2010, 23:14
von lorenzolamas
Super. So geht es jetzt
<?php
if ($_GET['page']==102) echo "<title>Ich bin auf Seite 102</title>";
?>
Danke dir Andreas I.
Allerdings: Wenn ich jetzt in den Quelltext gehe, stehen dann ja beide Titel drin. Macht google da nicht zicken?
Kann ich den anderen titel auch irgendwie auskommentieren?
Mien Quelltext sieht jetzt so aus
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ich bin auf Seite 102</title>
<title>xxxxxxxx</title>
<meta name="keywords" content....
usw....
Verfasst: 26.02.2010, 09:02
von Andreas I.
Du musst erstmal besser PHP (und SQL im MySQL-Dialekt) lernen und dann verstehen, was genau in deiner header.inc gemacht wird.
Wenn Du das dann nachvollziehen kannst, änderst du die header.inc so, wie du es haben wilst.
Und ja, zweimal <title>....</title> würde ich nicht so stehen lassen.
Verfasst: 26.02.2010, 09:37
von alpening
Was für deine Einsatzzwecke besser geeignet ist, ist die Switch Funktionen. Schau dir dazu zum Bsp. mal das PHP-Manual an:
https://de2.php.net/manual/en/control-s ... switch.php
Aber wie Andreas schon gesagt hat, versuch erst mal die Grundlagen im Programmieren (im besonderen natürlich PHP) zu verstehen. Dazu gibt's ganz tolle Bücher.
Verfasst: 26.02.2010, 11:16
von Andreas I.
Switch ist hier auch nicht besser als if.
Das ist beides nur beispielhaft.
Ich vermute, dass der Threadstarter ein datenbankbasiertes CMS hat und da nun nicht so richtig weiterweiß, weil er keine Gebrauchsanweisung hat und es sich auch nicht selber erklären kann, weil er von PHP und MySQL zuwenig versteht.
Verfasst: 27.02.2010, 12:29
von lorenzolamas
Danke erstmal für die weiteren Antworten. Mit Switch komm ich nicht wirklich klar.
Hatte jetzt mal das probiert
if (($_GET['page']=1234.html) ) {
// include special header on "about" page:
include ("ordner/header_1234.inc");
} else {
// otherwise include default header:
include ("ordner/header.inc");
}
klappt aber auch nicht. Muss ich wohl weiter "fummeln"...
Verfasst: 27.02.2010, 21:55
von 800XE
lorenzolamas hat geschrieben:
Hatte jetzt mal das probiert
klappt aber auch nicht. Muss ich wohl weiter "fummeln"...
lorenzolamas hat geschrieben:
if (($_GET['page']=1234.html) )
1 = gleich Zuweisung
2 = gleich Vergleich auf istgleich
fummel mal damit rum
lorenzolamas hat geschrieben:
if (($_GET['page'] == 1234.html) )
ähm ...
das geht eh nicht
entweder
lorenzolamas hat geschrieben: if (($_GET['page'] == '1234.html' ) )
oder
lorenzolamas hat geschrieben: if (($_GET['page'] == 1234 ) )
//EDIt
DU solltest aber erstmal einen
lorenzolamas hat geschrieben: echo ( $_GET['page'] )
machen
um zu sehen was dein Script sehen tut
Verfasst: 28.02.2010, 02:13
von simi1987
Jetzt will ich auch mitmachen
Normal hast du in deinen Dateien einen Befehlt der ungefär so aussieht:
include('ordner/header.inc');
Ich würde jetzt vor den Befehl eine Variable knallen z.B.
$titel = 'Mein Seitentitel';
include('ordner/header.inc');
Die Header.inc wüde ich jetzt wie folgt modifizieren:
<title>xxxxxxxx</title>
Daraus mache ich:
if ( $titel != '' )
{ echo '<title>$titel</title>'; }
else
{ echo '<title>Reserve Titel wenn keiner definiert ist</title>'; }
So musst du nicht kucken welche ID jede seite hat sondern kannst direkt beim erstellen einer neuen Seite den Header mit definieren
Je nachdem ob PHP in dem Teildes Codes aktiviert ist oder nicht halt noch:
<?php
if ( $titel != '' )
{ echo '<title>$titel</title>'; }
else
{ echo '<title>Reserve Titel wenn keiner definiert ist</title>'; }
?>
Verfasst: 28.02.2010, 13:15
von lorenzolamas
@ simi1987
Das haut fast hin.
Der Befehl für die header.inc. klappt.
<?php
if ( $titel != '' )
{ echo '<title>$titel</title>'; }
else
{ echo '<title>Reserve Titel wenn keiner definiert ist</title>'; }
?>
Aber wie ist das jetzt mit der neuen Seite.
Demzufolge gebe ich jetzt auf einer x-beliebigen php Seite folgenden Befehl ein:
$titel = 'Mein Seitentitel';
Trotzdem erscheint: Reserve Titel wenn keiner definiert ist
Auf der x-beliebigen Seite habe ich allerdings auch keinen include Befehl für die header inc., da dieser ja automatisch über die index.php eingebunden ist.
die x-beliebige Seite fängt bei mir so an:
<?
echo"
<tr>
Und wie gesagt, die header.inc ist über die index.php schon eingebunden....