Advertisement
Guest User

webformmailer.php

a guest
Dec 21st, 2012
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.89 KB | None | 0 0
  1. From webformmailer.php
  2.  
  3. <?php
  4.  
  5. if ( !isset($_SERVER['SPI'])) {
  6. die();
  7. }
  8.  
  9. if (!isset($_SERVER['DOCUMENT_ROOT'])) {
  10. echo("CRITICAL: we seem to be running outside of the norm.\n");
  11. header("Location: http://".$_SERVER["HTTP_HOST"]."/");
  12. die("CRITICAL: Document root unavailable.\n");
  13. }
  14.  
  15. $request_method = $_SERVER["REQUEST_METHOD"];
  16. if($request_method == "GET") {
  17. $query_vars = $_GET;
  18. }
  19. elseif ($request_method == "POST") {
  20. $query_vars = $_POST;
  21. }
  22. reset($query_vars);
  23.  
  24. function customsort($a,$b) {
  25. // $a is array for form vars, $b is comma seperated case sensitive field order
  26. // this is case sensitive -- good idea to hrc that.
  27. $data = array();
  28. if ( strstr($b,',') == FALSE ) {
  29. $b = $b.",";
  30. }
  31. $ordering = split(',',$b);
  32. foreach ($ordering as $orderitem) {
  33. if ( ($orderitem != null) && ($orderitem != "") ) {
  34. if (isset($a[$orderitem])) {
  35. $data[$orderitem] = $a[$orderitem];
  36. }
  37. }
  38. }
  39. foreach ($a as $key=>$val) {
  40. $data[$key] = $a[$key];
  41. }
  42. return $data;
  43. }
  44.  
  45. function xmlentities($string) {
  46. return str_replace ( array('&', '"', "'", '<', '>'), array('&amp;', '&quot;', '&apos;', '&lt;', '&gt;'), $string);
  47. }
  48.  
  49. $t = date("U");
  50.  
  51. $formhomedir = preg_replace('/.*\/home\/content/','',$_SERVER['DOCUMENT_ROOT']);
  52. $formhomedir = explode('/',$formhomedir);
  53. $formhome="/home/content".$formhomedir[0]."/".$formhomedir[1]."/".$formhomedir[2]."/".$formhomedir[3]."/".$formhomedir[4]."/data/";
  54.  
  55. $file_order = ".default";
  56. $file_format = ".text";
  57. $file_interval = ".15m";
  58. $field_order = "";
  59.  
  60. if (isset($query_vars['form_order'])) {
  61. if ($query_vars['form_order'] != "alpha") {
  62. $field_order=$query_vars['form_order'];
  63. $file_order=".custom";
  64. $query_vars = customsort($query_vars,$field_order);
  65. }
  66. else {
  67. switch ($query_vars['form_order']) {
  68. case "alpha":
  69. uksort($query_vars,'strnatcasecmp');
  70. $file_order=".alpha";
  71. break;
  72. default:
  73. $file_order=".default";
  74. break;
  75. }
  76. }
  77. }
  78.  
  79. if (isset($query_vars['form_format'])) {
  80. switch ($query_vars['form_format']) {
  81. case "csv":
  82. $file_format = ".csv";
  83. break;
  84. case "html":
  85. $file_format = ".html";
  86. break;
  87. case "xml":
  88. $file_format = ".xml";
  89. break;
  90. case "text":
  91. case "default":
  92. default:
  93. $file_format = ".text";
  94. break;
  95. }
  96. }
  97.  
  98. if (isset($query_vars['form_delivery'])) {
  99. switch ($query_vars['form_delivery']) {
  100. case "hourly":
  101. $file_interval = ".60m";
  102. break;
  103. case "hourly_digest":
  104. $file_interval = ".60mc";
  105. break;
  106. case "daily":
  107. $file_interval = ".24h";
  108. break;
  109. case "daily_digest":
  110. $file_interval = ".24hc";
  111. break;
  112. case "digest":
  113. $file_interval = ".15mc";
  114. break;
  115. case "default":
  116. default:
  117. $file_interval = ".15m";
  118. break;
  119. }
  120. }
  121.  
  122. $file = $formhome."form_".$t.$file_order.$file_format.$file_interval;
  123. $fp = fopen($file,"w");
  124.  
  125. switch ($file_format) {
  126. case ".csv":
  127. $csvkeys = "";
  128. $csvvals= "";
  129. $firsttime = "";
  130. while (list ($key, $val) = each ($query_vars)) {
  131. if ( ($key == "form_order") ||
  132. ($key == "form_format") ||
  133. ($key == "form_delivery") ||
  134. ($key == "redirect") ) {
  135. }
  136. else {
  137. if ($csvkeys != "") {
  138. $firsttime=",";
  139. }
  140. $tmpkey=escapeshellcmd($key);
  141. $csvkeys = $csvkeys.$firsttime."'".$tmpkey."'";
  142. $tmpval=escapeshellcmd($val);
  143. $csvvals = $csvvals.$firsttime."'".$tmpval."'";
  144. }
  145. }
  146. fputs($fp,"$csvkeys\n");
  147. fputs($fp,"$csvvals\n");
  148. break;
  149. case ".html":
  150. fputs($fp,"<table border=\"1\" cellspacing=\"1\" cellpadding=\"2\">\n");
  151. break;
  152. case ".xml":
  153. fputs($fp,"<form>\n");
  154. break;
  155. }
  156.  
  157. while (list ($key, $val) = each ($query_vars)) {
  158. if ($key == "redirect") {
  159. $landing_page = $val;
  160. }
  161. if ( ($key == "form_order") ||
  162. ($key == "form_format") ||
  163. ($key == "form_delivery") ||
  164. ($key == "redirect") ) {
  165.  
  166. }
  167. else {
  168. switch ($file_format) {
  169. case ".html":
  170. fputs($fp,"\t<tr>\n");
  171. fputs($fp,"\t\t<td><b>$key</b></td>\n");
  172. fputs($fp,"\t\t<td>$val</td>\n");
  173. fputs($fp,"\t</tr>\n");
  174.  
  175. break;
  176. case ".csv":
  177. // content is already output
  178. break;
  179. case ".xml":
  180. fputs($fp,"\t<field>\n");
  181. fputs($fp,"\t\t<fieldname>".xmlentities($key)."</fieldname>\n");
  182. fputs($fp,"\t\t<fieldvalue>".xmlentities($val)."</fieldvalue>\n");
  183. fputs($fp,"\t</field>\n");
  184. break;
  185. case ".text":
  186. default:
  187. fputs($fp,$key.": ".$val."\n");
  188. break;
  189. }
  190. }
  191. }
  192.  
  193. switch ($file_format) {
  194. case ".html":
  195. fputs($fp,"</table>\n");
  196. break;
  197. case ".xml":
  198. fputs($fp,"</form>\n");
  199. break;
  200. }
  201.  
  202.  
  203. fclose($fp);
  204.  
  205. if ($landing_page != "") {
  206. header("Location: http://".$_SERVER["HTTP_HOST"]."/$landing_page");
  207. }
  208. else {
  209. header("Location: http://".$_SERVER["HTTP_HOST"]."/");
  210. }
  211.  
  212.  
  213. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement