Ok!');
define('CHECK_FAIL', '
Not OK
');
define('CHECK_UNKNOWN', 'Unknown
');
define('CHECK_BASEDIR_OK', is_null(ini_get('open_basedir')) || ini_get('open_basedir') === false || ini_get('open_basedir') == '');
if (in_array(CHECK_PHP_SAPI, array('apache', 'apache2handler'))) {
define('CHECK_MOD_REWRITE_AVAILABLE', in_array("mod_rewrite",parseApacheModules()));
define('CHECK_MOD_SECURITY_ENABLED', in_array("mod_security",parseApacheModules()));
} else {
define('CHECK_MOD_REWRITE_AVAILABLE', NULL);
define('CHECK_MOD_SECURITY_ENABLED', NULL);
}
if (is_numeric(strpos(CHECK_PHP_SAPI, 'cgi'))) {
define('CHECK_CGI_MODE', true);
} else {
define('CHECK_CGI_MODE', false);
}
// ----- Make sure that the system is able to access outside URL
$ok = false;
if (CHECK_CURL_AVAILABLE || CHECK_URL_FOPEN) {
if (CHECK_CURL_AVAILABLE) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.interspire.com/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$temp = curl_exec($ch);
curl_close($ch);
if (!empty($temp)) {
$ok = true;
}
} else {
$temp = file_get_contents('http://www.interspire.com/');
if (!empty($temp)) {
$ok = true;
}
}
}
define('ACCESS_REMOTE_URL', $ok);
// -----
?>
Interspire System Compatibility Check Script
Basic Information
PHP is running in ' . CHECK_PHP_SAPI . ' mode';
if (!CHECK_CGI_MODE && in_array("mod_security",parseApacheModules())) {
echo "- mod_security is running - devedit may break with this on
\n";
}
?>
'Email_Marketer',
'url' => 'http://www.interspire.com/emailmarketer/'
),
);
foreach ($products as $product_details) {
if (!is_array($product_details)) {
$product = $product_details;
$url = '';
} else {
$product = $product_details['label'];
$url = $product_details['url'];
}
$check_func = 'Check_'.$product;
if (empty($url)) {
echo '
'.str_replace('_', ' ', $product).'
';
} else {
echo '
';
}
echo '
';
if (function_exists($check_func)) {
call_user_func($check_func);
}
echo '
';
}
?>
| ');
$s = preg_replace('/ | ]*>([^<]+)<\/th>/',"\\1",$s);
$s = preg_replace('/ | ]*>([^<]+)<\/td>/',"\\1",$s);
$vTmp = preg_split('/(]*>[^<]+<\/h2>)/',$s,-1,PREG_SPLIT_DELIM_CAPTURE);
$vModules = array();
for ($i=1;$i]*>([^<]+)<\/h2>/',$vTmp[$i],$vMat)) {
$vName = trim($vMat[1]);
$vTmp2 = explode("\n",$vTmp[$i+1]);
foreach ($vTmp2 AS $vOne) {
$vPat = '([^<]+)<\/info>';
$vPat3 = "/$vPat\s*$vPat\s*$vPat/";
$vPat2 = "/$vPat\s*$vPat/";
if (preg_match($vPat3,$vOne,$vMat)) { // 3cols
$vModules[$vName][trim($vMat[1])] = array(trim($vMat[2]),trim($vMat[3]));
} elseif (preg_match($vPat2,$vOne,$vMat)) { // 2cols
$vModules[$vName][trim($vMat[1])] = trim($vMat[2]);
}
}
}
}
return $vModules;
}
function parseApacheModules()
{
$input = parsePHPModules();
if(isset($input['apache'])){
$modules = $input['apache']['Loaded Modules'];
$mod_list = explode(",",$modules);
foreach($mod_list as $key=>$value){
$mod_list[$key] = trim($value);
}
return $mod_list;
} elseif(isset($input['apache2handler'])) {
$modules = $input['apache2handler']['Loaded Modules'];
$mod_list = explode(" ",$modules);
foreach($mod_list as $key=>$value){
$mod_list[$key] = trim($value);
}
return $mod_list;
}
//apache2handler
return array();
}
function DisplayResults($checks, $section='')
{
if (empty($checks)) {
return;
}
echo ''."\n";
echo ' '."\n";
}
function Check_Sessions()
{
$checks = array (
'Sessions working ok' => CHECK_SESSION_OK,
'Session autostart disabled' => !CHECK_SESSION_AUTOSTART,
'Session referer check correct' => CHECK_SESSION_REFERER_CHECK_CORRECT,
);
DisplayResults($checks);
}
function Check_Required_Functions()
{
$required_functions = array (
'fopen',
'fread',
'fputs',
'opendir',
'readdir',
'closedir',
'mail',
'parse_ini_file',
'ini_set',
);
$checks = array();
foreach ($required_functions as $func) {
$checks[$func.'()'] = function_exists($func);
}
DisplayResults($checks);
}
function Check_Email_Marketer()
{
$init_file = dirname(__FILE__) . '/../functions/init.php';
if (is_readable($init_file)) {
define('IEM_NO_CONTROLLER', true);
require_once $init_file;
}
$required = array ();
// Require PHP 5.1.3 or above
$required['PHP 5.1.3 or above'] = array(
'result' => (in_array(version_compare('5.1.3', phpversion()), array(0, -1))),
'feature' => 'Application',
'fix' => 'Please ask your host to upgrade your server to PHP version 5.1.3 or above'
);
// Compatibility Mode with ZendEngline 1 (ie. PHP 4) needs to be disabled
$required['Zend Engine 1 Compatibility Disabled'] = array(
'result' => !CHECK_ZENDENGINE1_COMPATIBILITY,
'feature' => 'Application',
'fix' => 'Please ask your web host to disable "ze1_compatibility_mode" in php.ini (or in .htaccess)'
);
// "Safe Mode" must be disabled
$required['Safe Mode Disabled'] = CHECK_SAFE_MODE;
// "File Uploads" must be enabled
$required['File Uploads'] = CHECK_FILE_UPLOADS;
// ----- Check database
$db_checked = false;
if (defined('SENDSTUDIO_DATABASE_TYPE')) {
switch (SENDSTUDIO_DATABASE_TYPE) {
case 'mysql':
$conn = @mysql_connect(SENDSTUDIO_DATABASE_HOST, SENDSTUDIO_DATABASE_USER, SENDSTUDIO_DATABASE_PASS);
if (!$conn) {
die("Could not connect to MySQL with the supplied details.");
}
$rs = mysql_query('SELECT VERSION()', $conn);
if (!$rs) {
break;
}
$row = mysql_fetch_row($rs);
mysql_free_result($rs);
mysql_close($conn);
if (!preg_match('/^(\d+\.\d+\.\d+)/i', $row[0], $matches)) {
break;
}
$version = $matches[1];
$required['MySQL version 4.1.1 or above Availabe'] = (in_array(version_compare('4.1.1', $version), array(0, -1)));
$db_checked = true;
break;
case 'pgsql':
$connectionArray = array();
if (trim(SENDSTUDIO_DATABASE_HOST) != '') {
$connectionArray[] = "host='" . SENDSTUDIO_DATABASE_HOST . "'";
}
if (trim(SENDSTUDIO_DATABASE_USER) != '') {
$connectionArray[] = "user='" . SENDSTUDIO_DATABASE_USER . "'";
}
if (trim(SENDSTUDIO_DATABASE_PASS) != '') {
$connectionArray[] = "password='" . SENDSTUDIO_DATABASE_PASS . "'";
}
$conn = pg_connect(implode(' ', $connectionArray));
$rs = pg_query($conn, 'SELECT VERSION()');
if (!$rs) {
break;
}
$row = pg_fetch_row($rs);
pg_free_result($rs);
pg_close($conn);
if (!preg_match('/^PostgreSQL (\d+\.\d+\.\d+)/i', $row[0], $matches)) {
break;
}
$version = $matches[1];
$required['PostgeSQL version 8.2 or above Available'] = (in_array(version_compare('8.2', $version), array(0, -1)));
$db_checked = true;
break;
}
}
if (!$db_checked) {
$required['MySQL Available'] = CHECK_MYSQL_AVAILABLE;
$required['MySQL version 4.1.1 or above'] = 'unknown';
}
// -----
// Session autostart must be disabled
$required['Session Autostart Disabled'] = !CHECK_SESSION_AUTOSTART;
// IMAP module is required
$required['IMAP Available'] = array(
'result' => CHECK_IMAP_AVAILABLE,
'feature' => 'Bounce processing',
'fix' => 'Please ask your web host to install IMAP PHP extension module'
);
// Need to be able to access outside location
$required['Remote URL Access Available'] = ACCESS_REMOTE_URL;
// Require GD module
$required['GD Available'] = array(
'result' => CHECK_GD_AVAILABLE,
'feature' => 'CAPTCHA and Printing statistics',
'fix' => 'Please ask your web host to install IMAP PHP extension module'
);
// Mod security must be disabled
$required['Mod Security Disabled'] = !CHECK_MOD_SECURITY_ENABLED;
$optional = array(
'fsockopen() Available' => array(
'result' => CHECK_FSOCKOPEN_AVAILABLE,
'feature' => 'Sending emails via remote SMTP servers',
'fix' => 'Please ask your web host to allow the use of the fsockopen() function.'
),
);
DisplayResults($required, 'Required');
DisplayResults($optional, 'Optional');
}
?>
|