PHP - 2 x Include auf 1 Seite?

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php_2_x_include_auf_1_seite_160384/page_1 - zur Vollversion wechseln!


Nightstalker schrieb am 18.03.2006 um 21:05

Hi

vielleicht hab ich mich unverständlich ausgedrückt, also folgendes Problem hab ich grade.

Ich hab ne Seite, ich lade per über ein Include an einer bestimmten Stelle eine andere Seite (den Text in dem Fall).

Zuerst Definiere ich die Startseite und setze die Variable

Code: PHP
<?php    
if ($page=="") $page="intro.html";   
?>

Dann lade ich an der Stelle alle anderen Seiten mit ?page=datei.php

Code: PHP
<?php
include($page);
?>

Diese Methode ist eigentlich gut, jetzt will ich aber eine Seite einbauen die 4 Links hat, wenn man auf einen der Links klickt soll auf der gleichen Seite, darunter, der Inhalt der verlinkten Seite angeziegt werden. Wie kann ich das lösen?

Bitte um Tipps!
TIA


mat schrieb am 18.03.2006 um 23:26

durch einen 2ten parameter?

ca. so: ?page=index.html&sub=link1.html

btw: vergiss nicht die parameter durchzuchecken, damit ein zugriff auf andere dateien deines webspaces oder vl auch deines betriebssystems verhindert wird. meist reicht die fixe angabe der extension. zB ?page=index reicht ja vollkommen, wenn deine pages alle .html sind.


Maehmann schrieb am 19.03.2006 um 09:56

Wenn ich das richtig verstehe, hast du zwei seiten ... die hauptseite und die seite die inkludiert wird. Auf der inkludierten seite gibts 4 Bereiche und du willst mit den Links zu bestimmten Bereichen springen?

Dann kannst du doch einfach mit Html Ankern arbeiten ... und mittels ?site=test#1 oder #2 dann an die entsprechenden stellen springen.


Nightstalker schrieb am 19.03.2006 um 16:10

Also es sieht folgendermaßen aus:

index.php ist quasi die Seite mit dem Menü und allem rundherum. In die Seite werden dann die einzelnen Inhalte inkludiert. Eine der zu inkludierenden Seiten hat 4 Links im oberen Bereich (so wie eine Navigationsleiste eben).

Nun soll wenn man auf einen der Links klickt auf der gleichen seite, der Inhalt der verlinkten html Seite geladen werden, der obere Balken soll aber bleiben.

Index.php?page=navi.html

und dann soll eben, an einer vorgegebenen Stelle auf navi.html je nachdem welchen link man klickt eine von 4 Seiten geladen werden.

Hoffe das war einigermaßn verständlich.


Maehmann schrieb am 19.03.2006 um 16:16

okay ... jetzt versteh ichs :)

Na dann mach das menü mit den 4 Punkten einfach einzeln und inkludierst es dann in jeder der vier Seiten ... also ein include im include so zu sagen.

ich kann nur noch einmal an mats post erinnern ... du _musst_ unbedingt überprüfen, welche inhalte includet werden ...


Nightstalker schrieb am 19.03.2006 um 18:08

ho ho i'll try


DJ_Cyberdance schrieb am 24.03.2006 um 22:41

Vielleicht sollte man erwähnen, daß Du Seiten auch so nachladen kannst:

Code: PHP
if ($page == 1)
     header("location: index1.html");
else
     header("location: index2.html");

Voraussetzung ist, daß noch kein HTML-Header übertragen wurde, dh. es darf vor dem <?php-Tag kein Zeichen stehen und nach diesem Tag kein Output erfolgen. Also wenns um eine Seite ohne Output geht, kann man da schöne if-then-else oder sostige Konstrukte zur Ermittlung der aufzurufenden Seite basteln.


Tex schrieb am 27.03.2006 um 16:35

Zitat von DJ_Cyberdance
Code: PHP
if ($page == 1)
     header("location: index1.html");
else
     header("location: index2.html");

:confused:

wozu soll das gut sein? warum verlinke ich da nicht gleich zu index1.html bzw. index2.html?


Nightstalker schrieb am 28.03.2006 um 12:48

Wie kann ich denn die "Sicherheit" prüfen und worauf muss ich denn noch achten?

Ich hab die Befürchtung ich überseh was. Vielleicht kann mir wer eine kurze Zusammenfassung der Probleme die bei dieser Form von PHP Anwendungen auftreten können geben damit ich das alles prüfen kann!?

Ach ja, ich hätt noch eine Lösung gefunden, kann ich es so machen:

Code: PHP
index1.php?a=menue.html&b=inhalt.html

Wie muss ich die Var. dann definieren und wo soll ich sie integrieren?

tia


Maehmann schrieb am 28.03.2006 um 13:18

ich habe das überprüfen bisher immer so gelöst, dass ich einfach überprüft habe, ob ein erlaubter Wert übergeben wurde.
Also zB überprüfen, ob es sich um eine Zahl im erlaubten Bereich handelt oder wenn eine datei inkludiert werden soll, ob diese auf der Festplatte vorhanden ist.
Oder du kannst gegen eine Whitelist von Werten prüfen usw. ... da kannst du "kreativ" sein ;)


Nightstalker schrieb am 28.03.2006 um 14:23

Naja fehlende Links befürchte ich ja eher nicht falls du das meinst, ich mein eher Sicherheitslücken, wie und wo könnten die entstehen? Muss ich da auf was aufpassen?


Luzandro schrieb am 28.03.2006 um 14:37

Zitat von Maehmann
Zitat von Smut
hab auch nichts dagegen, meistens weiß man eh nicht ob und was man schreiben soll :D

das allein ist allerdings genauso gefährlich, weil ich könnte dann zB irgendein text-file angeben, was auf der platte liegt und von php lesbar ist und schon wirds mir im browser angezeigt..

also wenn du sowas machst, würd ich zu einer whitelist raten, damit du auch nur explizit die paramter erlaubst, die du brauchst und nicht irgendwas vergisst..


Nightstalker schrieb am 28.03.2006 um 15:03

Es liegt eigentlich "nix" auf der Platte, läuft ja auch einem Webserver, die sollten Ihre Daten ja gesichert haben, zugegriffen kann (wenn) dann nur auf die Daten auf diesem Server werden.

Wie mach ich so eine Whitelist? bzw. wie soll die aussehen? Ich hab ein paar html Seiten, ein paar PHP Seiten und Bilder. Einige Pages werden eben mit includes geladen, mehr ist es momentan nicht.


Luzandro schrieb am 28.03.2006 um 16:18

Zitat von Nightstalker
Zitat von ass21
shared memory ist sowieso sch****, lieber in ne graka investieren, bei minimalen anforderungen z.b. ne geforce 6200...
"wird scho nix sei" ist nicht immer die optimalste sicherheitsstrategie ;)

Zitat
zugegriffen kann (wenn) dann nur auf die Daten auf diesem Server werden.
ja, wenn du überprüfst, dass keine remote-files inkludiert werden - sonst kann ich irgendeinen code auf deinem server ausführen, das willst du ja auch nicht


Zitat
Wie mach ich so eine Whitelist? bzw. wie soll die aussehen? Ich hab ein paar html Seiten, ein paar PHP Seiten und Bilder. Einige Pages werden eben mit includes geladen, mehr ist es momentan nicht. [/B]
schau dir mal das an: http://www.php-faq.de/q/q-security-variablen.html


Maehmann schrieb am 28.03.2006 um 18:31

Zitat von Luzandro
das allein ist allerdings genauso gefährlich, weil ich könnte dann zB irgendein text-file angeben, was auf der platte liegt und von php lesbar ist und schon wirds mir im browser angezeigt..

Schon klar ... aber es geht ja primär darum, keinen fremdcode ausführen zu lassen ... wenn ich überprüfe, ob das file in meinem htdocs ordner liegt, kann schon mal "wenig" passieren ...

Es ist halt immer abzuwägen, welche sicherheit wirklich nötig ist und wie der Aufwand dazu aussieht.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025