X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fview_header.php;h=ab92e2d41198ca99ae0551108b7c98ec6a5b76b8;hb=d555f507bfabde702f68cf33fd6c58840088c14d;hp=a87b2fbee8eea1c252b04ed2df56d89f1fe869cb;hpb=65f8ca875317292daa540e5887b65c93fab1661e;p=squirrelmail.git diff --git a/src/view_header.php b/src/view_header.php index a87b2fbe..ab92e2d4 100644 --- a/src/view_header.php +++ b/src/view_header.php @@ -3,70 +3,78 @@ /** * view_header.php * - * Copyright (c) 1999-2002 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. * - * $Id$ + * @copyright © 1999-2009 The SquirrelMail Project Team + * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @version $Id$ + * @package squirrelmail */ -/* Path for SquirrelMail required files. */ -define('SM_PATH','../'); +/** This is the view_header page */ +define('PAGE_NAME', 'view_header'); + +/** + * Include the SquirrelMail initialization file. + */ +require('../include/init.php'); /* SquirrelMail required files. */ -require_once(SM_PATH . 'include/validate.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) { - global $uid_support; - $header_full = array(); - if (!$passed_ent_id) { - $read=sqimap_run_command ($imapConnection, "FETCH $id BODY[HEADER]", - true, $a, $b, $uid_support); - } else { - $query = "FETCH $id BODY[".$passed_ent_id.'.HEADER]'; - $read=sqimap_run_command ($imapConnection, $query, - true, $a, $b, $uid_support); - } + $header_output = array(); + $second = array(); + $first = array(); + + if (!$passed_ent_id) { + $read=sqimap_run_command ($imapConnection, "FETCH $id BODY[HEADER]", + true, $a, $b, TRUE); + } else { + $query = "FETCH $id BODY[".$passed_ent_id.'.HEADER]'; + $read=sqimap_run_command ($imapConnection, $query, + true, $a, $b, TRUE); + } $cnum = 0; for ($i=1; $i < count($read); $i++) { $line = htmlspecialchars($read[$i]); - switch (true) { - case (eregi("^>", $line)): - $second[$i] = $line; - $first[$i] = ' '; - $cnum++; - break; - case (eregi("^[ |\t]", $line)): - $second[$i] = $line; - $first[$i] = ''; - break; - case (eregi("^([^:]+):(.+)", $line, $regs)): - $first[$i] = $regs[1] . ':'; - $second[$i] = $regs[2]; - $cnum++; - break; - default: - $second[$i] = trim($line); - $first[$i] = ''; - break; + switch (true) { + case (preg_match('/^>/i', $line)): + $second[$i] = $line; + $first[$i] = ' '; + $cnum++; + break; +// 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 (preg_match('/^([^:]+):(.+)/', $line, $regs)): + $first[$i] = $regs[1] . ':'; + $second[$i] = $regs[2]; + $cnum++; + break; + default: + $second[$i] = trim($line); + $first[$i] = ''; + break; } } for ($i=0; $i < count($second); $i = $j) { $f = (isset($first[$i]) ? $first[$i] : ''); - $s = (isset($second[$i]) ? nl2br($second[$i]) : ''); + $s = (isset($second[$i]) ? nl2br($second[$i]) : ''); $j = $i + 1; while (($first[$j] == '') && ($j < count($first))) { $s .= '    ' . nl2br($second[$j]); $j++; } - if(strtolower($f) != 'message-id:') { - parseEmail($s); - } + $lowf=strtolower($f); + /* do not mark these headers as emailaddresses */ + if($lowf != 'message-id:' && $lowf != 'in-reply-to:' && $lowf != 'references:') { + parseEmail($s); + } if ($f) { $header_output[] = array($f,$s); } @@ -75,52 +83,37 @@ function parse_viewheader($imapConnection,$id, $passed_ent_id) { return $header_output; } -function view_header($header, $mailbox, $color) { - $ret_addr = SM_PATH . 'src/read_body.php?'.$_SERVER['QUERY_STRING']; - - displayPageHeader($color, $mailbox); - - echo '
' . - '' . "\n" . - "
". - _("Viewing Full Header") . ' - '. - '' ._("View message") . "
\n"; - - echo_template_var($header, - array( - "\n".'
', - '', - '', - '', - '
'."\n" - ) ); - echo ''; -} - /* get global vars */ -$passed_id = $_GET['passed_id']; -$username = $_SESSION['username']; -$key = $_COOKIE['key']; -$delimiter = $_SESSION['delimiter']; -$onetimepad = $_SESSION['onetimepad']; - -if (!isset($_GET['passed_ent_id'])) { +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 = ''; -} else { - $passed_ent_id = $_GET['passed_ent_id']; } +sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION); -$mailbox = decodeHeader($_GET['mailbox']); - -$imapConnection = sqimap_login($username, $key, $imapServerAddress, +$imapConnection = sqimap_login($username, false, $imapServerAddress, $imapPort, 0); $mbx_response = sqimap_mailbox_select($imapConnection, $mailbox, false, false, true); +$header = parse_viewheader($imapConnection,$passed_id, $passed_ent_id); + +$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); -$header = parse_viewheader($imapConnection,$passed_id, $passed_ent_id); -view_header($header, $mailbox, $color); +$oTemplate->display('view_header.tpl'); -?> +$oTemplate->display('footer.tpl');