webmcp

annotate framework/env/request/get_param.lua @ 342:061ee100f1c1

Bugfix: respect "index" argument to request.get_param{...} function; Allow access to metadata of POST fields in request.get_param{...}
author jbe
date Tue Mar 24 23:54:14 2015 +0100 (2015-03-24)
parents 264af2867720
children f60f5ee90efb
rev   line source
jbe@214 1 --[[--
jbe@342 2 value = -- value of GET/POST parameter, or value list if multiple == true
jbe@214 3 request.get_param{
jbe@342 4 method = method, -- "GET", "POST", or nil to query both (POST has precedence)
jbe@342 5 name = name, -- field name
jbe@342 6 index = index, -- defaults to 1 to get first occurrence, only applicable if multiple == false
jbe@342 7 multiple = multiple, -- boolean to indicate whether to return a single value or a value list
jbe@342 8 meta = meta -- set to true to get metadata (table with "file_name" and "content_type")
jbe@214 9 }
jbe@214 10
jbe@214 11 Reads GET/POST parameters directly from the underlaying request.
jbe@214 12
jbe@214 13 --]]--
jbe@214 14
jbe@214 15 function request.get_param(args)
jbe@214 16 local param_list
jbe@342 17 if args.metadata then
jbe@342 18 if args.method == "GET" then
jbe@342 19 param_list = request._http_request.get_metadata_list[args.name]
jbe@342 20 elseif args.method == "POST" then
jbe@342 21 param_list = request._http_request.post_metadata_list[args.name]
jbe@342 22 elseif not args.method then
jbe@342 23 param_list = request._http_request.post_metadata_list[args.name]
jbe@342 24 if not param_list[args.index or 1] then
jbe@342 25 param_list = request._http_request.get_metadata_list[args.name]
jbe@342 26 end
jbe@342 27 end
jbe@342 28 else
jbe@342 29 if args.method == "GET" then
jbe@214 30 param_list = request._http_request.get_params_list[args.name]
jbe@342 31 elseif args.method == "POST" then
jbe@342 32 param_list = request._http_request.post_params_list[args.name]
jbe@342 33 elseif not args.method then
jbe@342 34 param_list = request._http_request.post_params_list[args.name]
jbe@342 35 if not param_list[args.index or 1] then
jbe@342 36 param_list = request._http_request.get_params_list[args.name]
jbe@342 37 end
jbe@214 38 end
jbe@214 39 end
jbe@331 40 if args.multiple then
jbe@214 41 return param_list
jbe@214 42 else
jbe@342 43 return param_list[args.index or 1]
jbe@214 44 end
jbe@214 45 end
jbe@214 46
jbe@214 47 --//--

Impressum / About Us