Files
Kundenverwaltung/update/firststart.php
T
adminandClaude Opus 5 488bc698de Instanzname in die Config, Setup-Luecke geschlossen
Instanz:
- $instanz in der externen Config bestimmt INSTANZ, UPLOADS_PATH und
  SESSION_NAME. Der Verzeichnisname waehlt nur noch die Config-Datei aus
  und ist Fallback, solange $instanz fehlt.
- savePDF() schreibt nicht mehr fest nach DOCUMENT_ROOT."kunden", sondern
  in das Verzeichnis, das es auch aufraeumt. .gitkeep wird nicht mehr
  mitgeloescht.

Sicherheit:
- index.php?action=setup war ohne Login auch bei gueltiger Config
  erreichbar. rebuild-settings.php schrieb $_POST ungeprueft als PHP-Code
  in die Config (Codeausfuehrung, sofern die Datei schreibbar war).
- Setup nur noch ohne gueltige Config, firststart.php und
  rebuild-settings.php pruefen das zusaetzlich selbst.
- Config-Werte werden per var_export() maskiert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 08:44:33 +02:00

54 lines
1.6 KiB
PHP

<?php
// Nur als Teil von index.php?action=setup gültig und nur, solange es noch
// keine gültige Config gibt (siehe index.php).
if(!defined("CONFIG_PATH") || readsettings() == "valid")
exit;
$err = array();
require_once("update/database-update.php");
require_once("incs/update.php");
$smarty->assign("firma",$_POST["firma"]);
$smarty->assign("mysqlserver",$_POST["mysqlserver"]);
$smarty->assign("mysqldb",$_POST["mysqldb"]);
$smarty->assign("mysqluser",$_POST["mysqluser"]);
$smarty->assign("mysqlpw",$_POST["mysqlpw"]);
$smarty->assign("opengeodb",$_POST["opengeodb"]);
$smarty->assign("sunname",$_POST["sunname"]);
$smarty->assign("suvname",$_POST["suvname"]);
$smarty->assign("sunick",$_POST["sunick"]);
$smarty->assign("newpw",$_POST["newpw"]);
$smarty->assign("sumail",$_POST["sumail"]);
$smarty->assign("importsks",$_POST["importsks"]);
$smarty->assign("importpre",$_POST["importpre"]);
$smarty->assign("deletedb",$_POST["deletedb"]);
if(isset($_GET["formsent"]) && isset($_POST["mysqluser"]) && isset($_POST["mysqlserver"]))
{
include("update/rebuild-settings.php");
}
else if(isset($_GET["formsent"]))
{
$err = error("Keine Formulardaten erhalten, vielleicht ist die Datei zu groß?");
}
if($err || !isset($_GET["formsent"]))
{
if(@fileperms(CONFIG_PATH) != 16895)
{
$smarty->assign("permissionerror",1);
}
include_once("update/versions.php");
$disp_versions[""] = "Bitte wählen";
foreach($versions as $ver)
{
if($ver[0] > 1)
$disp_versions[$ver[0]] = "V".substr($ver[0],0,1).".".substr($ver[0],1,1).".".substr($ver[0],2,1)." Gültig $ver[1]";
}
$smarty->assign("versions",$disp_versions);
$smarty->display('firststart.tpl');
}
?>