Frage zu php und include

M

Maja84

Mitglied
Thread Starter
Dabei seit
03.09.2003
Beiträge
24
Reaktionspunkte
0
Hallo alle zusammen,

bin gerade dabei, ne neue Website zu bauen. Da ich diesmal gern ohne Frames oder iFrames auskommen würde, hab ich mich mal a bissl mit css, scrollbaren divs und php zum laden des contents beschäftigt. Bin jetzt so weit, dass ich ne ganz nette frame-artige Lösung gebastelt hab, mit zwei in der Größe variablen div-"frames", in die ich mit php mittels switch-Befehl den entsprechenden content füllen kann. Das wär dann die index.php

Jetzt wollte ich es so machen, dass in den zweiten div-frame u. a. auch eine datei mit einer weiteren navigation geladen wird (navi.php) und man über die Links darin wiederum den content in dem ersten div-frame verändern können soll. Wie kann ich das anstellen?

Kann ich dem Link in der navi.php einfach einen Verweis verpassen (z.B. <a href="index.php?page=http://www.meinewebsite.de/start.html
 
Sorry, für den abgeschnittenen Post, der Rest kommt hoffentlich gleich ... lässt sich nämlich per Copy&Paste absolut nicht einfügen...
 
Zuletzt bearbeitet:
Kann ich dem Link in der navi.php einfach einen Verweis verpassen (z.B. <a href="index.php?page=http://www.meinewebsite.de/start.html
 
PHP:
include($_GET[page]);
Das dürfte es tun.
Das hinter dem fargezeichen ist eine get Variable. Die fragt man per $_GET[x] aus.
Es wird also der file includet, der in der Variable PAGE zugewiesen ist!
 
... oh, es hat ja schon jemand geantwortet, das mit dem Einpasten klappt irgendwie einfach nicht, Sorry!!

hab vergessen zu erwähnen, dass ich am Anfang der Seite dies stehen hab:


<?php
if($_GET['page'] == "") {$_GET['page']="start.html"; $page=$_GET['page']; }

?>
 
Zuletzt bearbeitet:
... werde deinen Vorschlag aber mal ausprobieren, Danke!!
 
enigm-a schrieb:
PHP:
include($_GET[page]);
Bitte nicht so!

Das ist eine riesen Loch denn man kann absolut jede Datei auf dem Rechner anzeigen, auch Dateien die eigentlich vom Webserver geschützt werden, Passwort-Dateien, Konfigurationsdateien, Datenbank-Files...

Zusätzlich kann man, sofern es nicht in der php.ini unterbunden wurde, PHP-Dateien von anderen Servern einschleusen und deren PHP-Code ausführen.
 
Hi Enigma,

sorry, aber das hat auch net weitergeholfen, denn im Prinzip hatte ich es mit der php-Angabe oben im Dokument schon so. Jetzt erkläre ich mal meinen Post zu Ende, bzw. genauer da er ja oben immer abgeschnitten wurde.

Also, was ich möchte ist folgendermaßen: Ich habe ja in der index.php zwei div-Frames, in die kann ich jetzt mit der Haupt-Navi in der index.php unterschiedlichen Content laden. Z.B. in den rechten Div auch eine zusätzlich Navigation navi.php. Jetzt will ich mit Hilfe der Links dieser zusätzlich geladenen Navi den Inhalt in dem linken div-Frame (id="inhalt") ändern können, halt genauso, wie ich das mit der Hauptnavigation mache.

Nun hab ich mir gedacht, ich bastel mir einfach dieselbe Konstellation in der navi.php (z.B. mit switch) aber zusätzlich muss ich ja irgendwie diese Haupt-Div in der index.php ansprechen, damit der neue Inhalt auch dort angezeigt wird.

Ginge das z.B. mit Hilfe der id (ähnlich wie bei target mit frames) oder ist soetwas überhaupt nicht möglich mit php? Ich hab es schon versucht, aber es öffnet sich dann ein neues Fenster und der neue Inhalt erscheint im rechten Div (wo zuvor die navi.php drin war) anstatt im Haupt-Div).

Falls sowas gar nicht funktioniert, hab ich mir nämlich schon überlegt, wieder auf iFrames zurückzugreifen, auch wenn diese wohl nicht mehr dem aktuellsten Stand entsprechen.

Für irgendeinen Tipp oder Rat wär ich super dankbar!

Gruß Maja 84
 
Also so wie ich Dich nun verstanden habe, geht das nicht. Das hat aber nichts mit PHP zu tun.

Ich habe Dein Vorhaben jetzt so verstanden: Du willst den Inhalt eines Divs dynamisch ändern, ohne die Seite neu zu laden. Das geht nicht. Inhalte von Div's können nicht dynamsich ausgetauscht werden. (Ausser Du machst es per JavaScript, AJAX würde sich da anbieten aber ich rate davon ab)

Wenn sich die Seite neu laden darf ist es aber ganz einfach.


Ein Link kann so aussehen: index.php?nav=irgendwas&seite=home

In der PHP Datei schreibst Du dann an der Stelle wo die Navigation angezeigt werden soll etwas wie:
Code:
switch($_GET['nav']) {
   case 'irgendwas':
      include('./'.$_GET['nav'].'.php'); //so kannst Du sicher sein dass die Datei im aktuellen Verzeichnis liegt und eine PHP-Datei ist Falls in der Datei aber nur statische Inhalte sind kannst Du auch mit filegetcotents oder ähnlichem arbeiten. Dann bist du noch etwas sicherer, da der Code nicht ausgeführt wird
   break;
   case '...':
      ...
}

Gleiches für die Seite selbst.
 
Hallo Leute,

bevor Ihr euch weiter Arbeit macht - ich hab die Lösung gefunden! Ich hatte es praktisch schon:

einfach <a href="http://www.website.de/web3/index.php?file=index2"
 
.. hier gehts weiter:

also das in den Verweis - eben genauso wie bei den switch-Befehlen in der index.php - ohne irgendeine php-angbe im header oder ein target oder irgendwas. War einfach nur ein Denkfehler - und jetzt funzt's!
Irgendwie glaub ichs nun bald: PHP ist doch einfach besser u. es lohnt sich wohl, sich mehr damit zu befassen.

Trotzdem danke für eure schnellen Antworten!

Gruße, Maja84
 
dms schrieb:
Ich habe Dein Vorhaben jetzt so verstanden: Du willst den Inhalt eines Divs dynamisch ändern, ohne die Seite neu zu laden. Das geht nicht. Inhalte von Div's können nicht dynamsich ausgetauscht werden. (Ausser Du machst es per JavaScript, AJAX würde sich da anbieten aber ich rate davon ab)

Wenn sich die Seite neu laden darf ist es aber ganz einfach.


Ein Link kann so aussehen: index.php?nav=irgendwas&seite=home

Hallo dms,

danke für den Tipp. Jetzt geht es ja.
Das mit dem immer neuen Laden hab ich auch schon gehört, nur ist es irgendwie so, dass man gar nichts davon merkt - es scheint viel schneller zu gehen als mit frames. Mir ist es nur am Anfang aufgefallen, als ich die CSS-Angaben in eine separate Datei ausgelagert hatte - da war der Seitenwechsel, also das Neuladen total aufällig. Seit ich das CSS im index.php-Doc selbst stehen habe ist das nicht mehr der Fall.

Kann es sein, dass das jetzt nur nicht so groß was ausmacht, so lange die Dateien wenig Inhalt haben (also in der index.php ist ja nicht viel, sondern dann eigentlich nur in den anderen dynamisch geladenen seiten) und mit mehr Inhalt sieht man das Neuladen dann wieder? Ich arbeite nämlich gerade nur mit Testdateien...

Gruß, Maja
 
Bin Neuling in Sachen php und sehe möglichweise den Wald vor lauter Bäumen nicht.
Wie kann ich php in die website einbinden ohne extra verlinken zu müssen?

Beispiel:
http://www.kaske.de/monatskalender.php

Möchte ich angezeigt bekommen auf der Startseite.
 
das script einfach dahin setzten, wo es erscheinen soll ;)

PHP:
.....
<div id="kalender">
 <?php
  ....
 ?>
</div>
....
 
@Scuidgy

Mach bitte in Zukunft für eine Neue Frage auch einen neuen Thread auf.
Sonst werden die Threads und das gesamte Forum doch sehr unübersichtlich.
Auch die Benutzung der Suchfunktion wird einfacher, wenn die Themen sich nicht vermischen.

Danke.
 
Normalerweise wird eher rumgemosert, wenn zu ähnlichen Themen ständig neue threads eröffnet werden, deshalb habe ich diesen hier natürlich über die Suche gefunden und weitergeführt. ;)

@moses_78: Danke, aber funktioniert leider nicht mit der Einbindung :rolleyes:
 
Habe jetzt das ganze über iframe und link zur php Datei auf Server realisiert ;)
 
Nochmal zur Frage des Einschließens:
(Ich verwende require(), aber das tut hier nichts weiter zur Sache.)
Um auf der sicheren Seite zu sein, solltest du die Seiten in ein gesondertes Verzeichnis, beispielsweise „pages“ oder „modules“ legen. Einschließen kannst du sie dann mit
Code:
require('./modules/'.$_REQUEST['page'].'.inc.php')
Die Module sollten außerdem die Endung .inc.php, nicht bloß .php haben. Wenn du anstelle von $_GET das Array $_REQUEST verwendest, kannst du die Seitenangabe nicht nur aus regulären URL à la „index.php?page=abc“ verwenden, sondern auch solche, die über Formulare via POST gesendet werden.
 
Wieso benutzt ihr nicht mod_rewrite?
Oder hab ich das jetzt falsch verstanden mit
dem einbinden der PHP Seiten?

Gruß, Micha
 
michanismus schrieb:
Wieso benutzt ihr nicht mod_rewrite?
Oder hab ich das jetzt falsch verstanden mit
dem einbinden der PHP Seiten?
Ja, damit bekommt man dann schönere URLs, aber die Technik muß dahinter trotzdem da sein. ;)
 
Zurück
Oben Unten