X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fview_header.php;h=2d215608ebe2d7b97ea54951b989bbcdc39cd049;hb=f97a4124826900b3a263cb9bd1b94ca717d1f757;hp=7df97dc5e557d21102a07daceb7c56b7603e5c37;hpb=6c84ba1ec45ab854c37b6f65c5b4d84ab1c7aad4;p=squirrelmail.git diff --git a/src/view_header.php b/src/view_header.php index 7df97dc5..2d215608 100644 --- a/src/view_header.php +++ b/src/view_header.php @@ -3,29 +3,45 @@ /** * view_header.php * - * Copyright (c) 1999-2005 The SquirrelMail Project Team - * Licensed under the GNU GPL. For full terms see the file COPYING. - * * This is the code to view the message header. * + * @copyright 1999-2017 The SquirrelMail Project Team + * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id$ * @package squirrelmail */ +/** This is the view_header page */ +define('PAGE_NAME', 'view_header'); + /** - * Path for SquirrelMail required files. - * @ignore + * Include the SquirrelMail initialization file. */ -define('SM_PATH','../'); +require('../include/init.php'); /* SquirrelMail required files. */ -require_once(SM_PATH . 'include/validate.php'); -require_once(SM_PATH . 'functions/global.php'); require_once(SM_PATH . 'functions/imap.php'); -require_once(SM_PATH . 'functions/html.php'); require_once(SM_PATH . 'functions/url_parser.php'); -function parse_viewheader($imapConnection,$id, $passed_ent_id) { +/** + * Extract message headers + * + * @param resource $imapConnection + * @param string $id Message ID + * @param string $passed_ent_id Nested/attached/embedded message ID (if any) + * + * @return array List of all message headers, where each + * element is a sub-array that contains two + * elements: header name and header value + * (in that order) where the header value is + * HTML-formatted, ready for display in browser + * + */ +function parse_viewheader($imapConnection, $id, $passed_ent_id) { + + $header_output = array(); + $second = array(); + $first = array(); if (!$passed_ent_id) { $read=sqimap_run_command ($imapConnection, "FETCH $id BODY[HEADER]", @@ -37,18 +53,19 @@ function parse_viewheader($imapConnection,$id, $passed_ent_id) { } $cnum = 0; for ($i=1; $i < count($read); $i++) { - $line = htmlspecialchars($read[$i]); + $line = sm_encode_html_special_chars($read[$i]); switch (true) { - case (eregi("^>", $line)): + case (preg_match('/^>/i', $line)): $second[$i] = $line; $first[$i] = ' '; $cnum++; break; - case (eregi("^[ |\t]", $line)): +// FIXME: is the pipe character below a mistake? I think the original author might have thought it carried special meaning in the character class, which it does not... but then again, I am not currently trying to understand what this code actually does + case (preg_match('/^[ |\t]/', $line)): $second[$i] = $line; $first[$i] = ''; break; - case (eregi("^([^:]+):(.+)", $line, $regs)): + case (preg_match('/^([^:]+):(.+)/', $line, $regs)): $first[$i] = $regs[1] . ':'; $second[$i] = $regs[2]; $cnum++; @@ -80,54 +97,38 @@ function parse_viewheader($imapConnection,$id, $passed_ent_id) { return $header_output; } -function view_header($header, $mailbox, $color) { - sqgetGlobalVar('QUERY_STRING', $queryStr, SQ_SERVER); - $ret_addr = SM_PATH . 'src/read_body.php?'.$queryStr; - - displayPageHeader($color, $mailbox); - - echo '
' . - '' . "\n" . - '
'. - _("Viewing Full Header") . ' - '. - '' ._("View message") . "
\n"; - - echo_template_var($header, - array( - '\n".'
', - '', - '', - '', - '
'."\n" - ) - ); - echo ''; -} - /* get global vars */ -if ( sqgetGlobalVar('passed_id', $temp, SQ_GET) ) { - $passed_id = (int) $temp; -} +sqgetGlobalVar('passed_id', $passed_id, SQ_GET, NULL, SQ_TYPE_BIGINT); if ( sqgetGlobalVar('mailbox', $temp, SQ_GET) ) { $mailbox = $temp; } if ( !sqgetGlobalVar('passed_ent_id', $passed_ent_id, SQ_GET) ) { $passed_ent_id = ''; } -sqgetGlobalVar('key', $key, SQ_COOKIE); -sqgetGlobalVar('username', $username, SQ_SESSION); -sqgetGlobalVar('onetimepad', $onetimepad, SQ_SESSION); sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION); -$imapConnection = sqimap_login($username, $key, $imapServerAddress, - $imapPort, 0); +global $imap_stream_options; // in case not defined in config +$imapConnection = sqimap_login($username, false, $imapServerAddress, + $imapPort, 0, $imap_stream_options); $mbx_response = sqimap_mailbox_select($imapConnection, $mailbox, false, false, true); - $header = parse_viewheader($imapConnection,$passed_id, $passed_ent_id); -view_header($header, $mailbox, $color); -?> \ No newline at end of file +$aTemplateHeaders = array(); +foreach ($header as $h) { + $aTemplateHeaders[] = array ( + 'Header' => $h[0], + 'Value' => $h[1] + ); +} + +sqgetGlobalVar('QUERY_STRING', $queryStr, SQ_SERVER); +$ret_addr = SM_PATH . 'src/read_body.php?'.$queryStr; + +displayPageHeader( $color, $mailbox ); + +$oTemplate->assign('view_message_href', $ret_addr); +$oTemplate->assign('headers', $aTemplateHeaders); + +$oTemplate->display('view_header.tpl'); + +$oTemplate->display('footer.tpl');