| | |
| | | { |
| | | $now = mktime(); |
| | | $valid = ($_COOKIE['sessauth'] == rcmail_auth_hash(session_id(), $_SESSION['auth_time'])); |
| | | |
| | | // renew auth cookie every 5 minutes |
| | | if (!$valid || ($now-$_SESSION['auth_time'] > 300)) |
| | | |
| | | // renew auth cookie every 5 minutes (only for GET requests) |
| | | if (!$valid || ($_SERVER['REQUEST_METHOD']!='POST' && $now-$_SESSION['auth_time'] > 300)) |
| | | { |
| | | $_SESSION['auth_time'] = $now; |
| | | setcookie('sessauth', rcmail_auth_hash(session_id(), $now)); |
| | |
| | | if ($CONFIG['enable_caching']===TRUE) |
| | | $IMAP->set_caching(TRUE); |
| | | |
| | | if (is_array($CONFIG['default_imap_folders'])) |
| | | $IMAP->set_default_mailboxes($CONFIG['default_imap_folders']); |
| | | |
| | | // set pagesize from config |
| | | if (isset($CONFIG['pagesize'])) |
| | | $IMAP->set_pagesize($CONFIG['pagesize']); |
| | |
| | | // set root dir from config |
| | | if (!empty($CONFIG['imap_root'])) |
| | | $IMAP->set_rootdir($CONFIG['imap_root']); |
| | | |
| | | if (is_array($CONFIG['default_imap_folders'])) |
| | | $IMAP->set_default_mailboxes($CONFIG['default_imap_folders']); |
| | | |
| | | if (!empty($_SESSION['mbox'])) |
| | | $IMAP->set_mailbox($_SESSION['mbox']); |
| | |
| | | $_SESSION['user_lang'] = $sess_user_lang; |
| | | $_SESSION['password'] = encrypt_passwd($pass); |
| | | |
| | | // force reloading complete list of subscribed mailboxes |
| | | // force reloading complete list of subscribed mailboxes |
| | | rcmail_set_imap_prop(); |
| | | $IMAP->clear_cache('mailboxes'); |
| | | $IMAP->create_default_folders(); |
| | | |
| | | return TRUE; |
| | | } |
| | |
| | | |
| | | if ($user_id = $DB->insert_id(get_sequence_name('users'))) |
| | | { |
| | | if (is_array($CONFIG['mail_domain']) && isset($CONFIG['mail_domain'][$host])) |
| | | $mail_domain = $CONFIG['mail_domain'][$host]; |
| | | $mail_domain = $host; |
| | | if (is_array($CONFIG['mail_domain'])) |
| | | { |
| | | if (isset($CONFIG['mail_domain'][$host])) |
| | | $mail_domain = $CONFIG['mail_domain'][$host]; |
| | | } |
| | | else if (!empty($CONFIG['mail_domain'])) |
| | | $mail_domain = $CONFIG['mail_domain']; |
| | | else |
| | | $mail_domain = $host; |
| | | |
| | | if ($user_email=='') |
| | | $user_email = strstr($user, '@') ? $user : sprintf('%s@%s', $user, $mail_domain); |
| | |
| | | return 'this.'.$command; |
| | | |
| | | else |
| | | $OUTPUT->add_script(sprintf("%s%s.%s", |
| | | $OUTPUT->add_script(sprintf("%s%s.%s\n", |
| | | $framed ? sprintf('if(parent.%s)parent.', $JS_OBJECT_NAME) : '', |
| | | $JS_OBJECT_NAME, |
| | | $command)); |
| | |
| | | flush(); |
| | | else // terminate script |
| | | exit; |
| | | } |
| | | |
| | | |
| | | // send correctly formatted response for a request posted to an iframe |
| | | function rcube_iframe_response($js_code='') |
| | | { |
| | | global $OUTPUT, $JS_OBJECT_NAME; |
| | | |
| | | if (!empty($js_code)) |
| | | $OUTPUT->add_script("if(parent.$JS_OBJECT_NAME){\n" . $js_code . "\n}"); |
| | | |
| | | $OUTPUT->write(); |
| | | exit; |
| | | } |
| | | |
| | | |
| | |
| | | // convert string to UTF-8 |
| | | if ($from=='UTF-7') |
| | | $str = rcube_charset_convert(UTF7DecodeString($str), 'ISO-8859-1'); |
| | | else if ($from=='ISO-8859-1' && function_exists('utf8_encode')) |
| | | else if (($from=='ISO-8859-1') && function_exists('utf8_encode')) |
| | | $str = utf8_encode($str); |
| | | else if ($from!='UTF-8') |
| | | { |
| | |
| | | |
| | | // encode string for output |
| | | if ($to=='UTF-7') |
| | | return UTF7EncodeString($str); |
| | | return UTF7EncodeString(rcube_charset_convert($str, 'UTF-8', 'ISO-8859-1')); |
| | | else if ($to=='ISO-8859-1' && function_exists('utf8_decode')) |
| | | return utf8_decode($str); |
| | | else if ($to!='UTF-8') |
| | |
| | | } |
| | | |
| | | |
| | | function rcube_xml_command($command, $str_attrib, $a_attrib=NULL) |
| | | function rcube_xml_command($command, $str_attrib, $add_attrib=array()) |
| | | { |
| | | global $IMAP, $CONFIG, $OUTPUT; |
| | | |
| | | $attrib = array(); |
| | | $command = strtolower($command); |
| | | |
| | | preg_match_all('/\s*([-_a-z]+)=["]([^"]+)["]?/i', stripslashes($str_attrib), $regs, PREG_SET_ORDER); |
| | | |
| | | // convert attributes to an associative array (name => value) |
| | | if ($regs) |
| | | foreach ($regs as $attr) |
| | | $attrib[strtolower($attr[1])] = $attr[2]; |
| | | else if ($a_attrib) |
| | | $attrib = $a_attrib; |
| | | $attrib = parse_attrib_string($str_attrib) + $add_attrib; |
| | | |
| | | // execute command |
| | | switch ($command) |
| | |
| | | 'identityform' => 'rcube_identity_form', |
| | | 'foldersubscription' => 'rcube_subscription_form', |
| | | 'createfolder' => 'rcube_create_folder_form', |
| | | 'renamefolder' => 'rcube_rename_folder_form', |
| | | 'renamefolder' => 'rcube_rename_folder_form', |
| | | 'composebody' => 'rcmail_compose_body' |
| | | ); |
| | | |
| | |
| | | global $CONFIG, $OUTPUT, $JS_OBJECT_NAME, $BROWSER, $COMM_PATH, $MAIN_TASKS; |
| | | static $sa_buttons = array(); |
| | | static $s_button_count = 100; |
| | | |
| | | // these commands can be called directly via url |
| | | $a_static_commands = array('compose', 'list'); |
| | | |
| | | $skin_path = $CONFIG['skin_path']; |
| | | |
| | |
| | | $attrib['imagesel'] ? $skin_path.$attrib['imagesel'] : $attrib['classsel'], |
| | | $attrib['imageover'] ? $skin_path.$attrib['imageover'] : '')); |
| | | |
| | | // make valid href to task buttons |
| | | // make valid href to specific buttons |
| | | if (in_array($attrib['command'], $MAIN_TASKS)) |
| | | $attrib['href'] = ereg_replace('_task=[a-z]+', '_task='.$attrib['command'], $COMM_PATH); |
| | | $attrib['href'] = htmlentities(ereg_replace('_task=[a-z]+', '_task='.$attrib['command'], $COMM_PATH)); |
| | | else if (in_array($attrib['command'], $a_static_commands)) |
| | | $attrib['href'] = htmlentities($COMM_PATH.'&_action='.$attrib['command']); |
| | | } |
| | | |
| | | // overwrite attributes |
| | |
| | | } |
| | | |
| | | |
| | | // compose a valid attribute string for HTML tags |
| | | function create_attrib_string($attrib, $allowed_attribs=array('id', 'class', 'style')) |
| | | { |
| | | // allow the following attributes to be added to the <iframe> tag |
| | | $attrib_str = ''; |
| | | foreach ($allowed_attribs as $a) |
| | | if (isset($attrib[$a])) |
| | | $attrib_str .= sprintf(' %s="%s"', $a, $attrib[$a]); |
| | | $attrib_str .= sprintf(' %s="%s"', $a, str_replace('"', '"', $attrib[$a])); |
| | | |
| | | return $attrib_str; |
| | | } |
| | | |
| | | |
| | | // convert a HTML attribute string attributes to an associative array (name => value) |
| | | function parse_attrib_string($str) |
| | | { |
| | | $attrib = array(); |
| | | preg_match_all('/\s*([-_a-z]+)=["]([^"]+)["]?/i', stripslashes($str), $regs, PREG_SET_ORDER); |
| | | |
| | | // convert attributes to an associative array (name => value) |
| | | if ($regs) |
| | | foreach ($regs as $attr) |
| | | $attrib[strtolower($attr[1])] = $attr[2]; |
| | | |
| | | return $attrib; |
| | | } |
| | | |
| | | |
| | | function format_date($date, $format=NULL) |
| | | { |