kostenloser Webspace werbefrei: lima-city


div-inhalt ohne php/javascript ändern

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    tangoal

    Kostenloser Webspace von tangoal

    tangoal hat kostenlosen Webspace.

    Hallo Leute,

    eine Frage zu div-containern.

    Wenn man Frames (bzw. iFrames) verwendet, dann kann man per "href" und "target" den
    inhalt eines Frames ändern, indem eine andere Datei angezeigt wird.

    Kann man das mit div-containern auch? nach meiner bisherigen google-suche habe ich
    nur antworten gefunden, die sagen, dass man das nur mit php oder javascript hinkriegt.
    will ich aber beides erstmal nicht dafür nutzen. mit php könnte ich mich schon irgendwann
    anfreunden, javascript jedoch nicht.

    Gibt es nicht trotzdem eine Lösung, die rein auf HTML bzw. CSS basiert?

    Danke im Voraus für hilfreiche Antworten ^^
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Da HTML eine reine Datensprache ist und daher nicht dynamisch geht es definitiv nicht. Du wirst um die Verwendung von JavaScript, PHP oder ähnlichem nicht herumkommen...
  4. Autor dieses Themas

    tangoal

    Kostenloser Webspace von tangoal

    tangoal hat kostenlosen Webspace.

    danke für die schnelle antwort.

    dustboy schrieb: Da HTML eine reine Datensprache ist und daher nicht dynamisch geht es definitiv nicht. Du wirst um die Verwendung von JavaScript, PHP oder ähnlichem nicht herumkommen...


    ok, das hab ich befürchtet... :-)

    und auf Frames will ich absolut nicht zurückgreifen, das wäre ja zu leicht... :-)
  5. Per PHP ist es auch nicht wirklich schwierig. Es reicht wenn das folgendermaßen aussieht:

    <div><?php include "dateiname.php"; ?></div>
    Das einzige was du beachten musst ist, dass alle Dateien, die PHP-Code enthalten auf .php enden müssen ;-)
  6. Autor dieses Themas

    tangoal

    Kostenloser Webspace von tangoal

    tangoal hat kostenlosen Webspace.

    ich hab mir gerade xampp runtergeladen und installiert. damit kann man ja nen apache server installieren, der
    auch so einen php-interpreter hat. hab auch gerade mein ersters "Hallo Welt"-Skript geschrieben :-)

    Achso, zu deinem Beispiel:

    dustboy schrieb: Per PHP ist es auch nicht wirklich schwierig. Es reicht wenn das folgendermaßen aussieht:

    <div><?php include "dateiname.php"; ?></div>
    Das einzige was du beachten musst ist, dass alle Dateien, die PHP-Code enthalten auf .php enden müssen ;-)


    wo wird das denn hingeschrieben? bzw. was macht diese zeile genau? die angegebene "dateiname.php"-Datei wird
    an dieser Stelle einfach ausgeführt und liefert damit HTML-Code an diese Stelle?
  7. Genau. Das funktioniert dann im Prinzip wie ein frame (was der browser anzeigen würde, würdest du die Datei direkt aufrufen wird dort eingefügt).
    Das kannst du einfach irgendwo in deine HTML-Datei reinschreiben.
  8. Autor dieses Themas

    tangoal

    Kostenloser Webspace von tangoal

    tangoal hat kostenlosen Webspace.

    ok. wenn ich jetzt zum Beispiel zwei Divs habe, die man quasi als Navigationsbuttons benutzt und eine Div, die
    für das Anzeigen eines Inhaltstextes verwendet wird:

    wo muss ich denn die php-Datei einbinden, damit ich bei klick auf eines der beiden "Navigations-Div" dann
    der gewünschte Inhaltstext angezeigt wird?

    Muss ich auf ein php-Skript verweisen, das dann den kompletten Seitenaufbau nochmal durchführt? Oder
    kann ich nur die stelle in dem HTML-Code ändern lassen, die zum Anzeigen des Textes notwendig ist?
  9. Die komplette seite muss neu geladen werden und du musst ihr irgendwie mitteilen, welche datei sie einbinden soll. Das könntest du beispielsweise so machen:

    Folgendes machst du in die HTML-Seite, in der die Navigationsbar ist und in der auch der Text angezeigt werden soll. Ich gehe mal davon aus dass sie index.php heißt. Wenn das nicht der Fall ist musst du eben den entsprechenden Dateinamen im code ändern ;-)
    Ganz oben:
    <?php
    $seite = (isset($_GET['seite']) ? $_GET['seite'] : "hauptseite.php");
    ?>
    Das hauptseite.php ersetzt du durch den Seitennamen der standardmäßig angezeigt wird (also die Startseite).

    Dann muss der div-container, in dem der Inhalt ausgegeben wird folgendermasen aussehen:
    <div ... ><?php include $seite; ?></div>
    Das ... im div soll verdeutlichen dass du dort gern noch weitere angaben wie style machen kannst ;-)

    Die Links in deiner Navigationsleiste müssen dann folgendermaßen aussehen:
    <a href="index.php?seite=Hauptseite.php">Startseite</a><br>
    <a href="index.php?seite=Impressum.php">Impressum</a>


    Das wars (im übrigen ist meine Seite, die ich hier hochgeladen hab nach dem selben system aufgebaut ;-))

    Beitrag zuletzt geändert: 4.4.2010 23:06:31 von dustboy
  10. Autor dieses Themas

    tangoal

    Kostenloser Webspace von tangoal

    tangoal hat kostenlosen Webspace.

    Jawoll, danke sehr. Klappt hervorragend :biggrin: Genau das wollte ich haben :-)

    <?php
    $seite = (isset($_GET['seite']) ? $_GET['seite'] : "hauptseite.php");
    ?>


    Das prüft, ob die Variable seite schon angelegt ist? Wenn ja, dann wird der momenten darin gespeicherte Wert
    beibehalten, wenn nein, dann wird der Name der Datei für die Hauptseite eingetragen. Das heißt, die Variable
    muss ja in dem php-Interpreter irgendwie zwischengespeichert werden? ich hätte nach einer möglichkeit
    gesucht, den zu verwendenden Dateinamen "direkt" zu übergeben (so wie bei einem funktionsaufruf), aber
    diese lösung cooler :-)

    oki, danke sehr :-)

    obwohl: eigentlich ist das ja schon sowas wie ein übergabeparameter :-)

    <a href="index.php?seite=Impressum.php">Impressum</a>


    Beitrag zuletzt geändert: 4.4.2010 23:33:30 von tangoal
  11. Achtung: Unbedingt überprüfen ob das eine gültige Datei ist, sonst kann man mit dem Script alles von deinem Webspace auslesen, inklusive .htaccess etc.!
  12. Da hast du allerdings Recht. Ich würde das so lösen:
    $seite = (isset($_GET['seite']) ? $_GET['seite'] : "hauptseite.php");
    $seite = (strpos($seite, ".php") == strlen($seite) - 4 ? $seite : "hauptseite.php");


    Den ersten Befehl hast du ja schon. Der zweite überprüft ob die Dateiendung .php ist. Damit können keine Dateien mehr ausgelesen werden, die eigentlich vor dem Blicken von Seitenbesuchern verborgen bleiben sollten. (Allerdings müssen alle Dateien die angezeigt werden sollen dann auf .php enden, was jedoch keine Tragik ist...)
  13. dustboy schrieb:
    Da hast du allerdings Recht. Ich würde das so lösen:
    $seite = (isset($_GET['seite']) ? $_GET['seite'] : "hauptseite.php");
    $seite = (strpos($seite, ".php") == strlen($seite) - 4 ? $seite : "hauptseite.php");


    Den ersten Befehl hast du ja schon. Der zweite überprüft ob die Dateiendung .php ist. Damit können keine Dateien mehr ausgelesen werden, die eigentlich vor dem Blicken von Seitenbesuchern verborgen bleiben sollten. (Allerdings müssen alle Dateien die angezeigt werden sollen dann auf .php enden, was jedoch keine Tragik ist...)

    ...was aber sobald DB-Passwörter ins Spiel kommen tragisch werden kann. Hier hilft nur knallhart ein Whitelistfilter für die Dateinamen. Oder alle aufrufbaren Dateien in einen Unterordner und "/" im Dateinamen unterbinden.
  14. Autor dieses Themas

    tangoal

    Kostenloser Webspace von tangoal

    tangoal hat kostenlosen Webspace.

    theseven schrieb: Achtung: Unbedingt überprüfen ob das eine gültige Datei ist, sonst kann man mit dem Script alles von deinem Webspace auslesen, inklusive .htaccess etc.!


    dustboy schrieb: Da hast du allerdings Recht. Ich würde das so lösen:
    $seite = (isset($_GET['seite']) ? $_GET['seite'] : "hauptseite.php");
    $seite = (strpos($seite, ".php") == strlen($seite) - 4 ? $seite : "hauptseite.php");


    Den ersten Befehl hast du ja schon. Der zweite überprüft ob die Dateiendung .php ist. Damit können keine Dateien mehr ausgelesen werden, die eigentlich vor dem Blicken von Seitenbesuchern verborgen bleiben sollten. (Allerdings müssen alle Dateien die angezeigt werden sollen dann auf .php enden, was jedoch keine Tragik ist...)


    Ok, das ist momentan nicht so schlimm, ich habe keine htaccess-Datei oder ähnliches. Aber danke
    euch für den Hinweis, sowas werde ich mit Sicherheit noch brauchen.

    theseven schrieb:...was aber sobald DB-Passwörter ins Spiel kommen tragisch werden kann. Hier hilft nur knallhart ein Whitelistfilter für die Dateinamen. Oder alle aufrufbaren Dateien in einen Unterordner und "/" im Dateinamen unterbinden.


    Ein Whitelistfilter, ist das so eine Liste, wo die Dateinamen aufgeführt sind, die sich auf dem Webspace
    befinden und die zugreifbar sind? Das heißt Dateinamen (wie z.B. .htaccess) werden ja nicht in
    diese Liste geschrieben und somit vom Filter mithilfe der Liste erkannt und nicht zugelassen?

    Meinst du jetzt, man soll die Dateien in einen Unterordner packen, auf die nicht zugegriffen werden darf?
    Und die anderen alle eben in den root, wo sowieso kein "/" drin vorkommt?
    Wenn nicht, dann wüsste ich nicht wie ich die Unterscheidung zwischen "aufrufbarer" und
    "nicht aufrufbarer" Datei machen sollte...
  15. hmm hey nettes beispiel aber ich blicks nich so ganz :-)

    ich hab nun 2 dateien

    test1.php

    und

    test2.php

    in test1.php steht:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>TEST 1</title>
    </head>
    
    <body>
    <?php 
    	$seite = (isset($_GET['seite']) ? $_GET['seite'] : "test2.php");
        $seite = (strpos($seite, ".php") == strlen($seite) - 4 ? $seite : "test2.php");
    ?>
    <div style="height:200px; width: 300px; background:#000;">
    	<?php include $seite; ?>
    </div>
    
    <div style="height:200px; width: 300px; margin-top: 40px; background:#000;">
    	<a href="test1.php?seite=test2.php">LINK</a>
    </div>
    
    
    
    </body>
    </html>


    und test2.php sieht so aus:
    <p style="color:#F00; font-size:24px;"> TEST TEXT DER ANGEZEIGT WERDEN SOLL WENN ICH AUF LINK KLICKE</p>



    so nun wird aber sobald ich test1.php öffne steht der text schon im div ... was mach ich falsch ?

    danke schonmal für die antwort
  16. g****e

    $seite = (isset($_GET['seite']) ? $_GET['seite'] : "test2.php");


    das bedeutet soviel wie:
    var = wenn GETVar gesetzt dann nimm gesetztes, sonst nimm test2.php

    das bedeutet, dass auch bevor du den parameter test2 übergibst im link wählt das ding test2.php, weil wenn keine var gesetzt ist kommt das "sonst nimm".
    änder es mal so:
    $seite = (isset($_GET['seite']) ? $_GET['seite'] : "test1.php");


    PS: weitere möglichkeiten des manipulieren wäre das VBScript :-D ist aber zu 0,03 % nur zu empfehlen.
    um clientsidiges verändern zu ermöglichen müsstest du DHTML/HTML DOM nutzen, aber das willst du ja nicht (diese "dialekte" benötigen auch JS)
    wenn du mal was lernen willst, n bissel mehr sogar, dann hab ich hier ne super seite für dich:
    http://www.w3schools.com/default.asp
    ich habe da vieles gelernt, und muss sagen es ist sehr einfach, aber umfassend erklärt :)
  17. @psd:
    <?php 
       $seite = (isset($_GET['seite']) ? $_GET['seite'] : "test2.php");
       $seite = (strpos($seite, ".php") == strlen($seite) - 4 ? $seite : "test2.php");
    ?>

    Dieser Teil muss nicht in test1.php sondern in test 2.php (dahin wo du geschrieben hast "TEST TEXT DER ANGEZEIGT WERDEN SOLL WENN ICH AUF LINK KLICKE"). Außerdem musst du es noch um eine Zeile erweitern:

    <?php 
       $seite = (isset($_GET['seite']) ? $_GET['seite'] : "test2.php");
       $seite = (strpos($seite, ".php") == strlen($seite) - 4 ? $seite : "test2.php");
       include $seite;
    ?>
  18. Autor dieses Themas

    tangoal

    Kostenloser Webspace von tangoal

    tangoal hat kostenlosen Webspace.

    ggamee schrieb: PS: weitere möglichkeiten des manipulieren wäre das VBScript :-D ist aber zu 0,03 % nur zu empfehlen.
    um clientsidiges verändern zu ermöglichen müsstest du DHTML/HTML DOM nutzen, aber das willst du ja nicht (diese "dialekte" benötigen auch JS)
    wenn du mal was lernen willst, n bissel mehr sogar, dann hab ich hier ne super seite für dich:
    http://www.w3schools.com/default.asp
    ich habe da vieles gelernt, und muss sagen es ist sehr einfach, aber umfassend erklärt :)

    ja, clientseitig will ich für meine website erstmal nichts voraussetzen, daher auch nicht benutzen :-)
    heißt aber nicht, dass ich diese technologien verschmähe (damit ist ne menge mehr möglich, klar^^),
    ich denke nur, dass viele diese einfach nicht aktiviert haben (aus Sicherheitsbedenken, etc.).

    Danke für den Link. Der ist super. Frischt zum einen Englischkenntnisse auf, und zum anderen liefert
    die Seite noch zu vielen anderen Themen viele infos. z.B. zu SVG, was ne ziemlich interessante
    sache ist...
  19. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!