PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Webseite aktualisieren ohne alle Unterseiten ändern?


Clueso
04.06.2009, 16:32:20
Hallo zusammen,

ich betreibe eine Webseite mit HTML, welche ca. (+ -) 50 Unterseiten hat und es ist langsam echt nervig, wenn ich in der Navigation etwas ändere, die Änderung auf alle Unterseiten übertragen muss... noch dazu ist es sehr zeitintensiv.

Nun hab ich schon desöfteren auf anderen Seiten gesehen, dass das Grundgerüst, also Navigation, Header etc. immer gleich bleibt (nur 1x mal ändern muss) und nur der Inhalt, also quasi der Bereich in der Mitte nur geändert werden muss (hoffe ich konnte es einigermaßen erklären).

Leider weiss ich nicht wie so ein Grundgerüst mit php aufgebaut sein muss, denn ich hab es echt satt stundenlang an einer Änderung bei HTML am Rechner zu sitzen. Mit HTML kenne ich mich eigentlich (für meine Befürnisse) ausreichend aus - mit PHP minimal, aber wie ich mein Vorhaben realisieren lässt --> keine Ahnung.

Ratschläge & Tipps würde ich sehr begrüßen. :)

Gruß Clueso

Indyk
04.06.2009, 16:47:31
Hallo Clueso, willkommen im Forum.

Da gibt es mehrere Möglichkeiten, für dich wäre es wahrscheinlich am einfachsten wenn du das menü (oder warum es da gerade geht) in eine datei ablagerst und diese dann in allen gewünschten seiten einbindest.

beispiel:

<!-- seite50.php-->
<?php
include 'menu.html';
?>
<!-- ganz viel html auf seite50 -->


die menu html müsste jetzt natürlich im selben ordner liegen wie die datei in der du sie einbindest. zudem musst du deine Dateien von HTML in PHP umbenennen damit dein server erkennt da er den php Interpreter anschmeißen muss.

Na und vor allem muss dein server php drauf haben ( :

EDIT
Hier kannst ud dein wissen noch erweiter: php tutorial (http://tut.php-quake.net/de/include.html)

Clueso
04.06.2009, 16:54:08
Moment mal, mehr ist das nicht? O_O

Aber wie soll dein Code wissen, dass ich nur den Content ändern will? Also ich möchte auf der folgenden Seite nur die Mitte immer ändern, aber aktuell ist es ja so, dass jeder Punkt der Navigation (Story, Charaktere etc.) eine komplett neue HTML Seite ist (inkl. die Hauptnavigation links und alles drum und dran).

http://www.metalgearlegend.de/metalgearsolid3_snakeeater.html

Ich probiere mal deinen Code gleich aus. ;D

Danke und Gruß

Clueso

EDIT// sauber, es hat geklappt - siehe hier: http://www.metalgearlegend.de/metalgearsolid3_snakeeater.php

Aber wie gehe ich nun mit den Links in der Hauptnavigation um und mit den Links die im Content sind?

CeBe
05.06.2009, 03:19:26
Aber wie gehe ich nun mit den Links in der Hauptnavigation um und mit den Links die im Content sind?

Was genau ist da jetzt dein Problem?^^

MfG
Carsten

cortex
05.06.2009, 09:38:04
Was genau ist da jetzt dein Problem?^^

er ist überwältigt von den schier unendlichen möglichkeiten, die sich plötzlich auftun und weiss nicht, wo er nun eigentlich anfangen soll .-

mein tip: ganz vorn. unter punkt d unserer forenregeln (http://www.selfphp.de/forum/announcement.php?f=12) gibts links zu sehr guten tutorials.

cx

knight1
06.06.2009, 09:41:19
... Mit HTML kenne ich mich eigentlich (für meine Befürnisse) ausreichend aus ...

Wenn Du dich mit HTML einigermaßen auskennst, hast Du doch sicherlich schon etwas von Frames (http://de.selfhtml.org/html/frames/index.htm) gehört.

Du erstellst einfach jeweils ein Datei index.html (die müsstest Du ja schon haben), header.html und navi.html.
In die index.html kommt das Framset. In die navi.html kommt, wie der Name es schon sagt, die Navigation. und in den Rechten Frame werden deinen Inhalts-Dateien geladen.


Kai aka Knight1

rarios
06.06.2009, 10:31:54
framesets..., meinst Du das ernst?

Es ist doch nicht weiter problematisch ein dynamischen Seitenaufbau mit PHP zu realisieren. Damit fängt man doch beim PHP lernen fast schon an...

knight1
06.06.2009, 10:44:02
Das wäre ja nur eine Möglichkeit auch ohne PHP auszukommen.
Wenn er PHP lernen will, so soll er es in PHP machen.


Kai aka Knight1

cortex
06.06.2009, 10:47:14
[...] hast Du doch sicherlich schon etwas von Frames (http://de.selfhtml.org/html/frames/index.htm) gehört

aua - damit sollte man gar nicht erst anfangen. man handelt sich viele konzeptionelle probleme ein und für komplexe aufgaben reichts hinten und vorne nicht.

cx

knight1
06.06.2009, 11:04:49
Klar, wenn es komplexer werden soll dann nimmt man PHP.
Wie gesagt, ohne PHP nimmt man halt Frames.


Kai aka Knight1

cortex
06.06.2009, 11:23:30
Wie gesagt, ohne PHP nimmt man halt Frames.

eben nicht. auch wenn du möglicherweise gern damit arbeitest, sollte man im 21. jahrhundert auf frames verzichten. du stellst das so dar, als wären frames eine art alternative zur serverseitigen aufbereitung von websites...

darüber hinaus - hier ein kurzer überblick über die nachteile in der wikipedia: http://de.wikipedia.org/wiki/Frame_(HTML)#Nachteile. denke vor allem mal in ruhe über das problem der adressierung nach .-

cx

Testman
10.06.2009, 13:52:06
Hi clueso,

Wenn du Seiten includierst wie es als Beispiel gepostet wurde, solltest du darauf achten, dass du diese nicht über den HTTP als variable mitsendest.

Was du niemals machen solltest wäre ein direkter Link in Variablen
z.B: index.php?site=seite1.html&navigation=navigation1.html ...

Das ist ziemlich unsicher weil der Besucher die Vars ggf. tauschen kann durch fiese Scripte... :)

-

Da du nun aber verschiedene Navigationsstrukturen möchtest, wäre es ratsam, eine Erkennung an das Script zu hängen.

z.B. index.php?site=1

Dann Abfragen an die entsprechenden Positionen anfügen.
z.B.:
für Content:

if($POST_['site'] == "1") {
include("meincontent/seite1.html");
}

Für Navigation dann an der entsprechenden Position:

if($POST_['site'] == "1") {
include("meincontent/navigation1.html");
}

Falls du aber unabhängig von inhalt und navigation arbeiten magst würde ich dies vorschlagen:

index.php?site=1&navigation=2

dann wie oben beschrieben die Abfragen anpassen und verlinken...

if($POST_['site'] == "1") {
include("meincontent/seite1.html");
}

if($POST_['navigation'] == "2") {
include("meincontent/navigation2.html");
}

Viel Erfolg :)

CeBe
11.06.2009, 02:43:40
z.B. index.php?site=1

[...]

if($POST_['site'] == "1") {


Das müsste dann aber, wenn überhaupt
if($_POST['site'] == "1") {
heißen!
In diesem Fall aber auch nicht $_POST, sondern $_GET, weil du die Daten aus der URL abfragst.
Über die "1" lässt sich auch streiten, eine Zahl ist eigentlich eine Zahl ;-)
also:
if($_GET['site'] == 1) {

MfG
Carsten

cortex
11.06.2009, 08:21:03
Über die "1" lässt sich auch streiten, eine Zahl ist eigentlich eine Zahl

wenn du schon damit anfängst...

$_GET[ 'site' ] == 1 und $_GET[ 'site' ] == '1' liefern beide dasselbe ergebnis, da der vergleich ist nicht typsicher ist.

woher weisst du überhaupt, dass 1 als zahl und nicht als string übergeben wird?

cx

xabbuh
11.06.2009, 11:59:30
URL-Parameter kommen in $_GET immer als Zeichenketten an. Für Vergleiche ist das aufgrund des impliziten Castings allerdings in der Regel nicht relevant.

CeBe
12.06.2009, 02:55:37
Moin!

Es ging mir darum, dass wenn ich selbst Numerische Seiten-Ids definiere, diese als Integer angebe, weil es nicht sinnvoll ist Strings zu verwenden, wenn es PHP egal ist und ich gedanklich als Zahlen behandle. Gerade deshalb kann ich es ja so machen:
$_GET[ 'site' ] == 1 und $_GET[ 'site' ] == '1' liefern beide dasselbe ergebnis, da der vergleich ist nicht typsicher ist.

woher weisst du überhaupt, dass 1 als zahl und nicht als string übergeben wird?
Das ist dafür ja nicht wichtig, es geht um die Gedanken, die dahinterstehen... und ein wenig um faulheit, warum zwei "" machen, wenn es auch ohne super funzt? ;-)
Sieht zudem auch schöner aus....

URL-Parameter kommen in $_GET immer als Zeichenketten an. Für Vergleiche ist das aufgrund des impliziten Castings allerdings in der Regel nicht relevant.
Exakt desshalb wähle ich die übersichtliche Variante, aber jedem wie er mag :-)

MfG
Carsten

cortex
12.06.2009, 07:27:31
es geht um die Gedanken [...] und ein wenig um faulheit [...] Sieht zudem auch schöner aus

ideale, bequemlichkeit und ästhetik... nein, das war bei mir nicht angekommen .-

cx