RAccServer.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace fcgisrv;
  3. require_once(BASE_ROOT_PATH . '/helper/area_helper.php');
  4. require_once(BASE_CORE_PATH . '/framework/function/http.php');
  5. require_once(BASE_ROOT_PATH . '/helper/session_helper.php');
  6. require_once(BASE_ROOT_PATH . '/helper/sensitive_word/dfa.php');
  7. require_once(BASE_ROOT_PATH . '/helper/exceptionex.php');
  8. require_once(BASE_ROOT_PATH . '/helper/session_helper.php');
  9. require_once(BASE_HELPER_PATH . '/fcgisrv/BaseServer.php');
  10. require_once(BASE_HELPER_PATH . '/refill/util.php');
  11. require_once(BASE_HELPER_PATH . '/session.php');
  12. use Log;
  13. use Base;
  14. use UnSignException;
  15. use Exception;
  16. use merchantControl;
  17. use errcode;
  18. use session;
  19. class RAccServer extends BaseServer
  20. {
  21. public function __construct($subPath)
  22. {
  23. parent::__construct($subPath);
  24. $exfiles = [
  25. ];
  26. $this->setExFiles($exfiles);
  27. }
  28. static private $stInstance = NULL;
  29. static public function instance()
  30. {
  31. if(self::$stInstance == NULL) {
  32. self::$stInstance = new RAccServer('racc');
  33. }
  34. return self::$stInstance;
  35. }
  36. protected function is_exclude($file)
  37. {
  38. $exister = function ($file,$subex)
  39. {
  40. $path = BASE_ROOT_PATH . "/" . $this->mSubPath . "/$subex";
  41. $basename = basename($file);
  42. $tmp = "$path/$basename";
  43. return file_exists($tmp);
  44. };
  45. $ret = parent::is_exclude($file);
  46. if ($ret) {
  47. return true;
  48. }
  49. global $config;
  50. $exclude_dirs = $config['racc_exclude_dirs'];
  51. foreach ($exclude_dirs as $dir)
  52. {
  53. if($exister($file,$dir)) {
  54. return true;
  55. }
  56. }
  57. return false;
  58. }
  59. function handle_req($file)
  60. {
  61. try
  62. {
  63. fcgi_header("Content-Type: text/html; charset=UTF-8");
  64. if(file_exists($file))
  65. {
  66. if($this->is_exclude($file)) {
  67. include $file;
  68. } else {
  69. Base::mobile_control();
  70. }
  71. session::instance()->end(false);
  72. }
  73. else
  74. {
  75. echo "no such file.";
  76. }
  77. }
  78. catch (UnSignException $ex) {
  79. merchantControl::outerr(errcode::ErrUnLogin,errcode::msg(errcode::ErrUnLogin));
  80. }
  81. catch (Exception $ex) {
  82. merchantControl::outerr($ex->getCode(),$ex->getMessage());
  83. Log::record("run_looper exception catch code={$ex->getCode()} msg={$ex->getMessage()} trace={$ex->getTraceAsString()}",Log::ERR);
  84. }
  85. }
  86. }