Rechnungen: Betraege mit Tausenderpunkt, XSS in Templates und Suche
- formularZahl(): steht ein Komma im Betrag, sind Punkte Tausendertrenner
("1.234,50" -> 1234.50, vorher 1.23); ohne Komma bleibt der Punkt
Dezimaltrenner wie bei der Artikel-Autovervollstaendigung ("12.50").
- Rechnungs-Templates (addrechnung, mailrechnung, changeadr, copyrech,
umschlagshow, rechshow) geben alle Daten mit |escape aus; Werte aus der
URL (id, type, newtype) als int.
- Rechnungssuche: Artikelnamen werden escaped statt als HTML ausgegeben
(Trennung per Zeilenumbruch in SQL, artikelListeHtml() in PHP).
- Suchbegriffe kommen per encodeURIComponent als UTF-8, utf8_encode()
entfaellt; vorher gingen Zeichen ausserhalb von Latin-1 verloren.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+10
-4
@@ -195,7 +195,7 @@ function createKdnRechQry($page,$pagesize,$src,$combiner,$id,$typ,$sks=0)
|
||||
$query = "SELECT rechnung.$docnr AS rechnr,
|
||||
rechnung.id,
|
||||
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') AS date,
|
||||
GROUP_CONCAT(CONCAT(artikel.bezeichn, ' (', artikel_rechn.wanr, ')') SEPARATOR '<br />') AS artikel,
|
||||
GROUP_CONCAT(CONCAT(artikel.bezeichn, ' (', artikel_rechn.wanr, ')') SEPARATOR '\n') AS artikel,
|
||||
adresse_id,
|
||||
storno,
|
||||
rechnung.typ_id
|
||||
@@ -216,7 +216,7 @@ function createKdnRechQry($page,$pagesize,$src,$combiner,$id,$typ,$sks=0)
|
||||
$query = "SELECT rechnung.$docnr AS rechnr,
|
||||
rechnung.id,
|
||||
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') AS date,
|
||||
GROUP_CONCAT(CONCAT(artikelsks.bezeichn1, ' ', artikelsks.bezeichn2) SEPARATOR '<br />') AS artikel,
|
||||
GROUP_CONCAT(CONCAT(artikelsks.bezeichn1, ' ', artikelsks.bezeichn2) SEPARATOR '\n') AS artikel,
|
||||
adresse_id,
|
||||
rechnung.typ_id
|
||||
FROM rechnung
|
||||
@@ -304,7 +304,7 @@ function createRechQry($page,$pagesize,$src,$combiner,$sks=0)
|
||||
rechnung.$docnr AS rechnr,
|
||||
rechnung.id,
|
||||
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') AS date,
|
||||
GROUP_CONCAT(CONCAT(artikel.bezeichn, ' (', artikel_rechn.wanr, ')') SEPARATOR '<br />') AS artikel,
|
||||
GROUP_CONCAT(CONCAT(artikel.bezeichn, ' (', artikel_rechn.wanr, ')') SEPARATOR '\n') AS artikel,
|
||||
adresse_id,
|
||||
storno,
|
||||
rechnung.typ_id
|
||||
@@ -328,7 +328,7 @@ function createRechQry($page,$pagesize,$src,$combiner,$sks=0)
|
||||
rechnung.$docnr AS rechnr,
|
||||
rechnung.id,
|
||||
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') AS date,
|
||||
GROUP_CONCAT(CONCAT(artikelsks.bezeichn1, ' ', artikelsks.bezeichn2) SEPARATOR '<br />') AS artikel,
|
||||
GROUP_CONCAT(CONCAT(artikelsks.bezeichn1, ' ', artikelsks.bezeichn2) SEPARATOR '\n') AS artikel,
|
||||
adresse_id,
|
||||
storno = 0,
|
||||
rechnung.typ_id
|
||||
@@ -461,6 +461,12 @@ function createMsgQry($page,$pagesize,$src,$combiner,$user)
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/* Artikelliste aus createRechQry()/createKdnRechQry() als escaptes HTML, eine Zeile je Artikel */
|
||||
function artikelListeHtml($artikel)
|
||||
{
|
||||
return implode("<br />", array_map("htmlspecialchars", explode("\n", (string)$artikel)));
|
||||
}
|
||||
|
||||
function displayPages($pagesize,$currpage,$numentries,$refreshfunc,$ad_params = "")
|
||||
{
|
||||
echo "Seite: ";
|
||||
|
||||
Reference in New Issue
Block a user