From df3db223b5681367356f56eff77ab2da611c7c94 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Paul=20H=C3=A4nsch?= Date: Sat, 5 Apr 2025 09:25:36 +0200 Subject: [PATCH] improved POST data reader for numbered field arrays --- index.cgi | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/index.cgi b/index.cgi index 31478d7..09d07c3 100755 --- a/index.cgi +++ b/index.cgi @@ -30,8 +30,8 @@ fi >&2 new_invoice) id="$(timeid)" file="$_DATA/${id}.kvd" DB3 new - DB3 set type "$(POST type)" - DB3 set status open + DB3 store type "$(POST type)" + DB3 store status open DB3 write "$file" REDIRECT "${_BASE}/doc/${id}" ;; @@ -41,13 +41,22 @@ fi >&2 DB3 open "$file" for key in $(POST_KEYS); do case $key in id|tid|session_key|action):;; + *._*) + if DB3 iterate _tmp_modified |grep -qxF "${key%._*}"; then + DB3 append "${key%._*}" "$(POST "$key")" + else + DB3 store "${key%._*}" "$(POST "$key")" + DB3 append _tmp_modified "${key%._*}" || DB3 store _tmp_modified "${key%._*}" + fi + ;; *)set -- for seq in $(seq 1 "$(POST_COUNT "$key")"); do set -- "$@" "$(POST "$key" $seq)" done - DB3 set "$key" "$@" + DB3 store "$key" "$@" ;; esac; done + DB3 delete _tmp_modified DB3 write "$file" RELEASE "$file" [ -d .git ] && { -- 2.39.5