<div> Container mit Inhalt füllen??

ben-pen

ben-pen

Aktives Mitglied
Thread Starter
Dabei seit
26.08.2005
Beiträge
1.500
Reaktionspunkte
9
Hallo,

vorab hier eine Beispielseite, die ich gefunden habe: http://www.provelo-lenzburg.ch/?id=1

Der Content der Eite ist ja ein div, welcher per obigen Menü mit Inhalt gefüllt wird. Im Quelltext des Menülinks steht dann "href=?id=1"

Aber woher nimmt er den Inhalt, es ist ja kein eindeutiger Verweiß auf eine Datei??

Kann mir da jemand kurz helfen und mir einen Denkanstoß geben?

Danke
BP
 
Zuletzt bearbeitet:
Liegt der Inhalt von "id=2" in einer css datei? Oder wo?
 
in einem Skript das abhängig von der ID eine HTML-Seite generiert!
Das nennt sich dynamische Webseite!
 
das wird per php dynamisch befüllt.
 
Ah. Dankeschön.

Kurz eine etwas andere Frage:
Kann man denn ein div genauso behandeln wie ein frame? Also eine html-datei ohne php reinladen?
 
Warum lasse ich immer 100 Freds in meinem Browser offen, klicke alle durch und bemerke am Ende, dass ich eh wieder zu spät bin :D

However. Das wichtigste wurde gesagt, da da PHP-Code nach dem "parsen" (so war der Begriff doch oder :D) nicht mehr zu sehen ist kannste lange danach suchen ;)
 
Ah. Dankeschön.

Kurz eine etwas andere Frage:
Kann man denn ein div genauso behandeln wie ein frame? Also eine html-datei ohne php reinladen?

Nein, du kannst nur HTML-Code in der gleichen Datei darin platzieren.
Wenn du eine andere HTML-Datei einbinden möchtest, musst du JavaScript oder PHP nutzen.
 
Danke, dann versuch ich das mal
 
Sagen wir so, um ein DIV (oder anderes HTML-Element) in etw wie einen Frame zu behandeln (also den Inhalt wechseln, ohne dass die gesamte Datei neu geladen wird), brauchst Du an und für sich nur JavaScript.
'Einfach' macht man es sich da mit der Eigenschaft 'innerHTML' von HTML-Elementen, damit kann man direkt den Inhalt eines HTML-Elements lesen und schreiben.

Eleganter und näher an der Art, wie HTML 'arbeitet' sind jedoch die ganzen Methoden um das 'node'-Element herum. Damit greifst Du statt auf den Quelltext auf den DOM-Baum zu, was, wenn es etwas komplexer wird, einfacher wird, damit zu arbeiten.

Woher Du den Inhalt des Elements nimmst, welches Du verändern willst, bleibt Dir überlassen.
Du kannst den Inhalt direkt in den Quelltext als JavaScript-Variablen, in ausgeblendete HTML-Elemente schreiben.
Oder in ausgelagerte Feste Text/HTML-Dateien, oder von einem Script generieren lassen.

Aber sobald der Inhalt nicht mehr in der eigenen Datei steht (von der Möglichkeit, JavaScript und CSS auszulagern abgesehen), wird es etwas komplexer, bzw. interessanter. Weil dann bewegen wir uns auf das zu, was heutzutage unter 'AJAX' verstanden wird. Und dann geht's mal so richtig ab, was die Möglichkeiten und den Blödsinn angeht, den man anstellen kann :D

Für den Anfang empfehle ich aber:
http://de.selfhtml.org

Da steht, bis auf PHP, alles drin, was Du brauchst. HTML, CSS, JavaScript und DHTML.
Viel Spaß damit :)
 
Naja, ich werds mit php versuchen.

Was spricht eigentlich gegen ein Frame??
 
es ist unelegant Frames zu nutzen, weil man statt einem Elementbaum einer Seite zwei unabhängige Entitäten ( oder mehr) verwalten muss. Seit CSS ist sowas auch für die Gestaltung nicht mehr nötig. Da Frames es Suchmaschinen schwer machen Seiten vernünftig zu indizieren hat man einen weiteren Grund darauf zu verzichten.

Frames sind heute einfach schlicht unnötig und eher ein Problem als eine Lösung!
 
  • Gefällt mir
Reaktionen: ben-pen
Was spricht eigentlich gegen ein Frame??
Tab-Browsing nur eingeschränkt möglich. Verlinkung auf eine Seite auch so gut wie unmöglich. Eigentlich gibt es nichts was bei einer normalen Seite *für* Frames spricht.
 
Meine erste Lösung:

Code:
<!-- Navigation --> 
<div> 
<a href="index.php?site=home">Home</a> 
<a href="index.php?site=pl100">Impressum</a> 
</div> 
<!-- div mit inhalt --> 
<div> 
<?php 
$site = isset($_GET["site"]) ? $_GET["site"] : "home"; 
include($site.".php"); 
?> 
</div>


Spricht irgendwas gegen den Code?
 
Technisch korrekt, aber was die Sicherheit angeht würd ich da nochmal drübergucken.

Weil so kann ich ohne Probleme jede beliebige PHP-Datei includieren, welche ohne Prüfung ausgeführt wird.
Und wenn ich mich nicht irre, sogar PHP-Dateien von fremden Seiten.
Ausgeführt werden die aber dennoch so, als würden sie bei Dir liegen (und könnten theoretisch sogar alles löschen ;))
Aber zu 100% bin ich mir da jetzt nicht sicher, ob auch komplett fremde Scripts gehen.


Bau da auf jeden Fall noch eine Überprüfung für die Gültigen Seiten mit rein.
Am einfachsten wird wohl ein Array sein, in das Du die gültigen Eingaben schreibst, und dann mit 'in_array()' überprüfst, ob der Wert in $site im Array ist. Wenn ja, soll er weitermachen, wenn nein, soll er ne Fehlereldung/die Startseite ausgeben.

Grundsätzlich gilt: Traue keiner einzigen Eingabe vom Benutzer (das betrift auch die URL)! Wenn Du die Anzahl der möglichen Antworten eingrenzen kannst, tu es auch!
 
  • Gefällt mir
Reaktionen: ben-pen
Meine erste Lösung:

Code:
<!-- Navigation --> 
<div> 
<a href="index.php?site=home">Home</a> 
<a href="index.php?site=pl100">Impressum</a> 
</div> 
<!-- div mit inhalt --> 
<div> 
<?php 
$site = isset($_GET["site"]) ? $_GET["site"] : "home"; 
include($site.".php"); 
?> 
</div>


Spricht irgendwas gegen den Code?

Ich stopfe das mit:

Code:
<?
echo $content; 
?>

Aus einer Datei rein. Du musst dann in der Datei aus der es kommt, die entsprechenden Menüpunkte definieren und dann wird je nach dem was angeklickt wurde, der entsprechende Content geladen...
 
Das mit der Sicherheit ist dann wirklich ein Problem.
Hab gerade das hier bei html.de gefunden:

Code:
<?php 
$section = $_GET['section'];
?>
<div id="Navigation">
<a href="index2.php?section=home">Home</a>
<a href="index2.php?section=pl100">Impressum</a>
</div>
<div id="content">
<?php
if($section == "home") include "home.html";
if($section == "pl100") include "pl100.html";
?>
</div>


Das wäre sicherer, oder?
 
Dann kann doch nur auf die Seiten zugegriffen werden, die included sind, oder>?
 
Woher weißt Du, dass es PHP ist?
Das kann jede beliebige Programmiersprache sein, die Textausgaben erzeugen kann. Sogar ein Shellscript oder etwa AppleScript sind möglich.

Ein Whois abfrage auf den domainnamen ergab dass die nameserver von Metanet sind. Metanet ist ein Hostingprovider der schweiz. Wenn man da die angebote für Webhosting anschaut, wird da PHP angepriesen. Es liegt nahe dass das PHP ist.
 
Nicht dass es wichtig wäre, aber das ist eine reine Vermutung ;).
Es muss noch nicht einmal zwingend eine dynamische Seite sein.
 
Zurück
Oben Unten