Benutzername:

Passwort:


Login nur für den Webpagemaker, nicht für den Vorlagen Download!


Webpagemaker Login

Seiten mit php aufbauen



Einen Kommentar schreiben

Framelose Seiten - sauber aufgebaut - bringen auf Dauer enorme Vorteile gegenüber Framesets. Im CSS Grundkurs lernt man wie eine Seite sauber aufgebaut ist, dieses Beispiel kann hergenommen werden und mit php Codeschnipseln erweitert werden. Schon hat man eine Seite, die ohne Tabellen, Frames aufgebaut ist, sondern Suchmaschinenfreundlich mit CSS und darüber hinaus mit Inhalt befüllt werden kann per php.
Nachstehend nun einige Varianten wie man Frames umgehen kann.
Seiten ohne Frames haben den extremen Vorteil, dass man sie viel individueller designen kann!
Leider bergen Seiten ohne Frames auch folgendes Problem:
Angenommen man hat 20 Seiten und 20 Links zu diesen Seiten. Erstellt man nun nur eine neue Seite, müsste man auf den anderen 20 Seiten den Link zu der neuen Seite händisch hinzufügen.
Muss man aber eben nicht. Anstatt alle Links händisch einzutragen schreibt man sie in der gewünschten Formatierung in eine Textdatei.

 Die Hyperlinks 

<a href="seite1.php">hier gehts zur seite 1!</a>
<a href="seite2.php">hier gehts zur seite 2!</a>



Diese Textdatei speichert man dann zum Beispiel als "links.inc" (Extension "inc" damit man weiß, dass es sich um eine include handelt!)
Auf den gesamten Seiten, muss jetzt in der Tabelle, in der die Links stehen sollen jetzt nur folgendes eingefügt werden:

 Der php Code 
 
<?php
	include("links.inc");
?>



Dann holen sich die Seiten ihre Links aus der Include-Datei!
Voraussetzung dafür ist, dass man seine Seiten nicht als HTM oder HTML abspeichert, sondern als PHP (Beispiel: "seite.php") abspeichern muss!
Will man die Include-Datei in einen Ordner geben muss man aufpassen, da je nach Server bestimmte Ordnernamen vergeben sind - gefährlich wären hierfür z.B. der Name "Includes" - dieser würde auf einem Windowsserver zB. nicht funktionieren, da der Ordner in der Serverkonfiguration gesucht würde...
Ansonsten erfolgt die Eingabe ganz normal:

 Der php Code 
 
<?php
	include("ordner/links.inc");
?>



Es gibt nun die Möglichkeit statt 20 Seiten mit dem gleichen Design anzulegen und die Links zu includen, den Spieß einfach umzudrehen, und sich damit noch mehr Zeit und Nerven zu sparen.

Konkret sieht das so aus, dass es eine Index-Seite gibt die man designt und in der man die Links hat, diesmal wird der Inhalt der Seite includet und zwar je nachdem welcher Inhalt über die Links angefordert wird.

Wie mach ich das jetzt?
...es ist eigentlich ganz einfach:

An der stelle wo der Inhalt includet werden soll kommt folgendes Skript hin:

 Der php Code 
 
<?php 
    if (!empty($HTTP_GET_VARS['action'])) $action = $HTTP_GET_VARS['action']; 
    else $action = "standardinhalt.inc"; // Standard falls keine Auswahl 
    include ($action); 
?>



$action ist die Variable die die Linkdaten aufnimmt und somit bestimmt was gezeigt wird.
standardinhalt.inc ist praktisch die Home-Seite, also die Seite die standardgemäß beim ersten Besuch der Webpage angezeigt wird!
Die Endung .inc wird benutzt, um "echte Seiten" von den Includes zu unterscheiden, ihr könnt sie jedoch auch .html oder .htm oder .php, also ganz egal, enden lassen! Ihr dürft allerdings keinen Head- oder Body-Tag mehr angeben sondern nur den Inhalt, weil ihr ja bereits einen Head und einen Body in der bestehenden Seite habt, ihr includet ja nur den Inhalt!

So, wie haben jetzt eure Links beispielsweise auszusehen?

angenommen eure Seite heißt index.php

 Der Linkaufbau in der Htmlseite 
 
<a href="index.php?action=standardinhalt.inc">Home</a>
<a href="index.php?action=news.inc">News</a>
<a href="index.php?action=usw.inc">Und so weiter</a>



Ist also ganz einfach!

Die Namen/Bezeichnungen "$action" und "standardinhalt.inc" sind variabel und können beliebig ersetzt werden wobei bei "$action" der "$" für das Kennzeichnen der Variable bleiben muss, und die Links bei Abänderung der Variable angepasst werden müssen!

Die zweite Variante sieht ähnlich aus und wird mit dem switch Befehl gesteuert.
...das ganze läuft ähnlich wie beim letzen Skript ab:

 Der php Code 
 
<?php 
    $action = ""; 
    if(isset($HTTP_GET_VARS['action'])){$action = $HTTP_GET_VARS['action'];}
    switch($action){ 
        case "01": include("home.inc"); break; 
        case "news": include("news.inc"); break; 
        default: include("home.inc"); break; 
    } 
?>



das wird wieder in dem Teil eingefügt, in dem der Inhalt includet werden soll...

die Links dazu sehen so aus:

 Der Linkaufbau der Htmlseite 
 
<a href="index.php?action=01">HOME</a>
<a href="index.php?action=02">NEWS</a>



...man sieht also in der Adressleiste nichtmehr den Include selbst, sondern nur seine Nummer oder seinen Namen...
...das ist der Unterschied zum vorigen Skript.

Weiter führend zu diesem Artikel gibt es noch : Framelose Seiten mit Rewrite



Über Feedback freue ich mich, entweder im Forum oder hier gleich nachstehend als Kommentar.

Zum Abschluss noch das übliche Rechtliche: Wer diesen Text anbieten oder kopieren möchte, kann gern auf diese Seiten verlinken oder den Text kopieren und mit Quellenangabe verlinken.
Liebe Grüße Rainer / pixelmania.at

 Den Artikel verlinken:  <a href="http://www.pixelmania.at/framelose_seiten.php" title="Framelose Seiten mit PHP von pixelmania.at">Framelose Seiten mit PHP von pixelmania.at</a>



Burder_lal am 11.9.2009 | 13:18


nur ist fraglich was ihm das bringen soll wenn er sich selbst auf google weiterleitet?
auf jeden anderen ausser sich selbst, hat das ja keine auswirkungen.
oder versteh ich dich falsch?

Nun denn , wenn er ein PHP-Script included, was passiert dann? Dann sollte dieses doch auf dem Server der Webseite ausgefuehrt werden.Wenn ich mich korrekt erinnere ist dass dann eine Remot File Inclusion, RFI
http://de.wikipedia.org/wiki/Remote_File_Inclusion
My 2 Cents^^


rainer am 28.2.2009 | 0:36


Vollkommen egal als was du deine seiten speicherst, html, php, phtml, shtml, xxx
dein server muss es parsen können und muss wissen was er mit der jeweiligen datei zu machen hat.
lg rainer


Paulus am 10.12.2008 | 11:47


Du hast das geschafft, was ein 1000 Seiten Buch mir nicht erklären konnte. Jetzt weiß ich endlich wo mein Fehler war mit dem includen von Dateien. Das die Header gelöscht werden muss beim includen war mir nicht bewusst und erklärt das Ergebnis :-)
Wenn ich mich recht entsinne, habe ich gelesen, dass die Datei, die includet wird, grundsätzlich im HTML Format ausgegeben wird, daher ist es doch wurscht ob ich die Datei als Text, html oder php abspeicher?!

Gruß

Michael


rainer am 2.6.2008 | 17:13


Ja, den url könnte der user tatsächlich in seiner adresszeile manipulieren, da hast recht.
nur ist fraglich was ihm das bringen soll wenn er sich selbst auf google weiterleitet?
auf jeden anderen ausser sich selbst, hat das ja keine auswirkungen.
oder versteh ich dich falsch?


Schnipper am 31.5.2008 | 13:20


sorry, aber so ist das sehr unsicher^^
Wenn man jetzt in den link index.php?action=http://google.de reinschreibt kommt google, so kann man auch javascript einbinden oder sonstige schmierereien... seeeeeeehr unsicher...

MFG [color=orange]Schnipper[/color]


rainer am 30.10.2007 | 21:09


sehr gut, danke für denn hinweis :D
so werden die kommentare wenigsten endlich genutzt.


iveo am 30.10.2007 | 10:18


öhm mein Kommentar wurde abgeschnitten.... hier gehts weiter:
also - will man in PHP5 auf die alten PHP4 Arrays zugreifen muss in der php.ini die Option register_long_arrays = On gesetzt sein - nur zur Info ;)


iveo am 30.10.2007 | 10:16


hey rainer - gut dass du da so ein schönes tutorial draus gmacht hast - man muss nur auf eine Kleinigkeit hinweisen:

die lange Version $HTTP_GET_VARS wird in Zeiten von PHP5 nicht mehr standardmäßig unterstützt - normal wird nurmehr $_GET verwende


Gerd am 7.9.2007 | 21:28


interessant mit diesem "links.inc" ... wusste ich noch garnicht ...
Hier kannst Du Deinen Kommentar zu diesem Artikel schreiben.caution