diff options
-rw-r--r-- | check.php-dist | 255 |
1 files changed, 148 insertions, 107 deletions
diff --git a/check.php-dist b/check.php-dist index 076ecfe26..dac2ae022 100644 --- a/check.php-dist +++ b/check.php-dist @@ -1,18 +1,18 @@ <?php /** * Copyright (c) 2008, Till Klampaeckel - * + * * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: - * + * * * Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright notice, this * list of conditions and the following disclaimer in the documentation and/or * other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR @@ -60,7 +60,7 @@ define('CHECK_OK', '<span class="success">OK</span>'); define('CHECK_NOK', '<span class="fail">NOT OK</span>'); define('CHECK_NA', '<span class="na">NOT AVAILABLE</span>'); -error_reporting(E_ALL ^E_NOTICE); +error_reporting(E_ALL); $include_path = dirname(__FILE__) . '/program/lib'; $include_path .= PATH_SEPARATOR; @@ -68,7 +68,7 @@ $include_path .= dirname(__FILE__) . '/program'; $include_path .= PATH_SEPARATOR; $include_path .= get_include_path(); -@ini_set('display_errors', 1); +ini_set('display_errors', 1); set_include_path($include_path); $create_files = array('config/db.inc.php', 'config/main.inc.php'); @@ -86,27 +86,48 @@ $supported_dbs = array('MySQL' => 'mysql', 'MySQLi' => 'mysqli', $path = dirname(__FILE__) . '/'; $check = basename(__FILE__); -include_once 'include/bugs.inc'; +require_once 'include/bugs.inc'; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2002/REC-xhtml1-20020801/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> - <link rel="shortcut icon" href="skins/default/images/favicon.ico"/> - <link rel="stylesheet" type="text/css" href="skins/default/common.css" /> - <style type="text/css"> - /* <![CDATA[ */ - label { display:block; } - th { text-align: left; } - h4 { margin-bottom: 0.2em; } - .success { color:#006400;font-weight:bold !important; } - .fail { color:#ff0000 !important;font-weight:bold !important; } - .na { color:#f60; font-weight:bold; } - /* ]]> */ - </style> - <title>RoundCube :: check</title> +<link rel="shortcut icon" href="skins/default/images/favicon.ico" /> +<link rel="stylesheet" type="text/css" href="skins/default/common.css" /> +<style type="text/css"> +/* <![CDATA[ */ +label { + display: block; +} + +th { + text-align: left; +} + +h4 { + margin-bottom: 0.2em; +} + +.success { + color: #006400; + font-weight: bold !important; +} + +.fail { + color: #ff0000 !important; + font-weight: bold !important; +} + +.na { + color: #f60; + font-weight: bold; +} +/* ]]> */ +</style> +<title>RoundCube :: check</title> </head> <body> -<img src="skins/default/images/roundcube_logo.png" width="165" height="55" border="0" alt="RoundCube Webmail" hspace="12" vspace="2"/> +<img src="skins/default/images/roundcube_logo.png" width="165" + height="55" border="0" alt="RoundCube Webmail" hspace="12" vspace="2" /> <h3>Check <?php echo basename(__FILE__); ?> Configuration</h3> From correctly set: @@ -130,7 +151,7 @@ foreach ($supported_dbs AS $database => $ext) { } else { $_ext = $prefix . $ext . '.' . PHP_SHLIB_SUFFIX; echo CHECK_NA; - if (@dl($_ext)) { + if (dl($_ext)) { echo ' (<i>Could</i> be loaded. Please add in php.ini, if you plan on using it.)'; } else { echo ' (<b>Not</b> installed.)'; @@ -168,10 +189,11 @@ foreach ($create_files AS $file) { echo '<h3>Check if directories are writable</h3>'; echo '<p>RoundCube may need to write/save files into these directories.</p>'; -@include $path . 'config/main.inc.php'; +require_once $path . 'config/main.inc.php'; +$rctest_config = array_merge($rctest_config, $rcmail_config); -if (isset($rcmail_config)) { - foreach (array($rcmail_config['temp_dir'], $rcmail_config['log_dir']) AS $dir) { +if (isset($rctest_config)) { + foreach (array($rctest_config['temp_dir'], $rctest_config['log_dir']) AS $dir) { $dir = $dir{0} == '/' ? $dir : $path . $dir; echo "Directory $dir: "; if (!is_writable($dir)) { @@ -186,21 +208,22 @@ if (isset($rcmail_config)) { } echo '<h3>Check supplied DB settings</h3>'; -@include $path . 'config/db.inc.php'; +require_once $path . 'config/db.inc.php'; +$rctest_config = array_merge($rctest_config, $rcmail_config); $db_working = false; -if (isset($rcmail_config) && is_array($rcmail_config)) { +if (isset($rctest_config) && is_array($rctest_config)) { echo 'Selected backend: '; - if ($rcmail_config['db_backend'] != '') { + if ($rctest_config['db_backend'] != '') { - echo 'PEAR::' . strtoupper($rcmail_config['db_backend']) . '<br />'; + echo 'PEAR::' . strtoupper($rctest_config['db_backend']) . '<br />'; - $_class = 'rcube_' . strtolower($rcmail_config['db_backend']); + $_class = 'rcube_' . strtolower($rctest_config['db_backend']); require_once 'include/' . $_class . '.inc'; echo 'DSN (standard): '; - $DB = new $_class($rcmail_config['db_dsnw'], '', false); + $DB = new $_class($rctest_config['db_dsnw'], '', false); $DB->db_connect('w'); if (!($db_error_msg = $DB->is_error())) { echo CHECK_OK; @@ -210,8 +233,8 @@ if (isset($rcmail_config) && is_array($rcmail_config)) { } echo '<br />'; echo 'DSN (read-only, optional): '; - if ($rcmail_config['db_dsnr'] != '') { - $DB_READ = new $_class($rcmail_config['db_dsnr'], '', false); + if ($rctest_config['db_dsnr'] != '') { + $DB_READ = new $_class($rctest_config['db_dsnr'], '', false); $DB_READ->db_connect('w'); if (!($db_error_msg = $DB_READ->is_error())) { echo CHECK_OK; @@ -219,7 +242,7 @@ if (isset($rcmail_config) && is_array($rcmail_config)) { echo CHECK_NOK . " (Error: $db_error_msg)"; } } else { - echo CHECK_NA; + echo CHECK_NA.($db_working ? ' - <span class="success">will use DSN (standard)</span>' : ''); } echo '<br />'; } else { @@ -233,14 +256,15 @@ echo '<h3>TimeZone</h3>'; echo 'Checks if web- and databaseserver are in the same timezone.<br /><br />'; echo 'Status: '; if ($db_working === true) { - $tz_db = "SELECT " . $DB->unixtimestamp($DB->now()) . " AS tz_db"; + $tz_db = 'SELECT ' . $DB->unixtimestamp($DB->now()) . ' AS tz_db'; $tz_db = $DB->query($tz_db); $tz_db = $DB->fetch_assoc($tz_db); $tz_db = (int) $tz_db['tz_db']; $tz_local = (int) time(); $tz_diff = $tz_local - $tz_db; - if ($tz_db != $tz_local) { + // sometimes we have 1 second gap, treat that as ok + if ($tz_diff > 1) { echo CHECK_NOK; } else { echo CHECK_OK; @@ -268,106 +292,123 @@ foreach ($ini_array AS $var => $val) { } echo '<br />'; } - -@include $path . 'config/main.inc.php'; ?> <h3>Check email settings</h3> <?php echo 'Fetching config-settings from config/main.inc.php.<br /><br />'; -if (is_array($rcmail_config) && count($rcmail_config)) { -?> +if (is_array($rctest_config) && count($rctest_config)) { + ?> <table border="0"> -<tr> - <th><h4>SMTP Settings</h4></th> - <th><h4>IMAP Settings</h4></th> -</tr> -<tr><td valign="top"> -<?php - echo 'SMTP: ' . CHECK_OK . '<br />'; - echo 'server: ' . $rcmail_config['smtp_server'] . '<br />'; - echo 'port: ' . $rcmail_config['smtp_port'] . '<br />'; - echo 'user: ' . (($rcmail_config['smtp_user'] == '%u')?'<i>use current session</i>':$rcmail_config['smtp_user']) . '<br />'; - echo 'pass: ' . (($rcmail_config['smtp_pass'] == '%p')?'<i>use current session</i>':$rcmail_config['smtp_pass']) . '<br />'; - //var_dump($rcmail_config); -?> -</td><td valign="top"> -<?php - echo 'IMAP: ' . CHECK_OK . '<br />'; - echo 'server: ' . (is_array($rcmail_config['default_host']) ? var_export($rcmail_config['default_host'], true) : $rcmail_config['default_host']) . '<br />'; - echo 'port: ' . $rcmail_config['default_port'] . '<br />'; -?> -</td></tr> + <tr> + <th> + <h4>SMTP Settings</h4> + </th> + <th> + <h4>IMAP Settings</h4> + </th> + </tr> + <tr> + <td valign="top"><?php + echo 'SMTP: ' . CHECK_OK . '<br />'; + echo 'server: '.(isset($rctest_config['smtp_server']) && !empty($rctest_config['smtp_server']) ? $rctest_config['smtp_server'] : '<i>not set</i>').'<br />'; + echo 'port: '.(isset($rctest_config['smtp_port']) && !empty($rctest_config['smtp_port']) ? $rctest_config['smtp_port'] : '<i>not set</i>').'<br />'; + if (isset($rctest_config['smtp_user']) && !empty($rctest_config['smtp_user'])) { + echo 'user: '.$rctest_config['smtp_user'].'<br/>'; + } elseif ($rctest_config['smtp_user'] == '%u') { + echo 'user: <i>use current session</i><br/>'; + } else { + echo 'user: <i>not set</i><br/>'; + } + if (isset($rctest_config['smtp_pass']) && !empty($rctest_config['smtp_pass'])) { + echo 'pass: '.$rctest_config['smtp_pass'].'<br/>'; + } elseif (isset($rctest_config['smtp_pass']) && $rctest_config['smtp_pass'] == '%p') { + echo 'pass: <i>use current session</i><br/>'; + } else { + echo 'pass: <i>not set</i><br/>'; + } + ?></td> + <td valign="top"><?php + echo 'IMAP: ' . CHECK_OK . '<br />'; + if (isset($rctest_config['default_host']) && is_array($rctest_config['default_host'])) { + echo 'server: '.var_export($rctest_config['default_host'], true).'<br/>'; + } elseif (isset($rctest_config['default_host']) && !empty($rctest_config['default_host'])) { + echo 'server: '.$rctest_config['default_host'].'<br/>'; + } else { + echo 'server: <i>not set</i><br/>'; + } + echo 'port: '.(isset($rctest_config['default_port']) && !empty($rctest_config['default_port']) ? $rctest_config['default_port'] : '<i>not set</i>').'<br />'; + ?></td> + </tr> </table> <h3>Test SMTP settings - send an email</h3> <p>Don't abuse this!</p> -<form action="<?php echo $check; ?>" method="post"> -<?php -if ($rcmail_config['smtp_server'] != ''): - if ($rcmail_config['smtp_user'] == '%u'): -?> -<label>Username:</label><input type="text" name="smtp_test[user]" /> +<form action="<?php echo $check; ?>" method="post"><?php +if ($rctest_config['smtp_server'] != ''): +if ($rctest_config['smtp_user'] == '%u'): +?> <label>Username:</label><input type="text" name="smtp_test[user]" /> <label>Password:</label><input type="password" name="smtp_test[pass]" /><br /> <?php - endif; endif; -?> -Recipient:<br /> -<?php echo $rctest_config['from']; ?><br /><br /> -<input type="hidden" name="action" value="smtp" /> -<input type="submit" value="send an email" /> -</form> +endif; +?> Recipient:<br /> +<?php echo $rctest_config['from']; ?><br /> +<br /> +<input type="hidden" name="action" value="smtp" /> <input type="submit" + value="send an email" /></form> <?php - if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['action'] == 'smtp') { +if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['action'] == 'smtp') { - echo 'Trying to send email: '; - if ($rctest_config['from'] == '_yourfrom_') { - echo CHECK_NOK . '<br />'; - echo '<i>Please edit $rctest_config in ' . basename(__FILE__) . '</i><br />'; - } else { + echo 'Trying to send email: '; + if ($rctest_config['from'] == '_yourfrom_') { + echo CHECK_NOK . '<br />'; + echo '<i>Please edit $rctest_config in ' . basename(__FILE__) . '</i><br />'; + } else { - $data = $_POST['smtp_test']; - $CONFIG = $rcmail_config; + $data = $_POST['smtp_test']; + $CONFIG = $rctest_config; - require_once 'lib/rc_mail_mime.inc'; - require_once 'include/rcube_smtp.inc'; + require_once 'lib/rc_mail_mime.inc'; + require_once 'include/rcube_smtp.inc'; - $recipients = $rctest_config['from']; + $recipients = $rctest_config['from']; - $headers['From'] = $rctest_config['from']; - $headers['To'] = $recipients; - $headers['Subject'] = 'Test message from RoundCube'; + $headers['From'] = $rctest_config['from']; + $headers['To'] = $recipients; + $headers['Subject'] = 'Test message from RoundCube'; - $body = 'This is a test to confirm that RoundCube can send email.'; + $body = 'This is a test to confirm that RoundCube can send email.'; - $mail_object = new rc_mail_mime(); - $mail_object->headers($headers); - - $smtp_response = array(); - if (smtp_mail($rctest_config['from'], $recipients, ($foo = $mail_object->txtHeaders($send_headers)), $body, $smtp_response)) { - echo CHECK_OK . '<br />'; - } else { - echo CHECK_NOK; - echo '<br />' . join('<br />', $smtp_response); - } + $mail_object = new rc_mail_mime(); + $mail_object->headers($headers); + + $smtp_response = array(); + if (smtp_mail($rctest_config['from'], $recipients, ($foo = $mail_object->txtHeaders($send_headers)), $body, $smtp_response)) { + echo CHECK_OK . '<br />'; + } else { + echo CHECK_NOK; + echo '<br />' . join('<br />', $smtp_response); } } +} } else { echo CHECK_NOK; } ?> <h3>Test IMAP settings</h3> <?php -if ($rcmail_config['default_host'] == '') { +if ($rctest_config['default_host'] == '') { echo '<span class="fail">We cannot test, default_host is not set in config/main.inc.php.</span>'; } else { -?> + ?> <form action="<?php echo $check; ?>" method="post"> <label>Username:</label><input type="text" name="imap_test[user]" /> -<label>Password:</label><input type="password" name="imap_test[pass]" /><br /><br /> +<label>Password:</label><input type="password" name="imap_test[pass]" /><br /> +<br /> <input type="hidden" name="action" value="imap" /> <input type="submit" value="check email" /> -</form><br /><br /> -<?php +</form> +<br /><br /> + <?php if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['action'] == 'imap') { echo 'Testing IMAP connect: '; @@ -377,9 +418,9 @@ if ($rcmail_config['default_host'] == '') { require_once 'imap.inc'; global $iil_error, $ICL_PORT; - $ICL_PORT = $rcmail_config['default_port']; - $result = iil_Connect($rcmail_config['default_host'], - $data['user'], $data['pass']); + $ICL_PORT = $rctest_config['default_port']; + $result = iil_Connect($rctest_config['default_host'], + $data['user'], $data['pass']); if ($result != true) { echo CHECK_NOK; @@ -392,4 +433,4 @@ if ($rcmail_config['default_host'] == '') { } ?> </body> -</html> +</html>
\ No newline at end of file |