Initialer Commit: Kundenverwaltung (PHP/Smarty)

Bestehende Codebasis als Ausgangsstand aufgenommen.

- .gitignore: Kundendaten (uploads_*), Smarty-Compile-Cache
  (templates_c), Laufzeit-Temp und Datenbank-Dumps ausgeschlossen;
  Verzeichnisstruktur ueber .gitkeep erhalten
- .gitattributes: Zeilenenden normalisiert (LF im Repo),
  Binaerformate markiert
- db-backup.php: MySQL-Zugangsdaten kommen jetzt wie im Rest der
  Anwendung aus der externen Konfiguration statt hartkodiert aus der
  Datei; Passwort wird ueber eine temporaere Optionsdatei statt per
  Kommandozeile uebergeben, Fehler von mysqldump/gzip werden gemeldet,
  Aufraeumen aelterer Backups berechnet Jahr und Monat konsistent

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-28 16:41:18 +02:00
co-authored by Claude Opus 5
commit e6eb55bc4b
2225 changed files with 1070301 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
<?php
require_once("./incs/constants.php");
session_name(SESSION_NAME);
session_start();
require_once("./incs/settings.php");
$settings=readsettings();
if($settings == "valid")
{
$dbconn = mysqli_connect($mysql_server, $mysql_user, $mysql_pw);
mysqli_select_db($dbconn,$mysql_db);
}
else
$err = 1;
if(!$err)
{
mysqli_query("DELETE FROM tmp_rechnung WHERE 1");
mysqli_query("ALTER TABLE tmp_rechnung AUTO_INCREMENT = 1");
mysqli_query("DELETE FROM tmp_artikel WHERE 1");
mysqli_query("ALTER TABLE tmp_artikel AUTO_INCREMENT = 1");
mysqli_query("DELETE FROM tmp_eigensch WHERE 1");
mysqli_query("ALTER TABLE tmp_eigensch AUTO_INCREMENT = 1");
$qry = mysqli_query("SELECT artikel_rechn.rech_id FROM artikel_rechn
LEFT JOIN rechnung ON (artikel_rechn.rech_id = rechnung.id)
WHERE rechnung.id IS NULL");
while($res = mysqli_fetch_assoc($qry))
{
mysqli_query("DELETE FROM artikel_rechn WHERE rech_id = ".$res["rech_id"]."");
}
$qry = mysqli_query("SELECT artikel.id FROM artikel
LEFT JOIN artikel_rechn ON (artikel.id = artikel_rechn.art_id)
WHERE artikel_rechn.rech_id IS NULL");
while($res = mysqli_fetch_assoc($qry))
{
mysqli_query("DELETE FROM artikel_eigensch WHERE art_id = ".$res["id"]."");
mysqli_query("DELETE FROM artikel WHERE id = ".$res["id"]." LIMIT 1");
}
}
?>