WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » Problem mit Unterverzeichnis und PHP Include » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von Ori
Die Nacht der lebenden Threads.

Davon abgesehen, sollte der Schnipsel insgesamt so lauten:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8:
if ( array_key_exists('page', $_GET) && file_exists( $_GET['page'] ) )
{
   include($_GET['page']);
}
else
{
   include('startseite.php');
}
von Xeridar
<?php
if(!isset($_GET['page'])) {
$page = 'startseite.php';
} else {
$page = $_GET['page'];
}
?>
<?php include($page); ?>


SCHLIMMER FEHLER!!!

Die Seite hacke ich innerhalb von 30 Sekunden über ein remote include und hab dann Vollzugriff auf deinen Server.

Du musst vorher per file_exists überprüfen ob die Datei lokal bei dir existiert.
von raiserle
wwwroot?
die einzige var die ich da kenne ist $_SREVER['DOCUMENT_ROOT']
und diese kann dabei auch nicht helfen.
sie gibt jediglich den ordner wieder, woher die domain kommt.

angenommen unix
/home/raiserle <- das ist der docomentroot von der domain raiser-web.dyndns.org

wenn ich nun einen weiteren ordner anlege
/home/raiserle/test und in diesem eine datei namens test.php und dort wiederum dirn scheibe
echo $_SERVER['DOCUMENT_ROOT'];
dann wird mir das script /home/raiserle wiedergeben.

also man sieht, das nützt für die ordnerstruktur zum includen gar nix.

damit vielleicht es noch etwas verständlicher wird
wenn ich nun in demordner /home/raiserle/test
die datei test.php
so aussehen lasse
<?php
include "config.inc.php";
?>
diese aber in /home/raiserle liegt, wird es zu einem fehler führen
also muss man
include "../config.inc.php";
scheiben.

was ist aber nun, wenn in de config.inc.php wieder eine datei eingefügt wird und diese ebenfalls in /home/raiserle liegt. (inc.test.php)
man möchte meinen, das es geht, aber der schein trügt.

er wird wiederum einen fehler bringen, denn er kann die inc.test.php nicht finden und warum nicht, ... er sucht sie im ordner /home/raiserle/test
egal auch wenn ich die config.inc.php richtig in der test.php aufrufe, so befindet sich der prozess immer noch im ordner ../test und dort gibt es keine inc.test.php

und jetzt kommt vielleicht die varibale, die helfen kann.
wenn wir dieses beispiel weiter verfollgen, so sollte die config.inc.php die datei in /home/raiserle/ suchen
also includieren wir in der config.inc.php per
code von config.inc.php
include "inc.test.php"; // das original was zu einem fehler führt
include $_SERVER['DOCUMENT_ROOT']."inc.test.php"; // absolute pfadangabe und dies
//wird auch funktionieren

so damit haben wir erstmal die ordnerstruktur geschafft, aber was ist, wenn dort links drin sind...

weiter mit dem selben beispiel
angenommen in der datei inc.test.php steht
echo 'a href="test.php">TEST</a>';

dann wird der link wie follgt aussehn

http://raiser-web.dyndns.org/test/test.php
lustigerweise wird das funktioniren, da wir in dem ordner test eine test.php haben
aber was, wenn man eine test.php aus dem ordner /home/raiserle haben will.
dann wird es mit dem relativen linkt nicht mehr gehen.
der link müsste dann auch wieder absolut angegebenwerden, was aber zu sehr unerwünschten problemenn führen kann.
verlusst der session.....
also müsste der link wie follgt aufgerufen werden
echo '<a href="../test.php">TEST</a>';
jetzt würder der link richtig sein
http://raiser-web.dyndns.org/test.php

so, das solls zu erklärung gewesen sein, weil man kann für diese probleme keine LÖSUNG nennen, ausser man sagt, MACHT euch vorher gedanken, wie euer script und euer struktur aussehen soll.

gruss raiserle
von chrisbears
...dann musst Du Dir schon die Mühe machen, genau zu schreiben, was Du vorhast und was im Einzelnen nicht funktioniert und den dazu gehörigen Quelltext posten samt vorhandener Ordnerstruktur.
Ich habe ein Bisschen den Eindruck, dass Du nur Fundstücke zusammensetzt, ohne zu wissen, was da passiert (z.B. auf zwei verschiedene css verweisen). Das ist durchaus legitim, solange es funktioniert. Tauchen dann aber Probleme auf, bekommst Du die nicht in den Griff, ohne Dir die Basics anzueignen. Ich spreche da aus Erfahrung, denn ich arbeite auch gerade mit Sachen, die für meinen Kenntnisstand drei Nummern zu hoch sind und habe im PHP/MYSQL Lehrbuch erstmal die Seite 1 wieder aufgeschlagen...

Grüße,

chris
von lars25700
Ja nee ja - sorry, bin wahrscheinlich zu doof - hab aber beides probiert und es tat nicht. Vielleicht nochmal zusammensetzen?

Wäre total nett denn das würde mich interessieren. Hab schonmal was über irgendwas mit wwwroot gehört. Dass ich das als Variable setzen kann oder so etwas.

Gruß

Lars

Nach oben