ERLEDIGT
JA
JA
ANTWORTEN
9
9
ZUGRIFFE
322
322
EMPFEHLEN
-
08.05.08 14:21 #1
- Registriert seit
- Nov 2005
- Beiträge
- 232
Hallo,
ich suche ein Tutorial, wie ich auf meiner Homepage Links nicht mehr direkt auf irgendwelche Seiten sondern mit diesem index.php?section=links (unclude heisst das, glaube ich) zu verlinken.
Leider habe ich hier auf der einen Seite schon drei unterschiedliche Tutorials dazu gefunden, wo jeder meint, er habe es besser und sicherer als der Vorgänger gemacht. Ich als Newbie was PHP angeht bin dadurch total verwirrt und weiß überhaupt nicht, welches Tutorial da am nützlichsten ist.
Es wäre klasse, wenn mir ein etwas erfahrener User (erfahren in PHP) mal einen Link geben könnte zu einem Tutorial, welches er für sinnvoll und gut hält.
Eine kleine Frage noch: Wenn ich das in meiner Homepage einbaue, funktionieren die Links der Homepage auf meinem Computer (also offline) dann nicht mehr? Denn da brauche ich doch einen Server zu, der PHP unterstüzt, was im Offline-Modus nicht geht, oder?
Vielen Dank und liebe Grüße
-
08.05.08 14:39 #2
Ein bestes Tutorial zu diesem Thema gibt es nicht wirklich - Angefangen habe ich mit der Einführung in PHP auf php-q.net, welches ich auch (bis auf viele ineffiziente Beispiele, das Vermischen von Eingabe, Verarbeitung und Ausgabe, etc) jedem Anfänger ans Herz legen würde. Am besten wäre es, wenn du dir alle vorherigen Kapitel auch nochmal anschaust.
Wichtig ist prinzipiell nur, dass du keine Eingaben unkontrolliert übernehmen solltest:
ist zB nicht sicher, da via ?section=../bla leicht auf übergeordnete Verzeichnisstrukturen zugegriffen werden kann.PHP-Code:include BASE_PATH . $_GET['section'];
Prinzipiell ist es egal, wie, aber lass keine nicht gewollten Ausdrücke durch!
Wäre ein Beispiel, welches an sich schon total sicher ist von der Art der Einbindung. Nur du kannst festlegen, was wohin geht. Essenziell ist wohl auch das Angeben absoluter Pfade. Angenommen du rufst eine PHP aus dem HttpDocuments-Root auf, so ist der angenommene Basispfad der zu diesem Verzeichnis (gilt dann auch für Dateien, die aus anderen Verzeichnissen importiert werden). Ruft jemand jedoch nun eine Datei in einem anderen Verzeichnis auf, so stimmen die relativen Pfade nicht mehr mit ihren absoluten Zielen überein.PHP-Code:switch ( isset( $_GET['section'] ) ? $_GET['section'] : null ) {
default:
include BASE_BATH . "main.php";
break;
case "modul1":
include BASE_BATH . "modul1.php";
break;
case "modul2":
include BASE_BATH . "modul2.php";
break;
// ...
}
Zu deiner zweiten Frage empfehle ich dir als Einsteiger eine Windows-Apache-PHP-MySQL-Umgebung, wie zum Beispiel XAMPP. XAMPP kannst du dir mit einem Installer herunterladen, der dir fast komplett automatisiert einen eigenen Apache-Server mit PHP- und MySQL-Schnittstelle bereitstellt. Diesen kannst du lokal verwenden und bist nicht an einen entfernten Server gebunden. Ob die Links dann und wann wie funktionieren, hängt vor allem ab, wie du verlinkst. Persönlich bevorzuge ich absolute URLs ohne Host-Angaben, denn mit ist man recht unflexibel, was den Hostwechsel angeht. Relative Verweise hingegen sind vor allem beim Verlinken verteilter Inhaltsverzeichnisse ungünstig, sollten aber für den Anfang gut geeignet sein um die Materie zu verstehen.
-
Also ich finde das hier recht gut.
Dort ganz unten sind noch 3 Links die du dir auch durchlesen solltest.
Mal sehen was die anderen noch sagen
mfg
--------------------------------------------------------------------------------
Kein Support via PN, Email, ICQ, Brieftaube oder Flaschenpost!
Besucht den tutorials.de-Chat | Anleitung
RTFM - PHP-Handbuch - MySql Handbuch
--------------------------------------------------------------------------------
Surftipp...Der Postillon
--------------------------------------------------------------------------------
Signatur v2.2
-
http://www.drweb.de/php/sichere-includes.shtml
Eigentlich sind Includes, die von der GET-Abfrage geschickt wurden, sehr unsicher, aber dennoch, auch das Beispiel bei drweb ist voll unsicher.
Dieses Snippet ist schon sicherer, aber optimal wäre, wenn du für jede Aktion eine Datei machen willst und in den Dateien sind die unterfunktionen, so könntest du schnell die Orierentierung verlieren.PHP-Code:if (isset($_GET['topic']) && in_array($_GET['topic'], $inc_array) ) {
// ACHTUNG, REGISTER GLOBALS MUSS AUCH IN DIESER SICHEREN FORM AUF OFF SEIN!
$topic = "";
switch($_GET['topic']) {
case 'index' : $topic = 'index'; break;
case 'news' : $topic = 'index'; break;
case 'gudw' : $topic = 'gottunddiewelt'; break;
default: $topic = 'index';
}
include("./includes/".$topic.".inc.php");
} else {
include("./includes/index.inc.php");
}
Zu deiner frage:
Natürlich könnte keiner auf deine Seite wenn du offline bist, da dein Server angepingt wird (normal port : 80) und dein Server, Daten zurückliefert (interpretierte). Wenn du allerdings einen Root oder V-Server hast oder meinetwegen auch einen Webhost Paket etc. dann ist es immer online außer natürlich es folgen Wartungsarbeiten die vom Provider durchgeführt werden oder so
MfG
KD3
-
Hm ich sehe grad das von mir gepostete Tutorial sieht dem von tut.php-quake.net verdammt ähnlich
mfg
--------------------------------------------------------------------------------
Kein Support via PN, Email, ICQ, Brieftaube oder Flaschenpost!
Besucht den tutorials.de-Chat | Anleitung
RTFM - PHP-Handbuch - MySql Handbuch
--------------------------------------------------------------------------------
Surftipp...Der Postillon
--------------------------------------------------------------------------------
Signatur v2.2
-
Ich war mal so frei und hab den Titel des Threads etwas aussagekräftiger gestaltet.
Ich möchte dich bitte, das nächstes mal auch drauf zu achten.
MFG
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
08.05.08 14:51 #7
- Registriert seit
- Nov 2005
- Beiträge
- 232
Oh mein Gott, ich verstehe nur Bahnhof

Wer baut mir das und wieviel kostet das? xD
-
08.05.08 14:52 #8
- Registriert seit
- Nov 2005
- Beiträge
- 232
-
Die vielen unterschiedlichen Tutorials und Meinungen zu ein und demselben Thema sind tatsächlich ein Problem. Deswegen habe ich auch bereits vorgeschlagen, diese in einem Wiki zusammenzufassen. Bisher ist es aber nur bei einem Vorschlag geblieben.
Was deine eigentlich Frage angeht: Es gibt wie du selbst siehst unterschiedliche Ansätze. Aber alle sollten eins gemeinsam haben: die Eingabewerte dürfen nicht ungeprüft verarbeitet werden!
Einige setzen dabei auf eine feste Positivliste (ob als Array, switch- oder if-elseif-Struktur), andere nutzen direkt das Dateisystem Vorgabe. In keine Fall sollte jedoch die Eingabe ungeprüft weiterverwendet werden, da dadurch ernste Sicherheitsrisiken bestehen.Markus Wulftange
-
08.05.08 15:25 #10
- Registriert seit
- Nov 2005
- Beiträge
- 232
Vielen Dank für eure Hilfe und Tips!
Leider bin ich im Bereich PHP ein Newbie, und es lohnt sich ehrlich gesagt für mich auch nicht, PHP zu lernen, da ich es nur sehr selten benötige.
Wenn es hier also jemanden gibt, der das kann, bißchen Geld verdienen will und Zeit hat, mir sowas zu erstellen (Homepage ist schon vorhanden, möchte nur, dass die Addy der Links nicht direkt angezeigt wird und sollte nicht das unsicherste System sein), dann würde ich mich über eine PN mit Vergütungsvorstellung freuen!
Vielen Dank noch einmal für die vielen Antworten!
Ähnliche Themen
-
Frage zum Tutorial "Einfache Art für z.B. index.php?section=links"
Von vodka im Forum PHPAntworten: 3Letzter Beitrag: 19.06.10, 12:42 -
Frage zum Tutorial "Einfach Art für z.B. index.php?section=links"
Von Sk3l3tor im Forum PHPAntworten: 7Letzter Beitrag: 13.01.06, 14:50 -
Navigation index.php?section=links
Von kalle01 im Forum PHPAntworten: 4Letzter Beitrag: 01.05.05, 18:39





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren