Seiten includen selection

pycak

Mitglied
Hallo Leute!

Ich habe schon wieder ein Problem. Habe aus Versehen meine HDD vormatiert, wo ein Tutorial gespeichert lag.

Wie mache ich den so, das die Seiten in andere Seiten includet werden, damit es etwa so aussieht:

http://www.seite.de/selection=seite&...

Da war irgendwas mit selection, =Zeichen und &Zeichen. Es lief ohne Datenbank. Man konnte den Ort und die Datei auswählen. Kann auch sein das da irgenwas mit ?Zeichen war. Und es war sehr leicht (3 - 4 kurze Zeilen)

Danke
 
Am besten baust du dir eine Funktion und führst den Code durch eval() durch. Achte aber, dass nicht jede belibige Seite includet wird. Diesen Fehler habe ich zu Anfangs auch gemacht. Sonst bindet mal einer eine htaccess ein oder PW Datei ein.

Also ein kleines Muster musst du dir da schon mindesten überlegen.

informier dich über
eval();
file_get_contents()
und MIME - Typen

Grüsse!
 
Also ich weis ja nicht welches tuto du hatest, schau hier mal rein, da ist auch eins drin.
Im Grundegenommen geht das ganze auch mit einem

inculde("$_GET['$seite']");

ist aber aus Gründen von Sicherheit und Effiktivität dringlichst vollkommen abzuraten!
Und glaube mir, dies sind die ersten Schwachpunkte nach denen Hacker suchen, nicht um sonst habe ich das mal erfahren müssen. Der Hacker hat so mein thaccess Passwort ausgelesen, und ich kann ihm nicht mal böse sein, da das reine Faulheit von mir war.
 
Zuletzt bearbeitet von einem Moderator:
Ich glaube ich habe die Frage etwas falsch formuliert. Es geht hier um eine Darstellungsweise wie auch auf dieser Seite. Wenn man die Adressleiste im Browser betrachtet, sieht man im Link solche Zeichen wie z.B. =, ?, # oder auch &.

Wie ist so was am leichtesten darstellbar?
 
Also du hast deine Farge schon richtig Formuliert

http://www.meineseite.de?das=das&dies=dies&seite=index.php

PHP:
//## Variablen ##
$thisinclude = $_GET['seite'];

//## Einbinden falls vorhanden ##
if (file_exists($thisinclude) && is_file($thisinclude)){
@include("$thisinsclude");
} else { echo "Dokument ".$thisinclude." ist nicht vorhanden";  exit;}

Was aber mit der Sicherheit ist, ist nun nich mehr mein Problem!
Stell dir nur mal vor er übergibt
&site=/ext/...
denn du solltest wissen, dass ein PHP-Code sich um einen thaccess Schutz nicht kümmert, und dieser ihn nicht hindert.

Über die Sicherheit hinaus kannst du heder send by output Probleme bekommen. Und aber auch Dopplung von Variablen! Damit das ganze nicht geschieht legst den Code in eine Funktion und lädts das ganze mittels fil_get_contst() ein, nach dem du das Recht für diese Datei geprüft hast. Dabei muss du dich fragen ob diese Datei includet werden darf - Stimmt alles lässt das ganze durch den eval() laufen! So würde ich es tun!
 
Zuletzt bearbeitet von einem Moderator:
Danke, ich versuche es.

Wie ist es, wenn ich die Seite so programmiere, dass wenn ich im Menü Links etwas anklicke, das dann im MAIN includet wird, aber ohne Frames zu benutzen?
 
Ganz einfach dur verweist einfach nur immer auf die index.php

<a href="index.php?seite=gbook.php">Gästebuch</a>
<a href="index.php?seite=forum/index.php">Forum</a>
usw.. Frames sind nun überflüssig. Ich denke aus diesem Grund hat man überhaupt mal damit angefangen. Mitllerweile gibt es auch andere Gründe wie Templatesysteme usw.

Achtung der Code liegt in der Index.php!

Auch diese Möglichkeit
automatisch weiterleiten:
PHP:
header("LOCATION: index.php?seite=main/bla.php");

Dur rufst immer also deine index.php in dieser wird durch den code $seite ausgelesen und eingebunden. Das ist das Prinzip.
 
Zuletzt bearbeitet von einem Moderator:
Lukasz hat gesagt.:
Auch diese Möglichkeit
automatisch weiterleiten:
PHP:
header("LOCATION: index.php?seite=main/bla.php");

Dieser Code ist schlicht falsch. Laut HTTP muß sich der bei "Location" angegebene Term um eine vollständige URL handeln.
 
stimmt korrektur

PHP:
header("LOCATION: http://www.deineseite.de/index.php?seite=main/bla.php");

Am besten du speicherst dir deine domain am Anfang in $domain oder so dann kannst das ganze auch so machen

PHP:
//## Variablen ##
$domain = "http://www.deineseite.de";

//## headern ##
header("LOCATION: $domain/index.php?seite=main/bla.php"); exit;

Normalerweise sendet Apache automatisch exit nach header() tut aber nicht jeder Server!
 
Zuletzt bearbeitet von einem Moderator:
Zurück