| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | HTTP/1.0 200 OKContent-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,      civetwebversion,      luaversion,      aux    );  ]])  -- Add columns to table created with older version  db:exec("ALTER TABLE requests ADD COLUMN civetwebversion;")  db:exec("ALTER TABLE requests ADD COLUMN luaversion;")  db:exec("ALTER TABLE requests ADD COLUMN aux;")  -- 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,                   mg.version,                   _VERSION,                   ""                   )  -- 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>
 |