Antony Dovgal wrote:
>>> What's in modx/index.php ?
>>> Looking at the backtrace, I'd say there is an infinite loop.

<?php
/*
*************************************************************************
        MODx Content Management System and PHP Application Framework
        Managed and maintained by Raymond Irving, Ryan Thrash and the
        MODx community
*************************************************************************
        MODx is an opensource PHP/MySQL content management system and
content
        management framework that is flexible, adaptable, supports XHTML/CSS
        layouts, and works with most web browsers, including Safari.

        MODx is distributed under the GNU General Public License
*************************************************************************

        MODx CMS and Application Framework ("MODx")
        Copyright 2005 and forever thereafter by Raymond Irving & Ryan
Thrash.
        All rights reserved.

        This file and all related or dependant files distributed with
this filie
        are considered as a whole to make up MODx.

        MODx is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation; either version 2 of the License, or
        (at your option) any later version.

        MODx is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.

        You should have received a copy of the GNU General Public License
        along with MODx (located in "/assets/docs/"); if not, write to
the Free Software
        Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307  USA

        For more information on MODx please visit http://modxcms.com/

**************************************************************************
    Originall based on Etomite by Alex Butter
**************************************************************************
*/

/**
 * Initialize Document Parsing
 * -----------------------------
 */

// get start time
$mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] +
$mtime[0]; $tstart = $mtime;

// secure variables from outside
$modxtags = array('@<script[^>]*?>.*?</script>@si',
                  '@&#(\d+);@e',
                  '@\[\[(.*?)[EMAIL PROTECTED]',
                  '@\[!(.*?)[EMAIL PROTECTED]',
                  '@\[\~(.*?)[EMAIL PROTECTED]',
                  '@\[\((.*?)\)[EMAIL PROTECTED]',
                  '@{{(.*?)[EMAIL PROTECTED]',
                  '@\[\*(.*?)[EMAIL PROTECTED]');
foreach($_POST as $key => $value) {
  $_POST[$key] = preg_replace($modxtags,"", $value);
}
foreach($_GET as $key => $value) {
  $_GET[$key] = preg_replace($modxtags,"", $value);
}

$_SERVER['HTTP_USER_AGENT'] = isset($_SERVER['HTTP_USER_AGENT']) ?
preg_replace("/[^A-Za-z0-9_\-\,\.\/\s]/", "",
$_SERVER['HTTP_USER_AGENT']): '';
$_SERVER['HTTP_REFERER'] = isset($_SERVER['HTTP_REFERER']) ?
preg_replace($modxtags,"", $_SERVER['HTTP_REFERER']) : '';
if(strlen($_SERVER['HTTP_USER_AGENT'])>255) $_SERVER['HTTP_USER_AGENT']
= substr(0,255,$_SERVER['HTTP_USER_AGENT']);
if(isset($_GET['q'])) $_GET['q'] = preg_replace("/[^A-Za-z0-9_\-\.\/]/",
"", $_GET['q']);

// first, set some settings, and address some IE issues
@ini_set('url_rewriter.tags', '');
@ini_set('session.use_trans_sid', 0);
@ini_set('session.use_only_cookies',1);
session_cache_limiter('');
header('P3P: CP="NOI NID ADMa OUR IND UNI COM NAV"'); // header for
weird cookie stuff. Blame IE.
header('Cache-Control: private, must-revalidate');
ob_start();
error_reporting(E_ALL & ~E_NOTICE);

/**
 *      Filename: index.php
 *      Function: This file loads and executes the parser. *
 */

define("IN_ETOMITE_PARSER", "true"); // provides compatibility with
etomite 0.6 and maybe later versions
define("IN_PARSER_MODE", "true");
define("IN_MANAGER_MODE", "false");

// initialize the variables prior to grabbing the config file
$database_type = '';
$database_server = '';
$database_user = '';
$database_password = '';
$dbase = '';
$table_prefix = '';
$base_url = '';
$base_path = '';

// get the required includes
if($database_user=="") {
        $rt = @include_once "manager/includes/config.inc.php";
        // Be sure config.inc.php is there and that it contains some
important values
        if(!$rt || !$database_type || !$database_server ||
!$database_user || !$dbase) {
        echo "
<style type=\"text/css\">
*{margin:0;padding:0}
body{margin:50px;background:#eee;}
.install{padding:10px;border:5px solid #f22;background:#f99;margin:0
auto;font:120%/1em serif;text-align:center;}
p{ margin:20px 0; }
a{font-size:200%;color:#f22;text-decoration:underline;margin-top:
30px;padding: 5px;}
</style>
<div class=\"install\">
<p>MODx is not currently installed or the configuration file cannot be
found.</p>
<p>Do you want to <a href=\"install/index.php\">install now</a>?</p>
</div>";
                exit;
        }
}

// start session
startCMSSession();

// initiate a new document parser
include_once($base_path."manager/includes/document.parser.class.inc.php");
$modx = new DocumentParser;
$etomite = &$modx; // for backward compatibility

// set some parser options
$modx->minParserPasses = 1; // min number of parser recursive loops or
passes
$modx->maxParserPasses = 10; // max number of parser recursive loops or
passes
$modx->dumpSQL = false;
$modx->dumpSnippets = false; // feed the parser the execution start time
$modx->tstart = $tstart;

// Debugging mode:
$modx->stopOnNotice = false;

// Don't show PHP errors to the public
if(!isset($_SESSION['mgrValidated']) || !$_SESSION['mgrValidated'])
@ini_set("display_errors","0");

// execute the parser
$modx->executeParser();
?>

I have pasted the modx/index.php file above, but it includes so many
files, you might want to download it from http://www.modxcms.com

Chris

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to