jbe@91: --[[-- jbe@91: params = jbe@222: request.get_param_strings{ jbe@279: method = method, -- "GET", "POST", or nil to query both (POST has precedence) jbe@222: include_internal = include_internal -- set to true to include also parameters starting with "_webmcp_" prefix jbe@222: } jbe@91: jbe@99: This function returns a table with all raw GET/POST parameters as strings or list of strings (except internal parameters like "_webmcp_path" or "_webmcp_id"). Modifications of the returned table have no side effects. jbe@91: jbe@91: --]]-- jbe@91: jbe@253: local function merge_params(tbl, params_list, include) jbe@357: for key, values in pairs(params_list) do jbe@222: if not include and string.match(key, "^_webmcp_") then jbe@221: -- do nothing jbe@221: elseif string.match(key, "%[%]$") then jbe@221: tbl[key] = table.new(values) jbe@221: else jbe@221: tbl[key] = values[1] jbe@221: end jbe@221: end jbe@221: end jbe@221: jbe@222: function request.get_param_strings(args) jbe@222: local method = nil jbe@222: local include = false jbe@222: if args then jbe@222: method = args.method jbe@356: include = args.include_internal jbe@222: end jbe@99: local t = {} jbe@222: if not method then jbe@222: merge_params(t, request._http_request.get_params_list, include) jbe@222: merge_params(t, request._http_request.post_params_list, include) jbe@222: elseif method == "GET" then jbe@222: merge_params(t, request._http_request.get_params_list, include) jbe@222: elseif method == "POST" then jbe@222: merge_params(t, request._http_request.post_params_list, include) jbe@222: else jbe@222: error("Invalid method passed to request.get_param_strings{...}") jbe@222: end jbe@99: return t jbe@91: end