Wie erstellt und bearbeitet man eine eigene Konfigurationsdatei
PHP - Lehrling
- php
0 Ich0 Willi0 Auge0 dedlfix0 Tobias Kloth
Hallo PHP Freaks da draußen!
Fast alle größeren Projekte haben eine eigene Konfigurationsdatei. Z.B. hat die Software "phpbb" eine Konfigurationsdatei, in der gespeichert wird, ob das Forum gerade aktiv ist, wie die Datenbankeinstellungen sind (Benutzername und Passwort) usw.
Ich möchte auch gerne eine solche Konfigurationsdatei erstellen, die man mit include() einbinden kann, sodass alle Variablen global die jedes Script übernommen werden. Leider finde ich nichts dazu, weil "PHP eigene Konfigurationsdatei erstellen" oder ähnliches immer nur zu PHP eigenen Konfigurationsdatei führen, aber ich möchte doch eine eigene erstellen!
Kann mir jemand sagen, wie ich das am besten mache, ob es dazu schon fertige einfache Lösungen gibt oder kann mir zumindest jemand sagen, mit welchen Suchbegriffen ich suchen muss?
Das wäre sehr nett, danke im voraus!
Der PHP Lehrling
Hallo,
meinst Du die "php.ini" - die Initialisierungsdatei bzw. Konfigurationsdatei?
Habe von PHP eigentlich so gut wie keine Ahnung, jedoch kannst Du diese generell ganz einfach mit einem Texteditor bearbeiten.
Vielleicht findest Du hier etwas zum einlesen.
http://www.schattenbaum.net/php/
Gruß, Ich
Hallo,
Ich möchte auch gerne eine solche Konfigurationsdatei erstellen, die man mit include() einbinden kann, sodass alle Variablen global die jedes Script übernommen werden. Leider finde ich nichts dazu, weil "PHP eigene Konfigurationsdatei erstellen" oder ähnliches immer nur zu PHP eigenen Konfigurationsdatei führen, aber ich möchte doch eine eigene erstellen!
Möchtest du sie automatisiert erstellen (also mit Hilfe eines anderen Scripts) oder einfach haben (dann geht das doch auch mit einem ganz normalen Texteditor?!).
Wenn du Ersteres meinst: schaue dir mal die Dateisystemfunktionen an ([url=http://php.net/filesystem@title=php.net/filesystem]), dort findest du unter anderem [url=http://de2.php.net/manual/de/function.file-put-contents.php@title=file_put_contents] um in eine Datei einen Inhalt zu stecken. Ich bin nicht ganz darüber informiert, aber ich glaube, dass, wenn noch keine Datei solchen Namens existiert (zB config.inc.php), wird automatisch eine solche erstellt.
In diese Datei kannst du dann ganz normal PHP-Code einbauen.
Schöne Grüße,
Willi
Hallo
Ich möchte auch gerne eine solche Konfigurationsdatei erstellen, die man mit include() einbinden kann, sodass alle Variablen global die jedes Script übernommen werden. Leider finde ich nichts dazu, weil "PHP eigene Konfigurationsdatei erstellen" oder ähnliches immer nur zu PHP eigenen Konfigurationsdatei führen, aber ich möchte doch eine eigene erstellen!
Kann mir jemand sagen, wie ich das am besten mache, ob es dazu schon fertige einfache Lösungen gibt oder kann mir zumindest jemand sagen, mit welchen Suchbegriffen ich suchen muss?
Erstelle eine PHP-Datei, in der du jene Variablen, die über mehrere Skriptdateien hinweg immer den selben Wert beinhalten sollen, ablegst. Wenn es z.B. eine Datenbank gibt, die du aus verschiedenen Skripten heraus ansprechen willst, ist es sinnvoll, deren Zugangsdaten an _einer_ Stelle, nämlich der Konfiguration, abzulegen. Gibt es Dateien, die in verschiedenen Skripten aus- bzw. eingelesen, die aufgerufen oder in die hinein etwas (Daten) gespeichert wird, sollte deren Pfad zentral in der Konfiguration vermerkt werden.
Ich benutze dazu, so es sich anbietet, gerne Arrays. Hier mal ein rudimentäres Beispiel:
<?php
# DB-Angaben
$db["host"] = "localhost";
$db["user"] = "dein-db-benutzername";
$db["pass"] = "dein-passwort";
$db["name"] = "name-der-db";
# Pfad zu einem Template
$template["footer"] = $_SERVER["DOCUMENT_ROOT"]."/pfad/zum/template/footer.inc";
#Emailadresse des Admins
$admin_mail = "ich@example.com";
?>
Wenn die Konfigurationsdatei eingebunden ist, bleibt nur noch die Aufgabe, die Variablen in den eigenen Funktionen bekannt zu machen (als Parameter bzw. per global).
Tschö, Auge
echo $begrüßung;
Ich möchte auch gerne eine solche Konfigurationsdatei erstellen, die man mit include() einbinden kann, sodass alle Variablen global die jedes Script übernommen werden.
Wie soll das Erstellen denn erfolgen? Soll jemand Daten irgendwo einhacken und irgendein Prozess soll dann diese Daten in dem PHP-Script eintragen, das du zu inkludieren gedenkst? Oder soll es einfach nur diese Datei geben, in der der Admin händisch Änderungen vornehmen kann?
Für den ersten Fall:
Für den zweiten Fall:
echo "$verabschiedung $name";
Hallo,
Ich möchte auch gerne eine solche Konfigurationsdatei erstellen, die man mit include() einbinden kann, sodass alle Variablen global die jedes Script übernommen werden. Leider finde ich nichts dazu, weil "PHP eigene Konfigurationsdatei erstellen" oder ähnliches immer nur zu PHP eigenen Konfigurationsdatei führen, aber ich möchte doch eine eigene erstellen!
Vor dem gleichen Problem stand ich beim Schreiben des Admininterface von tkswim auch, da die zentrale Einstellungsdatei (mit den Pfaden, Datenbankzugangsdaten usw.) per Formular bearbeitet werden sollte - allerdings sind nicht alle Einstellungen auf einer Seite, sondern in mehrere Kategorien (mit jeweils einem Formular) unterteilt.
Um das Problem jede Einstellung wieder speichern zu müssen zu umgehen habe ich eine Templatedatei (ich verwende Smarty) erstellt in der der komplette Inhalt der Einstellungsdatei steht - nur statt der Werte steht da eine Abfrage ob der Wert für die entsprechende Einstellung an Smarty übergeben wurde, wenn ja wird der eingebaut[1] und wenn nicht, wird die aktuelle Einstellung für diesen Wert verwendet. Anschließend wird die Einstellungsdatei mit dem geparsten Template überschreiben - aber vorsicht, die Prüfungen der Daten müssen sicherstellen, dass die Software nach dem Ändern der Einstellungsdatei noch läuft (besonders gefährdet sind dabei die Pfade).
Grüße aus Nürnberg
Tobias
[1] entsprechende Maskierungen um ' zu entschärfen werden dabei vorgenommen (siehe Antwort von dedlfix)