test1.cppsp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <%#
  2. #include <iostream>
  3. #include <unistd.h>
  4. #include <sys/types.h>
  5. #include <stdexcept>
  6. #include <cppsp/common.H>
  7. #include <delegate.H>
  8. #include <dirent.h>
  9. int aaaaa=0;
  10. %>
  11. <%@ class p %>
  12. <%#
  13. void listDir(string dir,const function<void(dirent&)>& cb)
  14. {
  15. DIR* d=opendir(dir.c_str());
  16. if(d==NULL) {
  17. throw runtime_error(strerror(errno));
  18. return;
  19. }
  20. int len = offsetof(dirent, d_name) + pathconf(dir.c_str(), _PC_NAME_MAX) + 1;
  21. char ent[len];
  22. dirent* ent1=(dirent*)ent;
  23. while(readdir_r(d, (dirent*)ent, &ent1)==0 && ent1!=NULL) {
  24. if(strcmp(ent1->d_name, ".")==0 || strcmp(ent1->d_name, "..")==0)
  25. continue;
  26. cb(*ent1);
  27. }
  28. closedir(d);
  29. }
  30. %>
  31. <html>
  32. <head>
  33. <title>fgdhjf</title>
  34. </head>
  35. <body>
  36. <table border="1">
  37. <tr>
  38. <td>UID: </td>
  39. <td><%=getuid()%></td>
  40. </tr>
  41. <tr>
  42. <td>GID: </td>
  43. <td><%=getgid()%></td>
  44. </tr>
  45. </table>
  46. <form method="post" action="1.cppsp?a=1111111&b=222222">
  47. <input type="text" name="input1" /><br />
  48. <input type="text" name="input2" />
  49. <input type="submit" value="click here" />
  50. </form>
  51. <%="ddd"%>
  52. s
  53. gsjdhkh
  54. test1
  55. <%
  56. for(int i=0;i<10;i++) {
  57. %>
  58. gfdsgsfdgdsf<br />
  59. <%
  60. }
  61. //throw runtime_error("aaaaa");
  62. %>
  63. <%=(++aaaaa)%><br />
  64. <br />=============================<br />
  65. <table border="1">
  66. <%
  67. listDir(server->mapPath("/"), [&](dirent& d) {
  68. %>
  69. <tr>
  70. <td><%=htmlEscape(d.d_name)%></td>
  71. </tr>
  72. <%
  73. });
  74. %>
  75. </table>
  76. </body>
  77. </html>