• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Installation soll Inhalte aus mehreren Textboxen in Datei mit Zeilenumbruch schreiben

JBExtrem

Neues Mitglied
Hallo Leute,

ich schreibe momentan für einen Kunden eine Website. Aber ich komm bei diesen Punkt nicht weiter. Was mein Script macht?
Zip entpacken (Geht)-> Datenbank usw. eintragen(Manuel über User) (Komm ich nicht weiter) -> Abfragen und .sql datein Importieren (Kann ich daher nicht sehen

Ich hoffe ihr helft mir

Mfg
 
Werbung:
Ich glaube nicht, dass das bei den gegebenen Informationen jemand kann. „Geht nicht“ ist immer schwierig. Da müsstest du weiter ausholen und versuchen, dein konkretes Problem möglichst verständlich und nachvollziehbar zu schildern.
 
Also ich habe ein Config Datei wo die Datenbank drin steht. Nun soll der Installer dies Füllen. Aber das ist das Problem, bei mir kommen immer nur 4x 0

Konnt ihr mir nun erklären wie ich das hinbekommen kann?
 
Werbung:
Hier:
PHP:
<?php
$array = file("class/dbsettings.php"); 
// (das Array fängt mit dem Zählen bei 0 an)
array_splice($array, 0, 1, "$dbName = '" + $dbname + "';");
array_splice($array, 1, 1, "$hostname     = '" + $hostname + "';");
array_splice($array, 2, 1, "$userdb     = '" + $userdb + "';");
array_splice($array, 3, 1, "$passworddb     = '" + $passworddb + "';");
// Array-Elemente zu einem String (Zeichenkette) verbinden
$string = implode("", $array);
// Text in Datei schreiben und speichern
file_put_contents("class/dbsettings.php", $string);
Header("Location: install3.php");
exit(); 
?>
 
Tja, wenn du mächtigst addierst (+), dann kommt möglichwerweise am Ende 0 raus. Eventuell solltest statt dessen die Strings aneinander hängen mit . Davon abgesehen ist die Basis jeden Debuggings, dass man einen Zwischenstring erzeugt wie $DbLine = .....; und diesen dann per Echo ausgibt. Dann kommt man ganz alleine auf den Fehler und obendrein noch viel schneller, als auf andere zu warten.

Davon abgesehen ist deine Methode, gnadenlos die Informationen der ersten 4 Zeilen zu ersetzen, recht fragwürdig. Normal müsste die Datei eine gewisse Struktur haben (deine ist fast wie Windows ini ohne [section]) und dann müsstest Parsen und die richtige Zeile suchen und den Wert setzen. Muss nur mal jemand einen Kommentar in die erste Zeile schreiben, der das nicht weiß.
 
Zuletzt bearbeitet:
Werbung:
Ein ähnliches Problem wurde kürzlich hier diskutiert:

- Array-Defintion mit regex auslesen - php.de

Das Fazit ist auch dort das von NetAktiv: Der Ansatz, PHP-Code verändern zu wollen, ist problematisch.

Allgemein gesagt: Wenn du Daten verändern möchtest, die in einem bestimmten Format vorliegen (INI, CSV, JSON, …), sollte sich die auslesende/schreibende Anwendung des gesamten Formats bewusst sein. Das Format von PHP ist leider sehr komplex.

Es wäre daher sinnvoll, die Konfigurationsdaten etwa in einer INI-Datei abzulegen, wenn du sie einlesen und vor allem speichern können möchtest.

Dabei müssen dann allerdings zusätzliche Sicherheitsvorkehrungen getroffen werden, denn eine INI-Datei wäre als Text über den Browser abrufbar. Das heißt, diese Datei müsste außerhalb des Document-Roots liegen oder in einem speziell gesicherten (.htaccess) Verzeichnis.

Wenn das zu aufwändig oder nicht praktikabel ist (was ich in gewisser Hinsicht selbst finde), würde ich vielleicht entweder die gesamte Config-Datei einmal schreiben (und nicht mehr zur automatischen Bearbeitung/zum Überschreiben auslesen) oder den Nutzer die Einträge insgesamt von Hand machen lassen.
 
Zuletzt bearbeitet:
Zurück
Oben