webmcp
annotate framework/env/request/get_param.lua @ 347:169dfbd0246a
Prohibit public access to listing of subdirectories in static/ (on BSD systems)
| author | jbe |
|---|---|
| date | Thu Mar 26 03:00:04 2015 +0100 (2015-03-26) |
| parents | 061ee100f1c1 |
| 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 --//-- |