search.php

来自「通达OA2007SE源代码 非常好的」· PHP 代码 · 共 233 行

PHP
233
字号
<?
  require './inc/inc.php';
  echo $nocache;
  $jsquota = ($exceeded ? 'true' : 'false');
  $jssource = (((((((((((''.'
<script language="JavaScript">
function newmsg() { location = \'newmsg.php?pag=').$pag).'&folder=').urlencode ($folder)).(((((((''.'&sid=').$sid).'&tid=').$tid).'&lid=').$lid).'\'; }
function folderlist() { location = \'folders.php?folder=')).urlencode ($folder)).(((((((((((((((((((''.'&sid=').$sid).'&tid=').$tid).'&lid=').$lid).'\'}
function goend() { location = \'logout.php?sid=').$sid).'&tid=').$tid).'&lid=').$lid).'\'; }
function goinbox() { location = \'msglist.php?folder=inbox&sid=').$sid).'&tid=').$tid).'&lid=').$lid).'\'; }
function emptytrash() {	location = \'folders.php?empty=trash&folder=')).urlencode ($folder)).(((((((((((((((((((((''.'&goback=true&sid=').$sid).'&tid=').$tid).'&lid=').$lid).'\';}
function addresses() { location = \'addressbook.php?sid=').$sid).'&tid=').$tid).'&lid=').$lid).'\'; }
function prefs() { location = \'preferences.php?sid=').$sid).'&tid=').$tid).'&lid=').$lid).'\'; }
no_quota  = ').$jsquota).';
quota_msg = \'')).ereg_replace ('\'', '\\\'', $quota_exceeded)).(((((((((''.'\';
function readmsg(ix,read,folder) {
	if(!read && no_quota)
		alert(quota_msg)
	else
		location = \'readmsg.php?folder=\'+folder+\'&pag=').$pag).'&ix=\'+ix+\'&sid=').$sid).'&tid=').$tid).'&lid=').$lid).'\'; 
}
</script>
'));
  $smarty->assign ('umSid', $sid);
  $smarty->assign ('umLid', $lid);
  $smarty->assign ('umJS', $jssource);
  $smarty->assign ('umInputFrom', $srcFrom);
  $smarty->assign ('umInputSubject', $srcSubject);
  $smarty->assign ('umInputBody', $srcBody);
  if (((($srcFrom != '') OR ($srcSubject != '')) OR ($srcBody != '')))
  {
    $boxes = $sess['folders'];
    for ($n = 0; ($n < count ($boxes)); ++$n)
    {
      $entry = $boxes[$n]['name'];
      if (!is_array ($sess['headers'][base64_encode (strtolower ($entry))]))
      {
        if (!$UM->mail_connected ())
        {
          if (!$UM->mail_connect ())
          {
            header ((((((((''.'Location: error.php?err=1&sid=').$sid).'&tid=').$tid).'&lid=').$lid).'
'));
          }
          if (!$UM->mail_auth ())
          {
            header ((((((((''.'Location: badlogin.php?sid=').$sid).'&tid=').$tid).'&lid=').$lid).'
'));
            exit ();
          }
        }
        $thisbox = $UM->mail_list_msgs ($entry);
        $sess['headers'][base64_encode (strtolower ($entry))] = $thisbox;
        continue;
      }
      else
      {
        $thisbox = $sess['headers'][base64_encode (strtolower ($entry))];
        continue;
      }
    }
    if ($UM->mail_connected ())
    {
      $UM->mail_disconnect ();
      $SS->Save ($sess);
    }
    $boxlist = $sess['headers'];
    function build_regex ($strSearch)
    {
      $strSearch = trim ($strSearch);
      if (($strSearch != ''))
      {
        $strSearch = quotemeta ($strSearch);
        $arSearch = split (' ', $strSearch);
        unset ($strSearch);
        for ($n = 0; ($n < count ($arSearch)); ++$n)
        {
          if ($strSearch)
          {
            ($strSearch .= (('|('.$arSearch[$n]).')'));
            continue;
          }
          else
          {
            ($strSearch .= (('('.$arSearch[$n]).')'));
            continue;
          }
        }
      }
      return $strSearch;
    }
    if ((trim ($srcBody) != ''))
    {
      $get_body = 1;
    }
    $search_results = array ();
    $start = $smarty->_get_microtime ();
    $UM->use_html = false;
    if (($srcFrom != ''))
    {
      $srcFrom = build_regex ($srcFrom);
    }
    if (($srcSubject != ''))
    {
      $srcSubject = build_regex ($srcSubject);
    }
    if (($srcBody != ''))
    {
      $srcBody = build_regex ($srcBody);
    }
    while (list ($current_folder, $messages) = each ($boxlist))
    {
      $current_folder = base64_decode ($current_folder);
      for ($z = 0; ($z < count ($messages)); ++$z)
      {
        $email = $messages[$z];
        $localname = $email['localname'];
        if (($get_body AND file_exists ($localname)))
        {
          $thisfile = $UM->_read_file ($localname);
          $email = $UM->Decode ($thisfile);
          unset ($thisfile);
        }
        $found = false;
        if (($srcFrom != ''))
        {
          $from = $email['from'];
          $srcString = (($from[0]['name'].' ').$from[0]['mail']);
          if (eregi ($srcFrom, $srcString))
          {
            $found = true;
          }
        }
        if ((($srcSubject != '') AND !$found))
        {
          $srcString = $email['subject'];
          if (eregi ($srcSubject, $srcString))
          {
            $found = true;
          }
        }
        if ((($srcBody != '') AND !$found))
        {
          $srcString = strip_tags ($email['body']);
          if (eregi ($srcBody, $srcString))
          {
            $found = true;
          }
        }
        if ($found)
        {
          $messages[$z]['ix'] = $z;
          $headers[] = $messages[$z];
          continue;
        }
      }
    }
    $messagelist = array ();
    for ($i = 0; ($i < count ($headers)); ++$i)
    {
      $mnum = $headers[$i]['id'];
      $read = (eregi ('\\SEEN', $headers[$i]['flags']) ? 'true' : 'false');
      $readlink = (((('javascript:readmsg('.$headers[$i]['ix']).(((''.',').$read).',\'')).urlencode ($headers[$i]['folder'])).'\')');
      $composelink = (((((((''.'newmsg.php?folder=').$folder).'&nameto=').htmlspecialchars ($headers[$i]['from'][0]['name'])).'&mailto=').htmlspecialchars ($headers[$i]['from'][0]['mail'])).((((((''.'&sid=').$sid).'&tid=').$tid).'&lid=').$lid));
      $composelinksent = (((((((''.'newmsg.php?folder=').$folder).'&nameto=').htmlspecialchars ($headers[$i]['to'][0]['name'])).'&mailto=').htmlspecialchars ($headers[$i]['to'][0]['name'])).((((((''.'&sid=').$sid).'&tid=').$tid).'&lid=').$lid));
      $folderlink = (('msglist.php?folder='.urlencode ($headers[$i]['folder'])).((((((''.'&tid=').$tid).'&lid=').$lid).'&sid=').$sid));
      $from = $headers[$i]['from'][0]['name'];
      $to = $headers[$i]['to'][0]['name'];
      $subject = $headers[$i]['subject'];
      if (!eregi ('\\SEEN', $headers[$i]['flags']))
      {
        $msg_img = './images/msg_unread.gif';
      }
      else
      {
        if (eregi ('\\ANSWERED', $headers[$i]['flags']))
        {
          $msg_img = './images/msg_answered.gif';
        }
        else
        {
          $msg_img = './images/msg_read.gif';
        }
      }
      $prior = $headers[$i]['priority'];
      if ((($prior == 1) OR ($prior == 2)))
      {
        $img_prior = '&nbsp;<img src="./images/prior_low.gif" width=5 height=11 border=0 alt="">';
      }
      else
      {
        if ((($prior == 4) OR ($prior == 5)))
        {
          $img_prior = '&nbsp;<img src="./images/prior_high.gif" width=5 height=11 border=0 alt="">';
        }
        else
        {
          $img_prior = '';
        }
      }
      $msg_img = (((''.'&nbsp;<img src="').$msg_img).'" width=14 height=14 border=0 alt="">');
      $checkbox = (((''.'<input type="checkbox" name="msg_').$i).'" value=1>');
      $attachimg = ($headers[$i]['attach'] ? '&nbsp;<img src=images/attach.gif border=0>' : '');
      $date = $headers[$i]['date'];
      $size = ceil (($headers[$i]['size'] / 1024));
      $index = count ($messagelist);
      $messagelist[$index]['read'] = $read;
      $messagelist[$index]['readlink'] = $readlink;
      $messagelist[$index]['composelink'] = $composelink;
      $messagelist[$index]['composelinksent'] = $composelinksent;
      $messagelist[$index]['folderlink'] = $folderlink;
      $messagelist[$index]['from'] = $from;
      $messagelist[$index]['to'] = $to;
      $messagelist[$index]['subject'] = $subject;
      $messagelist[$index]['date'] = $date;
      $messagelist[$index]['statusimg'] = $msg_img;
      $messagelist[$index]['checkbox'] = $checkbox;
      $messagelist[$index]['attachimg'] = $attachimg;
      $messagelist[$index]['priorimg'] = $img_prior;
      $messagelist[$index]['size'] = $size;
      $messagelist[$index]['folder'] = $headers[$i]['folder'];
    }
    $smarty->assign ('umMessageList', $messagelist);
    unset ($headers);
    $smarty->assign ('umDoSearch', 1);
  }
  else
  {
    $smarty->assign ('umDoSearch', 0);
  }
  $smarty->display ('neotech.net/search.htm');
?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?