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 e2124220e5
2225 changed files with 1070301 additions and 0 deletions
@@ -0,0 +1,40 @@
ID-One Card
-----------
-----BEGIN CERTIFICATE-----
MIIC3jCCAj+gAwIBAgIGAOq0AAACMAoGCCqGSM49BAMEMIGRMQswCQYDVQQGEwJV
UzELMAkGA1UECAwCVkExDzANBgNVBAcMBlJlc3RvbjEtMCsGA1UECgwkSURFTUlB
IElkZW50aXR5IGFuZCBTZWN1cml0eSBVU0EgTExDMTUwMwYDVQQDDCxJREVNSUEg
SWRlbnRpdHkgYW5kIFNlY3VyaXR5IFVTQSBMTEMgUm9vdCBDQTAgFw0yNDA5MTgy
MjAwMDBaGA8yMDY0MDkxOTIxNTk1OVowgZExCzAJBgNVBAYTAlVTMQswCQYDVQQI
DAJWQTEPMA0GA1UEBwwGUmVzdG9uMS0wKwYDVQQKDCRJREVNSUEgSWRlbnRpdHkg
YW5kIFNlY3VyaXR5IFVTQSBMTEMxNTAzBgNVBAMMLElERU1JQSBJZGVudGl0eSBh
bmQgU2VjdXJpdHkgVVNBIExMQyBSb290IENBMIGbMBAGByqGSM49AgEGBSuBBAAj
A4GGAAQAlcTYsCV2LxuwK8Q5PK+03/wSAPSpQZR6k12P2pqfB1p7M3JUfUwvemit
ohKJY2EepPLadIiwz2gVarPB6MFc/H4BRmv5ycUYhWwJyPiRfqFJQrcnOr2QmGUm
7n/GZhQKVz5ur8L7NOpnonvxcuhceujee1xHpIU+WryCo2hpNfXoYiKjPDA6MB0G
A1UdDgQWBBQ7VjlL3agSTXvVAFyKb4GIEcp0wzALBgNVHQ8EBAMCAP8wDAYDVR0T
BAUwAwEB/zAKBggqhkjOPQQDBAOBjAAwgYgCQgE+fbbJFcXiFgQZbZr3xQdUWSng
g1hNrkHFHh5Q6REHXHEXayx+Imf00iPoNpAE6c9mCSTVeWBsGOqDS4B36RVQoQJC
AbXwMD+l1F/LsxRBe4+0MHhwr20v6hkm+s2KOVUr2n+IAz2cghCClLOTdXXvQGl4
653XX3vwX9VpgyRSUT1thiex
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIC2zCCAj2gAwIBAgIE6rQAATAKBggqhkjOPQQDBDCBkTELMAkGA1UEBhMCVVMx
CzAJBgNVBAgMAlZBMQ8wDQYDVQQHDAZSZXN0b24xLTArBgNVBAoMJElERU1JQSBJ
ZGVudGl0eSBhbmQgU2VjdXJpdHkgVVNBIExMQzE1MDMGA1UEAwwsSURFTUlBIElk
ZW50aXR5IGFuZCBTZWN1cml0eSBVU0EgTExDIFJvb3QgQ0EwIBcNMjQwNzI0MjE1
OTU5WhgPMjA2NDA3MjQyMTU5NTlaMIGRMQswCQYDVQQGEwJVUzELMAkGA1UECAwC
VkExDzANBgNVBAcMBlJlc3RvbjEtMCsGA1UECgwkSURFTUlBIElkZW50aXR5IGFu
ZCBTZWN1cml0eSBVU0EgTExDMTUwMwYDVQQDDCxJREVNSUEgSWRlbnRpdHkgYW5k
IFNlY3VyaXR5IFVTQSBMTEMgUm9vdCBDQTCBmzAQBgcqhkjOPQIBBgUrgQQAIwOB
hgAEAJXE2LAldi8bsCvEOTyvtN/8EgD0qUGUepNdj9qanwdaezNyVH1ML3poraIS
iWNhHqTy2nSIsM9oFWqzwejBXPx+AUZr+cnFGIVsCcj4kX6hSUK3Jzq9kJhlJu5/
xmYUClc+bq/C+zTqZ6J78XLoXHro3ntcR6SFPlq8gqNoaTX16GIiozwwOjAdBgNV
HQ4EFgQUO1Y5S92oEk171QBcim+BiBHKdMMwCwYDVR0PBAQDAgD/MAwGA1UdEwQF
MAMBAf8wCgYIKoZIzj0EAwQDgYsAMIGHAkEGMw8cXBIzpmBaXLq1bFsLiuA8tVcF
IOxj3o2a03e9srskCmLZ0p2MYqMgT1IpVTaTUrjSgHingRffsYPf+mncqAJCAIl2
WrtgxVQMAWwd+e/XCR+UZ5kpmPhpG5jdefhnKHNhH20cWmna/K66Iy8X6pq6YS5n
NQgWhK3tBPf57CUtkDJn
-----END CERTIFICATE-----