Seite 1 von 1

MetaTags bei include in die index.php übernehmen

Verfasst: 30.01.2009, 11:35
von bolle1980
Hallo Leute,

ich benötige mal eure Hilfe.

Mein HP ist mit einer index.php aufgebaut, in der ist das komplette Design. In dieser index.php ist dann eine Zelle in der dann das folgende zu finden ist:

<?php

$seite=$_GET[seite];

if($seite == "register") include("$seite.php");

if ( isset($_GET['seite']) && file_exists("includes/$seite.php") ):
include("includes/$seite.php");
else:
include("includes/home.php");
endif;

?>

somit wird dadurch der Inhalt eingebaut. Links sehen dann wie folgt aus:
z.B. index.php?seite=home

Mein Problem ist nun, im Zuge der SEO Optimierung, dass die Meta Tags immer nur von der index.php ausgelesen werden. Ich möchte aber gerne die MetaTags der zu inkludierenden Seiten angezeigt haben.

Wenn ich bei google.de site:meinehomepage eingebe werden zwar alle Links angezeigt, aber immer die gleichen Metatags

Habe mich mit rewrite und ähnlichem schon befaßt, aber es kam leider nicht zur Lösung :(

Kann mir jemand Hilfe dazu geben? Bin leider kein PHP Profi Ich habe gegoogled und in PHP Foren gesucht, aber ich komme nicht weiter. Vielleicht ist auch meine Art der Verlinkung ungünstig. Meine HTML Seiten habe ich auf PHP gemacht, weil ich a) mein design mit dem Inhalt wachsen lassen wollte und b) Gallerien einfach besser damit sind.

Danke schon mal im Voraus!!!

Verfasst:
von

Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

Verfasst: 30.01.2009, 12:04
von bloddy newbie
Hallo,

du solltest darüber nachdenken, dass technische Konzept deiner Webseite zu überarbeiten. Statt wie bisher immer die Content Seite zu includen, rate ich dir statt dessen das Template in Header und Footer aufzugliedern und diese beiden Parts dann in dem jeweils aufgerufenen Script zu includieren. Das bringt folgende Vorteile:
1. Die Verlinkung der Seiten index.php?seite=bla entfällt... statt dessen wird direkt auf bla.php verlinkt
2. die Meta Tags kannst du in jedem Script individuell fest legen
3. du bist flexibler, was das Design einzelner Unterseiten angeht. Der Header Template kann von Unterseite zu Unterseite ein anderes sein...

Beispiel einer Seite:

templates/top.php

Code: Alles auswählen

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http&#58;//www.w3.org/1999/xhtml">
<head>
<title><?= isset &#40;$metaTitle&#41; ? $metaTitle &#58; "Default Title" ?></title>
<? if &#40;isset &#40;$metaKeys&#41;&#41;&#58; ?>
	<meta name="keywords" content="<?= $metaKeys; ?>" />
<? endif; ?>
<? if &#40;isset &#40;$metaDesc&#41;&#41;&#58; ?>
	<meta name="description" content="<?= $metaDesc; ?>" />
<? endif; ?>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<!--
hier dann dein ganzes CSS und Javascript Gedöns
-->
<base href="http&#58;//www.meinedomain.de" />
</head>
<body>
<div id="header">
	<!-- Header&#58; Logo, banner, was auch immer -->
</div>
<div id="menu">
	<!-- Dein Menü, falls benötigt -->
</div>
<div id="page">
	<div id="content">

templates/footer.php

Code: Alles auswählen

	</div><!-- #content -->
	<div id="sidebar">
		<!-- Sidebar rechts falls nötig, sonst raus -->
	</div>
	<div style="clear&#58; both;">&nbsp;</div>
</div><!-- #page -->

<div id="footer">
	<!-- Footer Zeuch&#58; Impressum, Copyright, Footer Links etc. php-->
</div>
</body>
</html>
bla.php

Code: Alles auswählen

<?php
// Meta Angaben oberhalb des Header Includes
// individuell für jeden Seite,
// eignet sich auch bei dynamischen Inhalten aus der Datenbank
$metaTitle = "Tolle Seite für dies und das";
$metaDesc = "Hier findest du dies und das";
$metaKeys = "Auto, bla, blub"; // würde ich jedoch weg lassen, denn damit verrätst du deinen Wettbewerbern deine Keys ;&#41;

// Datenbank Connects/ Session Zeugs, etc. pp
// exemplarisch, falls benötigt
// &#40;habe ich in diesem Beitrag nicht mit aufgeführt&#41;
include "config/header.inc.php";

// Header Template
include "templates/top.php";

// hier der eigentliche Inhalt der Seite
?>

<h1>Die tollst Seite der Welt</h1>
<p>toll toll toll ....</p>


<?php
// Footer Template
include "templates/footer.php";
?>
Beste Grüße

Verfasst: 30.01.2009, 13:17
von bolle1980
Hallo Bloody Newbie ;)

Vielen Dank für deine schnelle Antwort. Du wirst lachen, aber das hatte ich mir auch schon überlegt gehabt. Nur hatte ich bisher kein echtes PHP Grundgerüst, sodass ich damit probieren konnte.

Bisher war es immer recht einfach: Ich habe mit Photoshop ein Designt gebastelt. Dann habe ich das so zerschnitten, wie ich es haben wollte und exportiert. Diese HTML habe ich wieder so geändert, z.B. mit Tabellen und verschachtelten Tabellen, bis das Design z.B. mit den unterschiedlichen Inhalt mitwachsen konnte. Das ging mit include super :)

Auch Fotagalerien und sowas gingen darum immer prima.

Hmmm...Gibt es zumindest eine Übergangslösung, was noch auf meine "alte und aktuelle" PHP Includierung anpassbar ist? Oder erstmal alles neu machen und dann weiter probieren?

Zumindest die Übergangslösung würde ich mir wünschen, denn gerade bei kleinen Seiten bitte sich meine bisherige Art und Weise an ;)

Ich denke mir so, dass es 3 Möglichkeiten dafür gibt:
1. in dem PHP Script muss noch eine Zeile eingefügt werden, welche die Metatags der zu includierenden Datein auslesen wird und somit auch SEO freundlich ist
--> einfachste Lösung, da es einmal eingetragen wird und immer gilt ;)
2. In den Links, welche ich schreibe, kommt einfach noch was dahinter, dass es ausgelesen wird
--> etwas aufwendiger, weil man es bei jedem Link eintragen müßte
3. eine mir noch unbekannte 3. Lösung ;)

Vielen Dank für weitere Hilfe :)

Verfasst:
von

Verfasst: 30.01.2009, 16:48
von chrizz
ich schließ mich bloodynewbie an: Machs neu. Das ist wesentlich schneller als jetzt noch ne Zwischenlösung zu finden. Der Aufwand den du damit hast, steht m.E. in keinem Verhältns zum nutzen.

um Keywords aus der zu inkludieren Datei auszulesen, sollte sowas in der art funktionieren (muss dann natürlich abgearbeitet werden, bevor deine Ausgangsdatei die Meta-Tags da einbaut)

$include_source = file_get_contents($seite.php);

preg_match_all("~<meta name=\"keywords\" content=\"(.*)\"~Uis",
$include_source, $meta_keywords);
$new_meta_keywords = "";
foreach($meta_keywords as => $keyword){
$new_meta_keywords .= $keyword.",";
}

und dann brauchst du nur noch in deiner Seite ein echo $new_meta_keywords im "Content-Part" des Metag Keyword Tags ausgeben. z.B.:
name="keywords" content="<?php echo $new_meta_keywords; ?>" />

ungetestet und: Machs so wie's mein Vorredner gesagt hat... weil das nächste Problem bei dieser Variante hast du mit dem Titel, der Description uswusf...

Verfasst: 30.01.2009, 17:50
von bolle1980
Hallo chrizz,

ich gebe dir und natürlich auch Bloody Newbie vollkommen Recht :) Ich werde es so schnell wie möglich probieren und gebe sofort Feedback ;)

Erst nach 3 mal lesen und nen Freund, der mir es nochmal erklärte, hat es KLICK gemacht ;9 Wie gesagt, ich habe es so wie von mir beschrieben schon in vielen HP's gemacht und eine gewissen Blindheit stellt sich da ein. Plötzlich komplett anderes Gerüst muss erstmal von außen erknant werden und dann sieht man, oder vielmehr ich jetzt, wieder klar Bilder.

Ich hoffe, dass nicht mehr zuviele neue Stolpersteine kommen, aber ich positiv gestimmt :)

Vielen, vielen Dank euch beiden erstmal!

Ich finde, dass man so sehr gut lernen kann, wenn man eben kein oder noch kein Profi ist ;)

Bin jetzt sicher mehr hier am lesen und posten und vielleicht kann auch bald anderen helden,

danke nochmal ;)

Verfasst: 31.01.2009, 14:04
von ins0

Code: Alles auswählen

<?php

$seite=$_GET&#91;seite&#93;;

if&#40;$seite == "register"&#41; include&#40;"$seite.php"&#41;;

if &#40; isset&#40;$_GET&#91;'seite'&#93;&#41; && file_exists&#40;"includes/$seite.php"&#41; &#41;&#58;
include&#40;"includes/$seite.php"&#41;;
else&#58;
include&#40;"includes/home.php"&#41;;
endif;

?> 
ich möchte dir dringenst raten, die konzepierung deiner Website/Programmierung zu überdenken und die Sicherheit von Webanwendungen nicht außer acht zu lassen.

Code: Alles auswählen

$seite=$_GET&#91;seite&#93;;
Jede von außen eingehende Variabel immer! als böswillig erachten und kontrollieren was denn nun eigentlich von außerhalb übergeben wird.

Beispiel:

1. Ein User läd irgendeine Datei mit Schadcode bei dir auf dem Server hoch. Dabei ist es erstma egal wie er dieses nun geschaft hat, sondern sehen wir erstmal es so, das es ja durchaus möglich sein kann (zb. ein avatar upload).

Die Datei selbst kann "xy.jpg" heißen oder wie auch immer, fakt ist, es könnte sein, das in der Datei selbst keine Bildinformationen drinne stehen sondern zb. ( <?php do_iwas(); ?> )

wenn der user anschließend in der URL vorlgendes eingibt:

Code: Alles auswählen

index.php?seite=./../uploads/images/avatars/6767556_ava.jpg%00


passiert aufgrund der Programmierung das, dass Avatar mit dem Schadcode, vom Server includiert wird und der PHP Parser alles ausgeführt was im Bild steht...

in demfall würde die imaginäre funktion im Beispiel oben ausgeführt werden :)

greez ins0[/code]

Verfasst: 24.02.2009, 13:43
von bolle1980
Hallo an alle,

nach vielen Stunden voller Arbeit, ganz vielen verloren Nerven und Haaren und super tollen Support eines Freundes konnte nun endlich die Lösung geschaffen werden: Eine Homepage nach meinen Design Ideen, mit CSS und SEO Optimimierung.

Bevor es gleich wieder Kritik hagelt: Die HP habe ich erst gestern online gestellt. Der Inhalt der Seiten, die optimalsten Keywords und Beschreibungen kommen nun erst dran

Die Idee mit der Footer und Top Datei habe ich übernommen und dieses includieren komplett gestrichen. Zu dem ist nun auch das Design in CSS hinterlegt.

Danke nochmals an alle --> in diesem Thread vor allem an bloddy newbie, der mir die Basis geschaffen hat :) Das CSS Gedöns ist nun erstmal so bezwungen, wie es sein sollte, perfekt ist es sicher nicht, aber ein tolle Basis :)