From 977a295eb1e97e0c230063da40b8296fca778814 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Fri, 16 Dec 2005 15:05:41 -0500 Subject: [PATCH] Usage of virtusertable; mail_domain for new users; Chinese and Turkish localization --- index.php | 65 ++++++++++++++++++++++++-------- 1 files changed, 48 insertions(+), 17 deletions(-) diff --git a/index.php b/index.php index 31c39ea..ee65f8a 100644 --- a/index.php +++ b/index.php @@ -3,7 +3,7 @@ /* +-----------------------------------------------------------------------+ | RoundCube Webmail IMAP Client | - | Version 0.1-20050929 | + | Version 0.1-20051214 | | | | Copyright (C) 2005, RoundCube Dev. - Switzerland | | Licensed under the GNU GPL | @@ -42,29 +42,41 @@ */ // define global vars -$INSTALL_PATH = './'; +$INSTALL_PATH = dirname($_SERVER['SCRIPT_FILENAME']); $OUTPUT_TYPE = 'html'; $JS_OBJECT_NAME = 'rcmail'; +if (empty($INSTALL_PATH)) + $INSTALL_PATH = './'; +else + $INSTALL_PATH .= '/'; + +// RC include folders MUST be included FIRST to avoid other +// possible not compatible libraries (i.e PEAR) to be included +// instead the ones provided by RC +ini_set('include_path', $INSTALL_PATH.PATH_SEPARATOR.$INSTALL_PATH.'program'.PATH_SEPARATOR.$INSTALL_PATH.'program/lib'.PATH_SEPARATOR.ini_get('include_path')); -// set environment first -ini_set('include_path', ini_get('include_path').PATH_SEPARATOR.'program'.PATH_SEPARATOR.'program/lib'); ini_set('session.name', 'sessid'); ini_set('session.use_cookies', 1); -//ini_set('session.save_path', $INSTALL_PATH.'session'); - +ini_set('session.gc_maxlifetime', 21600); +ini_set('session.gc_divisor', 500); +ini_set('error_reporting', E_ALL&~E_NOTICE); // increase maximum execution time for php scripts -set_time_limit('120'); - +// (does not work in safe mode) +@set_time_limit(120); // include base files require_once('include/rcube_shared.inc'); require_once('include/rcube_imap.inc'); -require_once('include/rcube_db.inc'); require_once('include/bugs.inc'); require_once('include/main.inc'); require_once('include/cache.inc'); +require_once('PEAR.php'); + + +// set PEAR error handling +// PEAR::setErrorHandling(PEAR_ERROR_TRIGGER, E_USER_NOTICE); // catch some url/post parameters @@ -73,9 +85,11 @@ $_action = !empty($_POST['_action']) ? $_POST['_action'] : (!empty($_GET['_action']) ? $_GET['_action'] : ''); $_framed = (!empty($_GET['_framed']) || !empty($_POST['_framed'])); +if (!empty($_GET['_remote'])) + $REMOTE_REQUEST = TRUE; + // start session with requested task rcmail_startup($_task); - // set session related variables $COMM_PATH = sprintf('./?_auth=%s&_task=%s', $sess_auth, $_task); @@ -86,13 +100,12 @@ if ($_framed) { $COMM_PATH .= '&_framed=1'; - $SESS_HIDDEN_FIELD = "\n".'<input type="hidden" name="_framed" value="1" />'; + $SESS_HIDDEN_FIELD .= "\n".'<input type="hidden" name="_framed" value="1" />'; } // init necessary objects for GUI load_gui(); - // error steps if ($_action=='error' && !empty($_GET['_code'])) @@ -125,18 +138,19 @@ } // end session -else if ($_action=='logout' && $_SESSION['user_id']) +else if ($_action=='logout' && isset($_SESSION['user_id'])) { show_message('loggedout'); rcmail_kill_session(); } // check session cookie and auth string -else if ($_action!='login' && $_auth && $sess_auth) +else if ($_action!='login' && $sess_auth && $_SESSION['user_id']) { - if ($_auth !== $sess_auth || $_auth != rcmail_auth_hash($_SESSION['client_id'], $_SESSION['auth_time'])) + if ($_auth !== $sess_auth || $_auth != rcmail_auth_hash($_SESSION['client_id'], $_SESSION['auth_time']) || + ($CONFIG['session_lifetime'] && isset($SESS_CHANGED) && $SESS_CHANGED + $CONFIG['session_lifetime']*60 < mktime())) { - show_message('sessionerror', 'error'); + $message = show_message('sessionerror', 'error'); rcmail_kill_session(); } } @@ -145,18 +159,28 @@ // log in to imap server if (!empty($_SESSION['user_id']) && $_task=='mail') { - $conn = $IMAP->connect($_SESSION['imap_host'], $_SESSION['username'], decrypt_passwd($_SESSION['password'])); + $conn = $IMAP->connect($_SESSION['imap_host'], $_SESSION['username'], decrypt_passwd($_SESSION['password']), $_SESSION['imap_port'], $_SESSION['imap_ssl']); if (!$conn) { show_message('imaperror', 'error'); $_SESSION['user_id'] = ''; } + else + rcmail_set_imap_prop(); } // not logged in -> set task to 'login if (empty($_SESSION['user_id'])) + { + if ($REMOTE_REQUEST) + { + $message .= "setTimeout(\"location.href='\"+this.env.comm_path+\"'\", 2000);"; + rcube_remote_response($message); + } + $_task = 'login'; + } @@ -177,6 +201,13 @@ } +// handle keep-alive signal +if ($_action=='keep-alive') + { + rcube_remote_response(''); + exit; + } + // include task specific files if ($_task=='mail') -- Gitblit v1.9.1