Inhalte in div's laden
AlMueller
- html
Wie kann man in ein div - Element eine bestimmte html-Datei laden, je nach dem, welcher Punkt im Menü ausgewählt wurde? Ob in PHP oder in JS, egal. MySQL unterstüzt mein Server auch.
Mein versuch:
http://www.jpcm.de/efde/index.htm (das Frame soll dann durch ein div ersetzt werden, in was die Inhalte geladen werden sollen).
Danke.
Hi,
Wie kann man in ein div - Element eine bestimmte html-Datei laden,
gar nicht. Immer noch nicht. Frames in <div> umzubenennen ändert übrigens nichts an den Nachteilen von Frames.
Ob in PHP oder in JS, egal. MySQL unterstüzt mein Server auch.
Mit serverseitigen Mitteln kannst Du HTML-Fragmente(!) einbinden. Es wird aber weiterhin das komplette Dokument vom Server an den Client geschickt. Ein Datenspeicher wie z.B. ein DBMS nützt Dir bei dem Vorgang der Einbindung exakt gar nichts, und clientseitige Mittel wie JavaScript scheiden technisch aus. Wenn Dir nicht klar ist, wie man mit PHP Dateien einbindet, solltest Du von etwas dermaßen Gefährlichen wie PHP unter allen Umständen die Finger lassen, bis Du ein Grundverständnis der Programmierung sowie der protokollarischen Architektur erworben hast.
Cheatah
Hi,
[...] bis Du ein Grundverständnis der Programmierung sowie der protokollarischen Architektur erworben hast.
Google: "protokollarische Architektur" -> 0 Resultate.
;-)
Gruesse, Joachim
hi,
[...] bis Du ein Grundverständnis der Programmierung sowie der protokollarischen Architektur erworben hast.
Google: "protokollarische Architektur" -> 0 Resultate.
Zum Glück gibt es für "Hintern abwischen" genügend Treffer - sonst könnten das vermutlich auch noch mehr Leute nicht alleine ...
;-)
Gleichfalls.
Aber das man sich ein Grundverständnis eines komplexeren Themas nicht immer durch simples googlen nach einem abstrakten Namen für dieses erwerben kann, sollte klar sein.
gruß,
wahsaga
Danke. Passwörter oder geheime Dateien verwende ich diesmal nicht. Also besteht keine allzugroße Gefahr.
Ich habe das Frame gelöscht und statt dessen ein include eingesetzt. Die Testseite wird sehr gut angezeigt.
Das war ein statisches include, wie könnte ich machen, dass an einem bestimmten Ort der Inhalt eingesetzt wird, also nicht z.B. in der navbox, sondern in de Mitte, wenn auf eine Menüpunkt geklickt wird?
Hallo AlMuller.
Das war ein statisches include,
Also hast du hierfür natürlich readfile genutzt. Oder?
wie könnte ich machen, dass an einem bestimmten Ort der Inhalt eingesetzt wird, also nicht z.B. in der navbox, sondern in de Mitte, wenn auf eine Menüpunkt geklickt wird?
Lasse anhand des handelsüblichen Request-Strings (alles nach dem „?“) über $_GET die jeweiligen Inhalte ausgeben. Überprüfe unbedingt die Existenz der einbindenden Datei (auch wenn es bei reafile praktisch kein Risiko gibt).
Falls du dich auf die Optik bezogen hast, solltest du dies mit CSS vornehmen.
Einen schönen Donnerstag noch.
Gruß, Ashura
Also hast du hierfür natürlich readfile genutzt. Oder?
Wofür ist das readfile notwendig? Funktioniert doch auch mit include.
Ich kenne mich in PHP nicht gut aus.
Wie ist dei Syntax von $_get und readfile (bsp.)? Ich habe mal das so versucht:
<?php
function f2 ($lnk){
switch ($lnk) {
case "s1":
include("s1.htm");
break;
case "s2":
include("s2.htm");
break;
case "s3":
include("s3.htm");
break;
case "ld":
include("s1.htm");
break;
}
}
?>
</head>
<body onLoad="f2(ld)">
<p id="Fusszeile" align="center">Eine Frage der Ehre</p>
<ul id="Navigation">
<li onClick="f2(s1)">S1</li>
<li onClick="f2(s2)">S2</li>
<li onClick="f2(s3)">S3</li>
Bis auf's onload hat das nicht geklappt. ich arbeite offenbar mit PHP wie mit JS. Bitte um Hilfe. Vielleicht mit $_get? Wie?
hi,
Bis auf's onload hat das nicht geklappt. ich arbeite offenbar mit PHP wie mit JS.
So geht das natürlich nicht. (*seufz*, dass man das immmer wieder erklären muss ...)
PHP läuft serverseitig, halt also seine Arbeit schon längst beendet, wenn die Seite am Client angekommen ist - und erst da wird (ggf.) Javascript ausgeführt.
Abgesehen davon ist es unsinnig anzunehmen, dass die Erstellung einer Funktion in PHP bedeuten würde, dass man anschließend mit dem dabei benutzen Funtkionsnamen mit Javascript diese Funktion aufrufen könnte.
PHP und Javascript sind erstens zwei vollkommen verschiedene Sprachen, und zweitens (noch wichtiger) laufen sie an vollkommen unterschiedlichen Orten ab - bitte merken!
Wenn du eine PHP-Funktion erstellt hast, dann rufe sie auch mit PHP auf.
gruß,
wahsaga
Wow. So viel Hilfe hätte ich nicht erwartet, danke!
Das mit dem Unterschied PHP zu JS hab ich verstanden.
Ich habe es mit $_GET ausprobiert, es geht sehr gut, bloß nur mit unformatiertem text.
Als ich versuchte mit echo einen mit css formatierten code zu schreiben zeigte es einen Fehler an (unexepted T_ECHO). Was ist da denn falsch?
switch ($_GET['seite']) {
case "s1":
$m2= file_get_contents("s1.htm")
echo "<div id="Inhalt">$m2</div>"
break;
in den Links dann mit index.htm?seite=s3, aber das ging ohne Probleme.
Hallo,
Als ich versuchte mit echo einen mit css formatierten code zu schreiben zeigte es einen Fehler an (unexepted T_ECHO). Was ist da denn falsch?
echo "<div id="Inhalt">$m2</div>"
Wieviele Anführungszeichen hast du hier?
Wo fängt also der String an, und wo hört er auf?
Und was macht der PHP-Parser mit dem "Müll", der nach dem vermeintlichen Stringende kommt?
Du kommst schon noch dahinter. ;-)
Tipp: Es gibt verschiedene Typen von Anführungszeichen, in manchen Fällen sind sie austauschbar. Und man kann einzelne Zeichen mit einem vorangestellten '' maskieren...
So long,
Martin
Hallo AlMüller.
Wofür ist das readfile notwendig? Funktioniert doch auch mit include.
Ich kenne mich in PHP nicht gut aus.
Dann solltest du dies ändern.
Die Funktion readfile und include haben vollkommen verschiedene Auswirkungen.
Folgende Datei „foo.php“ wird jeweils mit der einen und mit der anderen Funktion eingebunden:
<?php
echo 'Foo Bar';
?>
Die Ausgabe bei include lautet:
Foo Bar
Bei readfile jedoch:
<?php
echo 'Foo Bar';
?>
Lies dir einfach die Handbuchseiten zu den jeweiligen Funktionen durch.
Wie ist dei Syntax von $_get und readfile (bsp.)?
Die Variable $_get ist nicht (systemintern) deklariert. Du meinstest $_GET. Die Groß- und Kleinschreibung ist bei Variablen, Funktionen und Konstanten wichtig. In sehr vielen Sprachen.
Ich habe mal das so versucht:
<?php
function f2 ($lnk){
switch ($lnk) {
case "s1":
include("s1.htm");
break;
case "s2":
include("s2.htm");
break;
case "s3":
include("s3.htm");
break;case "ld":
include("s1.htm");
break;
}}
?>
Für den Anfang vielleicht noch ausreichend. Zumindest gehst du kein Risiko ein, in dem du alle übergebenen Werte blind weiterverarbeitest. Die richtigen Ansätze sind schon da, es fehlt nur am Verständnis der zu Grunde liegenden Techniken.
> ~~~html
</head>
> <body onLoad="f2(ld)">
> <p id="Fusszeile" align="center">Eine Frage der Ehre</p>
Die Fußzeile direkt am Anfang? Etwas merkwürdig.
Du kannst zudem sämtliche Styleangaben mit CSS regeln.
~~~html
<ul id="Navigation">
<li onClick="f2(s1)">S1</li>
<li onClick="f2(s2)">S2</li>
<li onClick="f2(s3)">S3</li>
Wie soll jemand, dem JS nicht zur Verfügung steht, diesen Links folgen?
> Bis auf's onload hat das nicht geklappt. ich arbeite offenbar mit PHP wie mit JS. Bitte um Hilfe. Vielleicht mit $\_get? Wie?
Dein Problem ist wie gesagt das Verständnis.
Momentan wirkt es, als könntest du client- und serverseitige Techniken noch nicht voneinander unterscheiden.
JavaScript wird (üblicherweise) vom Client interpretiert und ausgeführt.
Der PHP-Prozessor dagegen läuft serverseitig und verarbeitet Scripte und Dateien dementsprechend auch dort.
Die ausgegebenen Informationen / Daten lassen keine Rückschlüsse auf eine serverseitige Technik zu, wenn der Autor dies nicht absichtlich bezweckt hat.
Deine PHP-Funktion wird also schon ausgeführt, noch bevor ein Dokument beim Client angekommen ist. Du musst also hier das jeweilige Dokument für die Ausgabe vorbereiten.
Für's Erste dürfte es genügen, wenn du deine Funktion wie gehabt festlegst und sie an der jeweiligen Stelle im Dokument, wo letztendlich die jeweilige Datei eingebunden werden soll, mit den erforderlichen Parametern (hier dann wohl $\_GET) aufzurufen.
Deine Links solltest du dementsprechend anpassen. Die einfachste Form sieht wie folgt aus:
dein-script.php?seite=foo
Auf den Wert von „seite“ kannst du damit über $\_GET['seite'] zugreifen.
(Der Scriptname „dein-script“, der Parameter „seite“ und sein Wert „foo“ kannst du natürlich frei selbst festlegen. „foo“ entspricht damit deinen „s1“ bis „s3“)
Einen schönen Donnerstag noch.
Gruß, Ashura
--
[The End of an Era...](http://www.nightwish.com/english/lettertotarjaen.html)
Hiho!
Wenn Dir nicht klar ist, wie man mit PHP Dateien einbindet, solltest Du von etwas dermaßen Gefährlichen wie PHP unter allen Umständen die Finger lassen, ...
Also dass man mit PHP mehr riskiert als ohne ist ja klar, aber ich würde es nicht als "dermaßen gefährlich" bezeichnen.
Mit wenig Maßnahmen ist es doch schon möglich, genügend sicherheit in eine PHP-verwendende Homepage zu bringen, isn't it?
werbeklaus
Hallo,
Wenn Dir nicht klar ist, wie man mit PHP Dateien einbindet, solltest Du von etwas dermaßen Gefährlichen wie PHP unter allen Umständen die Finger lassen, ...
Also dass man mit PHP mehr riskiert als ohne ist ja klar,
Wieso?
bydey
Hallo,
Also dass man mit PHP mehr riskiert als ohne ist ja klar,
Wieso?
Äh, weil man ohne viel weniger direkte Angriffsfläche liefert. Sobald ich PHP verwende, muss ich aufpassen, keine direkt vom User stammenden Variablen sofort zu verwenden (Bspw in includes). Wenn Variablen zu wenig geprüft werden, wirds schon gefährlich.
werbeklaus
Hallo,
Äh, weil man ohne viel weniger direkte Angriffsfläche liefert. Sobald ich PHP verwende, muss ich aufpassen, keine direkt vom User stammenden Variablen sofort zu verwenden (Bspw in includes). Wenn Variablen zu wenig geprüft werden, wirds schon gefährlich.
Da es sich hier lt. Beschreibung um einen Lesezugriff handelt sehe ich nicht die Gefahr.
Wenn der User manipuliert, manipuliert er seine Ausgabe. Ich kann mir nicht so recht vorstellen in wie weit das gefährlich ist!?
bydey
hi,
Da es sich hier lt. Beschreibung um einen Lesezugriff handelt sehe ich nicht die Gefahr.
Und das ist eine der Gefahren, vor denen Cheatah warnt: Das Anfänger oftmals gar nicht abschätzen können, wo potentielle Gefahren liegen, und wie "leicht" es PHP durch den simplen Einstieg macht, diesen zu erliegen.
Wenn der User manipuliert, manipuliert er seine Ausgabe. Ich kann mir nicht so recht vorstellen in wie weit das gefährlich ist!?
Wenn er z.b. einen Parameter, der angibt _welcher_ Dateiinhalt auszugeben ist, derart manipuliert, dass er plötzlich "geheime" Dateien mit Passwörtern o.ä. angezeigt bekommt (die er ansonsten über HTTP überhaupt nicht direkt hätte erreichen können und sollen) ...?
gruß,
wahsaga
Hallo,
Und das ist eine der Gefahren, vor denen Cheatah warnt: Das Anfänger oftmals gar nicht abschätzen können, wo potentielle Gefahren liegen, und wie "leicht" es PHP durch den simplen Einstieg macht, diesen zu erliegen.
ich sehe ein, dass Anfängern von Scripting abgeraten werden sollte, allein weil die Komplexität in Frust enden kann.
Erst mal sauber html + css und danach den neächsthöheren Level
Wenn der User manipuliert, manipuliert er seine Ausgabe. Ich kann mir nicht so recht vorstellen in wie weit das gefährlich ist!?
Wenn er z.b. einen Parameter, der angibt _welcher_ Dateiinhalt auszugeben ist, derart manipuliert, dass er plötzlich "geheime" Dateien mit Passwörtern o.ä. angezeigt bekommt (die er ansonsten über HTTP überhaupt nicht direkt hätte erreichen können und sollen) ...?
Davon ist aber bei dem Ausgangsposting nicht auszugehen
in ein div - Element eine bestimmte html-Datei
wer hier geheime Daten hat, dem ist wohl auch sonst nicht zu helfen oder?
bydey
Hallo dey.
Davon ist aber bei dem Ausgangsposting nicht auszugehen
in ein div - Element eine bestimmte html-Datei
wer hier geheime Daten hat, dem ist wohl auch sonst nicht zu helfen oder?
Du kennst Dateien mit sensiblen Inhalten, wie z. B. /etc/passwd?
Einen schönen Mittwoch noch.
Gruß, Ashura
Hallo AlMueller ;~)
Oder wenn Du es mit JavaScript machen willst:
Änder den Source-String des iFrames bei Menü-klick.
Mit freundlichen Grüßen
Stefano Albrecht
Hallo AlMueller ;~)
Oder mit der PHP-Funktion include(); oder einer der zahlreichen Mutationen.
Mit freundlichen Grüßen
Stefano Albrecht
Hallo Stefano.
Oder mit der PHP-Funktion include(); oder einer der zahlreichen Mutationen.
Warum immer gleich zu include raten?
Wenn kein dynamischer (mit Scriptbereichen gespickter) Inhalt eingelesen werden muss, bieten sich unter Anderem file_get_contents und readfile hier eher an.
Einen schönen Mittwoch noch.
Gruß, Ashura
Hallo,
Wie kann man in ein div - Element eine bestimmte html-Datei laden, je nach dem, welcher Punkt im Menü ausgewählt wurde? Ob in PHP oder in JS, egal. MySQL unterstüzt mein Server auch.
Netscape 4 könnte da vielleicht noch mithalten :-)
Serverseitig dürfte vielleicht schon SSI ausreichen.
Grüsse
Cyx23
Hi,
Wie kann man in ein div - Element eine bestimmte html-Datei laden
Gar nicht. Es sei denn Du holst Dir via Ajax einen kompletten String (natuerlich ohne head/body etc.) und schreibst den mit innerHTML in ein Div. Damit bist Du natuerlich Javascript-abhaengig.
Gruesse, Joachim