version 0.1.12
[fms.git] / src / http / pages / execquerypage.cpp
diff --git a/src/http/pages/execquerypage.cpp b/src/http/pages/execquerypage.cpp
new file mode 100644 (file)
index 0000000..f86579a
--- /dev/null
@@ -0,0 +1,55 @@
+#include "../../../include/http/pages/execquerypage.h"\r
+#include "../../../include/stringfunctions.h"\r
+\r
+#ifdef XMEM\r
+       #include <xmem.h>\r
+#endif\r
+\r
+const std::string ExecQueryPage::GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)\r
+{\r
+       std::string content="";\r
+\r
+       if(queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="execute" && queryvars.find("query")!=queryvars.end() && (*queryvars.find("query")).second!="")\r
+       {\r
+               SQLite3DB::Recordset rs=m_db->Query((*queryvars.find("query")).second);\r
+\r
+               content+="<table>";\r
+               while(!rs.AtEnd())\r
+               {\r
+                       content+="<tr>";\r
+                       for(int i=0; i<rs.Cols(); i++)\r
+                       {\r
+                               content+="<td>";\r
+                               if(rs.GetField(i))\r
+                               {\r
+                                       content+=rs.GetField(i);\r
+                               }\r
+                               content+="</td>";\r
+                       }\r
+                       content+="</tr>";\r
+                       rs.Next();\r
+               }\r
+               content+="</table>";\r
+       }\r
+\r
+       content+="<h2>Execute Query</h2>";\r
+       content+="<form name=\"frmquery\" method=\"POST\">";\r
+       content+="<input type=\"hidden\" name=\"formaction\" value=\"execute\">";\r
+       content+="<textarea name=\"query\" rows=\"10\" cols=\"80\"></textarea>";\r
+       content+="<input type=\"submit\" value=\"Execute Query\">";\r
+       content+="</form>";\r
+\r
+       return "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"+StringFunctions::Replace(m_template,"[CONTENT]",content);\r
+}\r
+\r
+const bool ExecQueryPage::WillHandleURI(const std::string &uri)\r
+{\r
+       if(uri.find("execquery.")!=std::string::npos)\r
+       {\r
+               return true;\r
+       }\r
+       else\r
+       {\r
+               return false;\r
+       }\r
+}\r