Fix some typos in ChangeLog and other files (non-functional)
[Packages/TYPO3.CMS.git] / typo3 / cli_dispatch.phpsh
index 513529d..2165050 100755 (executable)
@@ -29,7 +29,7 @@
 /**
  * Command Line Interface module dispatcher
  *
- * $Id: cli_dispatch.phpsh 2665 2007-11-05 19:38:07Z ingmars $
+ * $Id$
  *
  * @author      Kasper Skaarhoj <kasperYYYY@typo3.com>
  *
  *
  */
 
-if (PHP_SAPI!='cli') {
+if (substr(php_sapi_name(), 0, 3) == 'cgi') {
+        // sanity check: ensure that we're running in a shell or cronjob (and NOT via HTTP)
+        $checkEnvVars = array('HTTP_USER_AGENT', 'HTTP_HOST', 'SERVER_NAME', 'REMOTE_ADDR', 'REMOTE_PORT', 'SERVER_PROTOCOL');
+        foreach ($checkEnvVars as $var) {
+                if (array_key_exists($var, $_SERVER)) {
+                        echo 'SECURITY CHECK FAILD! This script cannot be used within your browser!' . chr(10);
+                        echo 'If you are suue that we run in a shell or cronjob, please unset' . chr(10);
+                        echo 'environment variable ' . $var . ' (usually using \'unset ' . $var . '\')' . chr(10);
+                        echo 'before starting this script.' . chr(10);
+                        exit;
+                }
+        }
+        unset($checkEnvVars);
+
+       // mimic CLI API in CGI API (you must use the -C/-no-chdir and the -q/--no-header switches!)
+       ini_set('html_errors', 0);
+       ini_set('implicit_flush', 1);
+       ini_set('max_execution_time', 0);
+       if (!ini_get('register_argc_argv')) {
+               $argv = $_SERVER['argv'];
+               $argc = $_SERVER['argc'];
+       }
+       define(STDIN, fopen('php://stdin', 'r'));
+       define(STDOUT, fopen('php://stdout', 'w'));
+       define(STDERR, fopen('php://stderr', 'w'));
+} elseif (php_sapi_name() != 'cli') {
        die('Not called from a command line interface (eg. a shell or scheduler).'.chr(10));
 }
 
@@ -81,7 +106,7 @@ if ($relativePath) {
 define('PATH_thisScript',$temp_PATH_thisScript);
 
 if (!isset($_SERVER['argv'][1]))       {
-       die ('First argument must be a valid key.'.chr(10));
+       die ('The first argument must be a valid key.'.chr(10));
 }
 
        // First argument is a key that points to the script configuration