Exemplo n.º 1
0
function genMySQLErr($out, $query = '')
{
    global $site;
    $aBackTrace = debug_backtrace();
    unset($aBackTrace[0]);
    if ($query) {
        //try help to find error
        $aFoundError = array();
        foreach ($aBackTrace as $aCall) {
            foreach ($aCall['args'] as $argNum => $argVal) {
                if (is_string($argVal) and strcmp($argVal, $query) == 0) {
                    $aFoundError['file'] = $aCall['file'];
                    $aFoundError['line'] = $aCall['line'];
                    $aFoundError['function'] = $aCall['function'];
                    $aFoundError['arg'] = $argNum;
                }
            }
        }
        if ($aFoundError) {
            $sFoundError = <<<EOJ
<b>Found error</b> in file <b>{$aFoundError['file']}</b><br />
at line <b>{$aFoundError['line']}</b>. Called <b>{$aFoundError['function']}</b> function 
with erroneous argument #<b>{$aFoundError['arg']}</b><br />
<br />

EOJ;
        }
    }
    if (DB_FULL_VISUAL_PROCESSING) {
        ?>
			<div style="border:2px solid red;padding:4px;width:600px;margin:0px auto;">
				<div style="text-align:center;background-color:red;color:white;font-weight:bold;">Error</div>
				<div style="text-align:center;"><?php 
        echo $out;
        ?>
</div>
		<?php 
        if (DB_FULL_DEBUG_MODE) {
            if (strlen($query)) {
                echo "<div><b>Query:</b><br />{$query}</div>";
            }
            echo '<div><b>Mysql error:</b><br />' . mysql_error() . '</div>';
            echo '<div style="overflow:scroll;height:300px;border:1px solid gray;">';
            echo $sFoundError;
            echo "<b>Debug backtrace:</b><br />";
            echoDbg($aBackTrace);
            echo "<b>Called script:</b> {$_SERVER['PHP_SELF']}<br />";
            echo "<b>Request parameters:</b><br />";
            echoDbg($_REQUEST);
            echo '</div>';
        }
        ?>
			</div>
		<?php 
    } else {
        echo $out;
    }
    if (DB_DO_EMAIL_ERROR_REPORT) {
        $sMailBody = "Database error in <SiteName>\n";
        if (strlen($query)) {
            $sMailBody .= "Query:\n{$query}\n\n";
        }
        $sMailBody .= "Mysql error:\n" . mysql_error() . "\n\n";
        $sMailBody .= strip_tags($sFoundError);
        $sMailBody .= "Debug backtrace:\n" . print_r($aBackTrace, true) . "\n\n";
        $sMailBody .= "Called script: {$_SERVER['PHP_SELF']}\n\n";
        $sMailBody .= "Request parameters:\n" . print_r($_REQUEST, true) . "\n\n";
        $sMailBody .= "--\nAuto-report system\n";
        sendMail($site['bugReportMail'], "Database error in <SiteName>", $sMailBody);
    }
    exit;
}
Exemplo n.º 2
0
 protected function verboseErrorOutput($query, $sFoundError, &$aBackTrace, $sParamsOutput)
 {
     ob_start();
     if (!empty($query)) {
         echo "<div><b>Query:</b><br />{$query}</div>";
     }
     if ($this->_rLink) {
         echo '<div><b>Mysql error:</b><br />' . $this->getErrorMessage() . '</div>';
     }
     echo '<div style="overflow:scroll;height:300px;border:1px solid gray;">';
     echo $sFoundError;
     echo "<b>Debug backtrace:</b><br />";
     $sBackTrace = print_r($aBackTrace, true);
     $sBackTrace = str_replace('[password] => ' . BX_DATABASE_PASS, '[password] => *****', $sBackTrace);
     $sBackTrace = str_replace('[user] => ' . BX_DATABASE_USER, '[user] => *****', $sBackTrace);
     echo '<pre>' . htmlspecialchars_adv($sBackTrace) . '</pre>';
     if ($sParamsOutput) {
         echo '<hr />';
         echo "<b>Settings:</b><br />";
         echo '<pre>' . htmlspecialchars_adv($sParamsOutput) . '</pre>';
     }
     echo "<b>Called script:</b> " . $_SERVER['PHP_SELF'] . "<br />";
     echo "<b>Request parameters:</b><br />";
     echoDbg($_REQUEST);
     echo '</div>';
     return ob_get_clean();
 }
Exemplo n.º 3
0
    function genMySQLErr($sOutput, $query = '')
    {
        $sParamsOutput = false;
        $sFoundError = '';
        $aBackTrace = debug_backtrace();
        unset($aBackTrace[0]);
        if ($query) {
            //try help to find error
            $aFoundError = array();
            foreach ($aBackTrace as $aCall) {
                // truncating global settings since it repeated many times and output it separately
                if (isset($aCall['object']) && property_exists($aCall['object'], '_aParams')) {
                    if (false === $sParamsOutput) {
                        $sParamsOutput = var_export($aCall['object']->_aParams, true);
                    }
                    $aCall['object']->_aParams = '[truncated]';
                }
                if (isset($aCall['args']) && is_array($aCall['args'])) {
                    foreach ($aCall['args'] as $argNum => $argVal) {
                        if (is_string($argVal) and strcmp($argVal, $query) == 0) {
                            $aFoundError['file'] = isset($aCall['file']) ? $aCall['file'] : (isset($aCall['class']) ? 'class: ' . $aCall['class'] : 'undefined');
                            $aFoundError['line'] = isset($aCall['line']) ? $aCall['line'] : 'undefined';
                            $aFoundError['function'] = $aCall['function'];
                            $aFoundError['arg'] = $argNum;
                        }
                    }
                }
            }
            if ($aFoundError) {
                $sFoundError = <<<EOJ
Found error in the file '<b>{$aFoundError['file']}</b>' at line <b>{$aFoundError['line']}</b>.<br />
Called '<b>{$aFoundError['function']}</b>' function with erroneous argument #<b>{$aFoundError['arg']}</b>.<br /><br />
EOJ;
            }
        }
        bx_import('BxDolConfig');
        if (defined('BX_DB_FULL_VISUAL_PROCESSING') && BX_DB_FULL_VISUAL_PROCESSING) {
            ob_start();
            ?>
                <div style="border:2px solid red;padding:4px;width:600px;margin:0px auto;">
                    <div style="text-align:center;background-color:red;color:white;font-weight:bold;">Error</div>
                    <div style="text-align:center;"><?php 
            echo $sOutput;
            ?>
</div>
            <?php 
            if (defined('BX_DB_FULL_DEBUG_MODE') && BX_DB_FULL_DEBUG_MODE) {
                if (!empty($query)) {
                    echo "<div><b>Query:</b><br />{$query}</div>";
                }
                if ($this->_rLink) {
                    echo '<div><b>Mysql error:</b><br />' . $this->getErrorMessage() . '</div>';
                }
                echo '<div style="overflow:scroll;height:300px;border:1px solid gray;">';
                echo $sFoundError;
                echo "<b>Debug backtrace:</b><br />";
                $sBackTrace = print_r($aBackTrace, true);
                $sBackTrace = str_replace('[password] => ' . BX_DATABASE_PASS, '[password] => *****', $sBackTrace);
                $sBackTrace = str_replace('[user] => ' . BX_DATABASE_USER, '[user] => *****', $sBackTrace);
                echo '<pre>' . $sBackTrace . '</pre>';
                if ($sParamsOutput) {
                    echo '<hr />';
                    echo "<b>Settings:</b><br />";
                    echo '<pre>' . htmlspecialchars_adv($sParamsOutput) . '</pre>';
                }
                echo "<b>Called script:</b> " . $_SERVER['PHP_SELF'] . "<br />";
                echo "<b>Request parameters:</b><br />";
                echoDbg($_REQUEST);
                echo '</div>';
            }
            ?>
                </div>
            <?php 
            $sOutput = ob_get_clean();
        }
        if (defined('BX_DB_DO_EMAIL_ERROR_REPORT') && BX_DB_DO_EMAIL_ERROR_REPORT) {
            $sSiteTitle = $this->getParam('site_title');
            $sMailBody = "Database error in " . $sSiteTitle . "<br /><br /> \n";
            if (strlen($query)) {
                $sMailBody .= "Query:  <pre>" . htmlspecialchars_adv($query) . "</pre> ";
            }
            if ($this->_rLink) {
                $sMailBody .= "Mysql error: " . $this->getErrorMessage() . "<br /><br /> ";
            }
            $sMailBody .= $sFoundError . '<br /> ';
            $sBackTrace = print_r($aBackTrace, true);
            $sBackTrace = str_replace('[password] => ' . BX_DATABASE_PASS, '[password] => *****', $sBackTrace);
            $sBackTrace = str_replace('[user] => ' . BX_DATABASE_USER, '[user] => *****', $sBackTrace);
            $sMailBody .= "Debug backtrace:\n <pre>" . htmlspecialchars_adv($sBackTrace) . "</pre> ";
            if ($sParamsOutput) {
                $sMailBody .= "<hr />Settings:\n <pre>" . htmlspecialchars_adv($sParamsOutput) . "</pre> ";
            }
            $sMailBody .= "<hr />Called script: " . $_SERVER['PHP_SELF'] . "<br /> ";
            $sMailBody .= "<hr />Request parameters: <pre>" . print_r($_REQUEST, true) . " </pre>";
            $sMailBody .= "--\nAuto-report system\n";
            sendMail($this->getParam('site_email'), "Database error in " . $sSiteTitle, $sMailBody, 0, array(), BX_EMAIL_SYSTEM, 'html', true);
        }
        bx_show_service_unavailable_error_and_exit($sOutput);
    }
Exemplo n.º 4
0
    function genMySQLErr($out, $query = '')
    {
        global $site;
        $aBackTrace = debug_backtrace();
        unset($aBackTrace[0]);
        if ($query) {
            //try help to find error
            $aFoundError = array();
            foreach ($aBackTrace as $aCall) {
                foreach ($aCall['args'] as $argNum => $argVal) {
                    if (is_string($argVal) and strcmp($argVal, $query) == 0) {
                        $aFoundError['file'] = $aCall['file'];
                        $aFoundError['line'] = $aCall['line'];
                        $aFoundError['function'] = $aCall['function'];
                        $aFoundError['arg'] = $argNum;
                    }
                }
            }
            if ($aFoundError) {
                $sFoundError = <<<EOJ
Found error in the file '<b>{$aFoundError['file']}</b>' at line <b>{$aFoundError['line']}</b>.<br />
Called '<b>{$aFoundError['function']}</b>' function with erroneous argument #<b>{$aFoundError['arg']}</b>.<br /><br />
EOJ;
            }
        }
        if (BX_UPGRADE_DB_FULL_VISUAL_PROCESSING) {
            ?>
                <div style="border:2px solid red;padding:4px;width:600px;margin:0px auto;">
                    <div style="text-align:center;background-color:red;color:white;font-weight:bold;">Error</div>
                    <div style="text-align:center;"><?php 
            echo $out;
            ?>
</div>
            <?php 
            if (BX_UPGRADE_DB_FULL_DEBUG_MODE) {
                if (strlen($query)) {
                    echo "<div><b>Query:</b><br />{$query}</div>";
                }
                echo '<div><b>Mysql error:</b><br />' . mysql_error($this->link) . '</div>';
                echo '<div style="overflow:scroll;height:300px;border:1px solid gray;">';
                echo $sFoundError;
                echo "<b>Debug backtrace:</b><br />";
                echoDbg($aBackTrace);
                echo "<b>Called script:</b> {$_SERVER['PHP_SELF']}<br />";
                echo "<b>Request parameters:</b><br />";
                echoDbg($_REQUEST);
                echo '</div>';
            }
            ?>
                </div>
            <?php 
        } else {
            echo $out;
        }
        exit;
    }
Exemplo n.º 5
0
/**
 * page code function
 */
function PageCompMainCode()
{
    $oDb = BxDolDb::getInstance();
    // config: for data generation
    $iMutual = 2;
    // around 2 mutual connections for each profile
    $iOneWay = 1;
    // around 1 one-way connections for each profile
    $sTable = "`sys_profiles_conn_connections`";
    // to clean table before inserting genrated data
    // config: for displaying and data generation
    $sType = 'bx_persons';
    // profiles type
    $sObject = 'sys_profiles_friends';
    // connections object
    if ('gen' == bx_get('action') || isset($_SERVER['argv'][1]) && 'gen' == $_SERVER['argv'][1]) {
        echo "\nConnections Generation:  <br />\n";
        GenerateData($iMutual, $iOneWay, $sTable, $sType, $sObject);
        echo "\nData has been generated";
        exit;
    }
    ob_start();
    $sMethod = bx_get('method');
    $iProfileId = bx_get('id');
    if (!$iProfileId) {
        $sQueryOrig = "SELECT `id` FROM `sys_profiles` WHERE `type` = ? AND `status` = 'active' ORDER BY RAND() LIMIT 1";
        $sQueryPrepared = $oDb->prepare($sQueryOrig, $sType);
        $iProfileId = $oDb->getOne($sQueryPrepared);
    }
    $iProfileId2 = bx_get('id2');
    if (!$iProfileId2) {
        $sQueryOrig = "SELECT `id` FROM `sys_profiles` WHERE `type` = ? AND `status` = 'active' AND `id` != ? ORDER BY RAND() LIMIT 1";
        $sQueryPrepared = $oDb->prepare($sQueryOrig, $sType, $iProfileId);
        $iProfileId2 = $oDb->getOne($sQueryPrepared);
    }
    bx_import('BxDolConnection');
    $oConnection = BxDolConnection::getObjectInstance($sObject);
    if (!$oConnection) {
        die("'{$sObject}' object is not defined.");
    }
    echo "<h1>Profile: {$iProfileId} / another one: {$iProfileId2} </h1>";
    echo '<hr class="bx-def-hr" />';
    switch ($sMethod) {
        default:
        case 'array':
            echo "<h2>Common Content (like mutual Friends between two initiators)</h2>";
            echoDbg($oConnection->getCommonContent($iProfileId, $iProfileId2, 1));
            echo "<h2>Mutual Content (like Friends)</h2>";
            echoDbg($oConnection->getConnectedContent($iProfileId, 1));
            echo "<h2>Connected Content</h2>";
            echoDbg($oConnection->getConnectedContent($iProfileId));
            echo "<h2>Connected Initiators</h2>";
            echoDbg($oConnection->getConnectedInitiators($iProfileId));
            echo "<h2>Connected Content without mutual content (like Friend Requests sent)</h2>";
            echoDbg($oConnection->getConnectedContent($iProfileId, 0));
            echo "<h2>Connected Initiators without mutual content (like Friend Requests received)</h2>";
            echoDbg($oConnection->getConnectedInitiators($iProfileId, 0));
            break;
        case 'sql':
            $f = function ($aSQLParts) use($oDb, $sType) {
                $sQueryOrig = "\n                    SELECT `p`.`id`, `d`.`fullname`\n                    FROM `bx_persons_data` AS `d`\n                    INNER JOIN `sys_profiles` AS `p` ON (`p`.`content_id` = `d`.`id` AND `p`.`type` = ?)\n                    {$aSQLParts['join']}\n                ";
                $sQueryPrepared = $oDb->prepare($sQueryOrig, $sType);
                $a = $oDb->getAll($sQueryPrepared);
                foreach ($a as $r) {
                    echo "{$r['id']} - {$r['fullname']} <br />\n";
                }
            };
            echo "<h2>Common Content (like mutual Friends between two initiators)</h2>";
            $f($oConnection->getCommonContentAsSQLParts('p', 'id', $iProfileId, $iProfileId2, 1));
            echo "<h2>Mutual Content (like Friends)</h2>";
            $f($oConnection->getConnectedContentAsSQLParts('p', 'id', $iProfileId, 1));
            echo "<h2>Connected Content</h2>";
            $f($oConnection->getConnectedContentAsSQLParts('p', 'id', $iProfileId));
            echo "<h2>Connected Initiators</h2>";
            $f($oConnection->getConnectedInitiatorsAsSQLParts('p', 'id', $iProfileId));
            echo "<h2>Connected Content without mutual content (like Friend Requests sent)</h2>";
            $f($oConnection->getConnectedContentAsSQLParts('p', 'id', $iProfileId, 0));
            echo "<h2>Connected Initiators without mutual content (like Friend Requests received)</h2>";
            $f($oConnection->getConnectedInitiatorsAsSQLParts('p', 'id', $iProfileId, 0));
            break;
        case 'search-results':
            echo "<h2>Common Content (like mutual Friends between two initiators)</h2>";
            echo BxDolService::call('bx_persons', 'browse_connections', array($iProfileId, 'sys_profiles_friends', 'common', 1, BX_DB_CONTENT_ONLY, $iProfileId2));
            echo "<h2>Mutual Content (like Friends)</h2>";
            echo BxDolService::call('bx_persons', 'browse_connections', array($iProfileId, 'sys_profiles_friends', 'content', 1, BX_DB_CONTENT_ONLY));
            echo "<h2>Connected Content</h2>";
            echo BxDolService::call('bx_persons', 'browse_connections', array($iProfileId, 'sys_profiles_friends', 'content', false, BX_DB_CONTENT_ONLY));
            echo "<h2>Connected Initiators</h2>";
            echo BxDolService::call('bx_persons', 'browse_connections', array($iProfileId, 'sys_profiles_friends', 'initiators', false, BX_DB_CONTENT_ONLY));
            echo "<h2>Connected Content without mutual content (like Friend Requests sent)</h2>";
            echo BxDolService::call('bx_persons', 'browse_connections', array($iProfileId, 'sys_profiles_friends', 'content', 0, BX_DB_CONTENT_ONLY));
            echo "<h2>Connected Initiators without mutual content (like Friend Requests received)</h2>";
            echo BxDolService::call('bx_persons', 'browse_connections', array($iProfileId, 'sys_profiles_friends', 'initiators', 0, BX_DB_CONTENT_ONLY));
            break;
    }
    $s = ob_get_clean();
    return DesignBoxContent("Connections", $s, BX_DB_PADDING_DEF);
}
function genGroupInviteForm()
{
    global $groupID;
    global $memberID;
    $sFriendsQuery = "SELECT\r\n\t\t/*`FriendList`.*,*/\r\n\t\tIF(`FriendList`.`ID`={$memberID}, `FriendList`.`Profile`, `FriendList`.`ID`) AS `ID`,\r\n\t\t`Profiles`.`NickName`\r\n\tFROM `FriendList`\r\n\tLEFT JOIN `Profiles`\r\n\tON (IF(`FriendList`.`ID`={$memberID}, `FriendList`.`Profile`, `FriendList`.`ID`) = `Profiles`.`ID`)\r\n\tWHERE\r\n\t\t(`FriendList`.`ID`={$memberID} OR `FriendList`.`Profile`={$memberID}) AND `check` =1\r\n\t";
    $rFriends = db_res($sFriendsQuery);
    $aFriends = array();
    while ($aFriend = mysql_fetch_assoc($rFriends)) {
        $aFriends[$aFriend['ID']] = $aFriend['NickName'];
    }
    ob_start();
    echoDbg($_REQUEST['invites']);
    ?>
	<form name="group_invite_form" id="group_invite_form" action="<?php 
    echo $_SERVER['PHP_SELF'];
    ?>
" method="GET" onsubmit="return checkThrowerForm();">
		<input type="hidden" name="a" value="invite" />
		<input type="hidden" name="ID" value="<?php 
    echo $groupID;
    ?>
" />
		<div class="group_invite_wrapper">
			<div class="group_invite_desc"><?php 
    echo _t('_Group invite_desc');
    ?>
</div>
			<table class="group_invite_table">
				<tr class="group_invite_tr1">
					<td class="group_invite_td1">
						<div class="group_invite_head"><?php 
    echo _t('_Your friends');
    ?>
</div>
						<select name="friends[]" id="friends" class="group_friends_list" size="10" multiple="multiple">
	<?php 
    foreach ($aFriends as $friendID => $friendNick) {
        echo "<option value=\"{$friendID}\">" . htmlspecialchars($friendNick) . "</option>\n";
    }
    ?>
						</select>
					</td>
					<td class="group_invite_td2">
						<div><input type="button" value="<?php 
    echo _t('_Add ->');
    ?>
" onclick="throwMembersFromTo();" /></div>
						<div><input type="button" value="<?php 
    echo _t('_<- Remove');
    ?>
" onclick="unthrowMembersFromTo();" /></div>
						<div><input type="button" value="<?php 
    echo _t('_Find more...');
    ?>
" onclick="findMoreMembers();" /></div>
					</td>
					<td class="group_invite_td3">
						<div class="group_invite_head"><?php 
    echo _t('_Invite list');
    ?>
</div>
						<select name="invites[]" id="invites" class="group_invites_list" size="10" multiple="multiple">
						</select>
					</td>
				</tr>
				<tr class="group_invite_tr2">
					<td colspan="3" class="group_invite_td4">
						<input type="submit" name="do_submit" value="<?php 
    echo _t('_Send invites');
    ?>
" />
					</td>
				</tr>
			</table>
		</div>
	</form>
	<?php 
    return ob_get_clean();
}
Exemplo n.º 7
0
 /**
  * Log a message at the error level.
  *
  * @param $message The message to log.
  */
 function error($message, $object = NULL) {
 	echoDbg($message);
     global $GLOBAL_YAHOO_LOGGER_DEBUG_DESTINATION;
     if($GLOBAL_YAHOO_LOGGER_DEBUG_DESTINATION == "CONSOLE") {
         print("ERROR - $message\n");
         if(!is_null($object)) {
             print("ERROR OBJECT - " . print_r($object, true) . "\n");
         }
     }
     else if($GLOBAL_YAHOO_LOGGER_DEBUG_DESTINATION == "LOG") {
         error_log("ERROR - $message");
         if(!is_null($object)) {
             error_log("ERROR OBJECT - " . print_r($object, true));
         }
     }
 }
Exemplo n.º 8
0
    function GenMainParamsTable()
    {
        $sNameC = _t('_adm_admtools_Name');
        $sValueC = _t('_adm_admtools_Value');
        $sRecommendedC = _t('_adm_admtools_Recommended');
        $sDifferentSettingsC = _t('_adm_admtools_Different_settings');
        $sInstalledApacheModulesC = _t('_adm_admtools_Installed_apache_modules');
        $sRegGlobal = ini_get('register_globals');
        $sRegGlobal = $sRegGlobal == 0 ? '<font color="green">Off</font>' : '<font color="red">On (warning, you should have this param in Off state, or your site will unsafe)</font>';
        $sSafeMode = ini_get('safe_mode');
        $sSafeMode = $sSafeMode == 0 ? '<font color="green">Off</font>' : '<font color="red">On (warning)</font>';
        $sDisabledFunc = ini_get('disable_functions');
        $sMemLimit = ini_get('memory_limit');
        $sMaxExecTime = ini_get('max_execution_time');
        $sPostMaxSize = ini_get('post_max_size');
        $sUploadMaxSize = ini_get('upload_max_filesize');
        $sAllowUrlFopen = ini_get('allow_url_fopen');
        $sAllowUrlFopen = $sAllowUrlFopen == 0 ? 'Off (warning, better keep this parameter in On to able register Dolphin' : '<font color="green">On</font>';
        $sSQLClientInfo = mysql_get_client_info();
        $sPhpVersion = phpversion();
        $sMbstring = '<font color="green">mbstring extension installed</font>';
        //check mbstring
        if (!extension_loaded('mbstring')) {
            $sMbstring = '<font color="red">mbstring extension not installed. <b>Warning!</b> Dolphin cannot work without <b>mbstring</b> extension.</font>';
        }
        $sAllowUrlInclude = $this->isAllowUrlInclude() == true ? '<font color="red">On (warning, disable it, or your site will unsafe)</font>' : '<font color="green">Off</font>';
        $sInstalledModules = '';
        if (function_exists('apache_get_modules')) {
            $aInstalledModules = apache_get_modules();
            ob_start();
            echoDbg($aInstalledModules);
            $sInstalledModules = ob_get_contents();
            ob_end_clean();
        } else {
            $sInstalledModules = 'Can`t evaluate installed modules';
        }
        $sOperationSystem = @php_uname();
        $sFfmpeg = realpath(BX_DIRECTORY_PATH_ROOT . "flash/modules/global/app/ffmpeg.exe");
        $sFfmpegOutput = `{$sFfmpeg} -version 2>&1`;
        $sRet = <<<EOF
<table width="100%" cellspacing="1" cellpadding="0" class="install_table">
\t<tr class="head troubled">
\t\t<td>{$sNameC}</td>
\t\t<td class="left_aligned">{$sValueC}</td>
\t\t<td class="left_aligned">{$sRecommendedC}</td>
\t</tr>
\t<tr class="head troubled">
\t\t<td colspan="3" style="text-align:center;">{$sDifferentSettingsC}</td>
\t</tr>
\t<tr class="head troubled">
\t\t<td>register globals</td>
\t\t<td class="left_aligned">{$sRegGlobal}</td>
\t\t<td class="left_aligned">Off</td>
\t</tr>
\t<tr class="head troubled">
\t\t<td>safe mode</td>
\t\t<td class="left_aligned">{$sSafeMode}</td>
\t\t<td class="left_aligned">Off</td>
\t</tr>
\t<tr class="head troubled">
\t\t<td>disabled functions</td>
\t\t<td class="left_aligned">{$sDisabledFunc}</td>
\t\t<td class="left_aligned"></td>
\t</tr>
\t<tr class="head troubled">
\t\t<td>memory limit</td>
\t\t<td class="left_aligned">{$sMemLimit}</td>
\t\t<td class="left_aligned">128M</td>
\t</tr>
\t<tr class="head troubled">
\t\t<td>max execution time</td>
\t\t<td class="left_aligned">{$sMaxExecTime}</td>
\t\t<td class="left_aligned">300</td>
\t</tr>
\t<tr class="head troubled">
\t\t<td>post_max_size</td>
\t\t<td class="left_aligned">{$sPostMaxSize}</td>
\t\t<td class="left_aligned">128M or more</td>
\t</tr>
\t<tr class="head troubled">
\t\t<td>upload max filesize</td>
\t\t<td class="left_aligned">{$sUploadMaxSize}</td>
\t\t<td class="left_aligned">128M or more</td>
\t</tr>
\t<tr class="head troubled">
\t\t<td>allow_url_fopen</td>
\t\t<td class="left_aligned">{$sAllowUrlFopen}</td>
\t\t<td class="left_aligned">On</td>
\t</tr>
\t<tr class="head troubled">
\t\t<td>allow_url_include (for php > 5.2)</td>
\t\t<td class="left_aligned">{$sAllowUrlInclude}</td>
\t\t<td class="left_aligned">Off</td>
\t</tr>
\t<tr class="head troubled">
\t\t<td>mbstring installation</td>
\t\t<td class="left_aligned">{$sMbstring}</td>
\t\t<td class="left_aligned">Installed</td>
\t</tr>
\t<tr class="head troubled">
\t\t<td>PHP version</td>
\t\t<td class="left_aligned">{$sPhpVersion}</td>
\t\t<td class="left_aligned">4.4.0/5.1.0 and higher</td>
\t</tr>
\t<tr class="head troubled">
\t\t<td>SQL Client library version</td>
\t\t<td class="left_aligned">{$sSQLClientInfo}</td>
\t\t<td class="left_aligned">4.1.2 and higher</td>
\t</tr>
\t<tr class="head troubled">
\t\t<td>{$sInstalledApacheModulesC}</td>
\t\t<td class="left_aligned">{$sInstalledModules}</td>
\t\t<td class="left_aligned"></td>
\t</tr>
\t<tr class="head troubled">
\t\t<td>Operating system</td>
\t\t<td class="left_aligned">{$sOperationSystem}</td>
\t\t<td class="left_aligned">Unix / Linux / Windows</td>
\t</tr>
\t<tr class="head troubled">
\t\t<td colspan="3" style="text-align:center;">Flash ffmpeg settings</td>
\t</tr>
\t<tr class="head troubled">
\t\t<td>ffmpeg output</td>
\t\t<td class="left_aligned">{$sFfmpegOutput}</td>
\t\t<td class="left_aligned"></td>
\t</tr>
</table>
EOF;
        return $sRet;
    }