Subversion Repositories prepend

Rev

Rev 13 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. <?php
  2.  
  3. $xxx_vts_prepend_config = array();
  4. if (file_exists($xxx_vts_prepend_config_file = __DIR__.'/../config.local.php')) include $xxx_vts_prepend_config_file;
  5. unset($xxx_vts_prepend_config_file);
  6. $xxx_directories_need_registerglobals = $xxx_vts_prepend_config['directories_need_registerglobals'] ?? array(); /* @phpstan-ignore-line */
  7. unset($xxx_vts_prepend_config);
  8.  
  9. $xxx_go = false;
  10. foreach ($xxx_directories_need_registerglobals as $xxx_directory_need_registerglobals) { /* @phpstan-ignore-line */
  11.         if ($xxx_negate = (substr($xxx_directory_need_registerglobals,0,1) === '!')) {
  12.                 $xxx_directory_need_registerglobals = substr($xxx_directory_need_registerglobals,1);
  13.         }
  14.         if (strpos($_SERVER['SCRIPT_FILENAME']??'', $xxx_directory_need_registerglobals) === 0) {
  15.                 $xxx_go = !$xxx_negate;
  16.         }
  17.         if (strpos(rtrim($_SERVER['PWD']??'',DIRECTORY_SEPARATOR), rtrim($xxx_directory_need_registerglobals,DIRECTORY_SEPARATOR)) === 0) {
  18.                 $xxx_go = !$xxx_negate;
  19.         }
  20.         unset($xxx_negate);
  21. }
  22. unset($xxx_directories_need_registerglobals);
  23. unset($xxx_directory_need_registerglobals);
  24.  
  25. if ($xxx_go) { /* @phpstan-ignore-line */
  26.         # Warum so viele ___ ? Damit man auf keinen Fall ein GET/POST Argument mit diesen Variablen überschreibt!
  27.         foreach ($_REQUEST as $___key___ => $___val___) {
  28.                 global ${$___key___};
  29.                 ${$___key___} = $___val___;
  30.         }
  31.         unset($___key___);
  32.         unset($___val___);
  33. }
  34. unset($xxx_go);
  35.