| | |
| | | // renew auth cookie every 5 minutes (only for GET requests) |
| | | if (!$valid || ($_SERVER['REQUEST_METHOD']!='POST' && $now-$_SESSION['auth_time'] > 300)) |
| | | { |
| | | $_SESSION['last_auth'] = $_SESSION['auth_time']; |
| | | $_SESSION['last_auth'] = $_SESSION['auth_time']; |
| | | $_SESSION['auth_time'] = $now; |
| | | setcookie('sessauth', rcmail_auth_hash(session_id(), $now)); |
| | | } |
| | |
| | | |
| | | // don't wait for page onload. Call init at the bottom of the page (delayed) |
| | | $javascript_foot = "if (window.call_init)\n call_init('$JS_OBJECT_NAME');"; |
| | | |
| | | |
| | | if (!empty($GLOBALS['_framed'])) |
| | | $javascript .= "$JS_OBJECT_NAME.set_env('framed', true);\n"; |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | // remove temp files of a session |
| | | function rcmail_clear_session_temp($sess_id) |
| | | // remove temp files older than two day |
| | | function rcmail_temp_gc() |
| | | { |
| | | global $CONFIG; |
| | | $tmp = unslashify($CONFIG['temp_dir']); |
| | | $expire = mktime() - 172800; // expire in 48 hours |
| | | |
| | | $temp_dir = slashify($CONFIG['temp_dir']); |
| | | $cache_dir = $temp_dir.$sess_id; |
| | | |
| | | if (is_dir($cache_dir)) |
| | | if ($dir = opendir($tmp)) |
| | | { |
| | | clear_directory($cache_dir); |
| | | rmdir($cache_dir); |
| | | } |
| | | while (($fname = readdir($dir)) !== false) |
| | | { |
| | | if ($fname{0} == '.') |
| | | continue; |
| | | |
| | | if (filemtime($tmp.'/'.$fname) < $expire) |
| | | @unlink($tmp.'/'.$fname); |
| | | } |
| | | |
| | | closedir($dir); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | // convert string to UTF-8 |
| | | if ($from=='UTF-7') |
| | | $str = rcube_charset_convert(UTF7DecodeString($str), 'ISO-8859-1'); |
| | | $str = utf7_to_utf8($str); |
| | | 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(rcube_charset_convert($str, 'UTF-8', 'ISO-8859-1')); |
| | | return utf8_to_utf7($str); |
| | | else if ($to=='ISO-8859-1' && function_exists('utf8_decode')) |
| | | return utf8_decode($str); |
| | | else if ($to!='UTF-8') |
| | |
| | | 'composeattachment' => 'rcmail_compose_attachment_field', |
| | | 'priorityselector' => 'rcmail_priority_selector', |
| | | 'charsetselector' => 'rcmail_charset_selector', |
| | | 'editorselector' => 'rcmail_editor_selector', |
| | | 'searchform' => 'rcmail_search_form', |
| | | 'receiptcheckbox' => 'rcmail_receipt_checkbox', |
| | | |
| | |
| | | if ($attrib['type']) |
| | | $attrib['type'] = strtolower($attrib['type']); |
| | | else |
| | | $attrib['type'] = ($attrib['image'] || $attrib['imagepas'] || $arg['imageact']) ? 'image' : 'link'; |
| | | |
| | | $attrib['type'] = ($attrib['image'] || $attrib['imagepas'] || $attrib['imageact']) ? 'image' : 'link'; |
| | | |
| | | $command = $attrib['command']; |
| | | |
| | |
| | | $attrib = $sa_buttons[$attrib['name']]; |
| | | |
| | | // add button to button stack |
| | | else if($attrib['image'] || $arg['imageact'] || $attrib['imagepas'] || $attrib['class']) |
| | | else if($attrib['image'] || $attrib['imageact'] || $attrib['imagepas'] || $attrib['class']) |
| | | { |
| | | if(!$attrib['name']) |
| | | $attrib['name'] = $command; |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * Create an edit field for inclusion on a form |
| | | * |
| | | * @param string col field name |
| | | * @param string value field value |
| | | * @param array attrib HTML element attributes for field |
| | | * @param string type HTML element type (default 'text') |
| | | * @return string HTML field definition |
| | | */ |
| | | function rcmail_get_edit_field($col, $value, $attrib, $type='text') |
| | | { |
| | | $fname = '_'.$col; |