Include in Slots

Aus VMS1 Tutorial

Wechseln zu: Navigation, Suche

Oder: "Warum funzt der blöde Slot nicht?"

Diese Frage wird sich wohl jeder schon mal gestellt haben, der das VMS1 in einem Unterordner auf seinem Webspace betreibt.

Der Artikel hier soll ein mögliches Problem beschreiben und auch eine Lösung anbieten.

PHP Include/Require

Der Slot muss die VMS Datei lib/functions.lib.php "einbinden", um die Funktionen des VMS zu kennen, auf die Datenbank zugreifen zu können etc.

Dazu gibt es in PHP folgende 4 Kontrollstrukturen (kann man hier ähnlich wie Funktionen verwenden, sind aber per definitionem etwas Anderes):

  • include_once [2]
  • require_once [4]

Dazu muss aber auch ein Pfad + Dateiname angegeben werden.

Pfad & Dateiname

Dateiname ist ja klar: functions.lib.php

Pfad:

Wir wissen, diese Datei liegt im Unterordner lib des VMS.

Wo aber liegt das Spiel?

Im Normalfall in content/spiele/NAMEDESPIELS.

Da wir aber nicht wissen, wie der Spielordner nun heißt bzw. jeder anders heißt, bedienen wir uns einer relativen Pfadangabe.

Also in die Spieldatei statt:

@require_once ($_SERVER['DOCUMENT_ROOT'].'/lib/functions.lib.php');

(Warum das absoluter Schwachsinn ist, braucht uns an der Stelle nicht zu interessieren, evtl dazu: [5] )

Folgende Zeile:

@require_once ('../../../lib/functions.lib.php');

Was bedeuten nun die vielen Punkte?

Zwei Punkte "wechseln" einen Ordner nach "oben", in dem Falle also erstmal in den Ordner spiele, dann noch 2 für den Ordner content, dann nochmal 2 und man ist im Hauptordner des VMS1, ohne aber dessen Namen oder genaue Position kennen zu müssen.

Zur besseren Vorstellung:

Persönliche Werkzeuge