* If it throws errors you need to adjust your config. *
************************************************************/
+/** This is the configtest page */
+define('PAGE_NAME', 'configtest');
+
// This script could really use some restructuring as it has grown quite rapidly
// but is not very 'clean'. Feel free to get some structure into this thing.
echo $IND . 'PHP version ' . PHP_VERSION . ' OK. (You have: ' . phpversion() . ". Minimum: 4.1.0)<br />\n";
+echo $IND . 'display_errors: ' . ini_get('display_errors') . "<br />\n";
+
+echo $IND . 'error_reporting: ' . ini_get('error_reporting') . "<br />\n";
+
+$safe_mode = ini_get('safe_mode');
+if ($safe_mode) {
+ echo $IND . 'safe_mode: ' . $safe_mode;
+ if (empty($prefs_dsn) || empty($addrbook_dsn))
+ echo ' (<font color="red">double check data and attachment directory ownership, etc!</font>)';
+ if (!empty($addrbook_dsn) || !empty($prefs_dsn) || !empty($addrbook_global_dsn))
+ echo ' (<font color="red">does PHP have access to database interface?</font>)';
+ echo "<br />\n";
+ $safe_mode_exec_dir = ini_get('safe_mode_exec_dir');
+ echo $IND . 'safe_mode_exec_dir: ' . $safe_mode_exec_dir . "<br />\n";
+}
+
/* register_globals check: test for boolean false and any string that is not equal to 'off' */
-if ((bool) ini_get('register_globals') &&
+if ((bool) ini_get('register_globals') &&
strtolower(ini_get('register_globals'))!='off') {
do_err('You have register_globals turned on. This is not an error, but it CAN be a security hazard. Consider turning register_globals off.', false);
}
/* variables_order check */
// FIXME(?): Hmm, how do we distinguish between when an ini setting is
-// not available (ini_set() returns empty string) and when
+// not available (ini_set() returns empty string) and when
// the administrator set the value to an empty string? The
// latter is sure to be highly rare, so for now, just assume
// that empty value means the setting isn't even available
if (!check_php_version(5)) {
// FIXME(?): Hmm, how do we distinguish between when an ini setting is
- // not available (ini_set() returns empty string) and when
+ // not available (ini_set() returns empty string) and when
// the administrator set the value to an empty string? The
// latter is sure to be highly rare, so for now, just assume
// that empty value means the setting isn't even available
do_err($magic_quotes_warning,false);
}
+if (ini_get('short_open_tag') == 0) {
+ $short_open_tag_warning = 'You have configured PHP not to allow short tags '
+ . '(<tt>short_open_tag=off</tt>). This shouldn\'t be a problem with '
+ . 'SquirrelMail or any plugin coded coded according to the '
+ . 'SquirrelMail Coding Guidelines, but if you experience problems with '
+ . 'PHP code being displayed in some of the pages and changing setting '
+ . 'to "on" solves the problem, please file a bug report against the '
+ . 'failing plugin. The correct contact information is most likely '
+ . 'to be found in the plugin documentation.';
+ do_err($short_open_tag_warning, false);
+}
/* checking paths */
if(!file_exists($data_dir)) {
// data_dir is not that important in db_setups.
- if (isset($prefs_dsn) && ! empty($prefs_dsn)) {
+ if (!empty($prefs_dsn)) {
$data_dir_error = "Data dir ($data_dir) does not exist!\n";
echo $IND .'<font color="red"><b>ERROR:</b></font> ' . $data_dir_error;
} else {
}
// don't check if errors
if(!isset($data_dir_error) && !is_dir($data_dir)) {
- if (isset($prefs_dsn) && ! empty($prefs_dsn)) {
+ if (!empty($prefs_dsn)) {
$data_dir_error = "Data dir ($data_dir) is not a directory!\n";
echo $IND . '<font color="red"><b>ERROR:</b></font> ' . $data_dir_error;
} else {
}
// datadir should be executable - but no clean way to test on that
if(!isset($data_dir_error) && !is_writable($data_dir)) {
- if (isset($prefs_dsn) && ! empty($prefs_dsn)) {
+ if (!empty($prefs_dsn)) {
$data_dir_error = "Data dir ($data_dir) is not writable!\n";
echo $IND . '<font color="red"><b>ERROR:</b></font> ' . $data_dir_error;
} else {
$plugin_load_error = 'Some output is produced when plugins are loaded. Usually this means there is an error in one of the plugin setup or configuration files. The output was: '.htmlspecialchars($output);
do_err($plugin_load_error);
}
- /**
+ /**
* Print plugin versions
*/
echo $IND . "Plugin versions...<br />\n";
foreach ($plugins as $name) {
$plugin_version = get_plugin_version($name);
- echo $IND . $IND . $name . ' ' . (empty($plugin_version) ? '??' : $plugin_version) . "<br />\n";
+ $english_name = get_plugin_requirement($name, 'english_name');
+ echo $IND . $IND . (empty($english_name) ? $name . ' ' : $english_name . ' (' . $name . ') ') . (empty($plugin_version) ? '??' : $plugin_version) . "<br />\n";
- // check if this plugin has any other plugin
+ // check if this plugin has any other plugin
// dependencies and if they are satisfied
//
$failed_dependencies = check_plugin_dependencies($name);
}
/**
- * This hook was added in 1.5.2 and 1.4.10. Each plugins should print an error
+ * This hook was added in 1.5.2 and 1.4.10. Each plugins should print an error
* message and return TRUE if there are any errors in its setup/configuration.
*/
$plugin_err = boolean_hook_function('configtest', $null, 1);
break;
}
} else {
- //
+ //
$ehlo_error = true;
$ehlo[]=$line;
break;
} else {
$db_error='Required PHP PEAR DB support is not available.'
.' Is PEAR installed and is the include path set correctly to find <tt>DB.php</tt>?'
- .' The include path is now:<tt>' . ini_get('include_path') . '</tt>.';
+ .' The include path is now: "<tt>' . ini_get('include_path') . '</tt>".';
do_err($db_error);
}
} else {
EOF;
echo $footer;
}
-?>