diff options
Diffstat (limited to 'src/civetweb/test/page.lp')
-rw-r--r-- | src/civetweb/test/page.lp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/civetweb/test/page.lp b/src/civetweb/test/page.lp new file mode 100644 index 00000000..3e012e26 --- /dev/null +++ b/src/civetweb/test/page.lp @@ -0,0 +1,71 @@ +HTTP/1.0 200 OK +Content-Type: text/html + +<html><body> + + +<p>This is another example of a Lua server page, served by +<a href="https://github.com/civetweb/civetweb/">CivetWeb web server</a>. +</p><p> +The following features are available: +<ul> +<? + mg.write("<li>" .. _VERSION .. " server pages</li>") + if sqlite3 then + mg.write("<li>sqlite3 binding</li>") + end + if lfs then + mg.write("<li>lua file system</li>") + end +?> +</ul></p> +<p> Today is <? mg.write(os.date("%A")) ?></p> +<p> URI is <? mg.write(mg.request_info.uri) ?></p> +<p> URI is <?=mg.request_info.uri?></p> + +<p>Database example: +<pre> +<? + -- Open database + local db = sqlite3.open('requests.db') + -- Note that the data base is located in the current working directory + -- of the process if no other path is given here. + + -- Setup a trace callback, to show SQL statements we'll be executing. + -- db:trace(function(data, sql) mg.write('Executing: ', sql: '\n') end, nil) + + -- Create a table if it is not created already + db:exec([[ + CREATE TABLE IF NOT EXISTS requests ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + timestamp NOT NULL, + method NOT NULL, + uri NOT NULL, + addr + ); + ]]) + + -- Add entry about this request + local stmt = db:prepare( + 'INSERT INTO requests VALUES(NULL, datetime("now"), ?, ?, ?);'); + stmt:bind_values(mg.request_info.request_method, + mg.request_info.uri, + mg.request_info.remote_port) + stmt:step() + stmt:finalize() + + -- Show all previous records + mg.write('Previous requests:\n') + stmt = db:prepare('SELECT * FROM requests ORDER BY id DESC;') + while stmt:step() == sqlite3.ROW do + local v = stmt:get_values() + mg.write(v[1] .. ' ' .. v[2] .. ' ' .. v[3] .. ' ' + .. v[4] .. ' ' .. v[5] .. '\n') + end + + -- Close database + db:close() +?> +</pre></p> + +</body></html> |