MIL002.inc 8.33 KB
<?php

   require_once 'jcode.phps';

define("", "");

function auth($userid, $passwd, $realem = '', $crypt = 1)
{

	if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])) {
		@header("WWW-Authenticate: Basic realm=\"".$realem."\"");
		@header("HTTP/1.0 401 Unauthorized");
		return FALSE;
	}

	$auth_id = $_SERVER['PHP_AUTH_USER'];

	switch ($crypt) {
		case 1:
			$auth_pw = md5($_SERVER['PHP_AUTH_PW']);
			break;
		case 2:
			$auth_pw = crypt($_SERVER['PHP_AUTH_PW'], substr($passwd, 0, 2));
			break;
		default:
			$auth_pw = $_SERVER['PHP_AUTH_PW'];
			break;
	}

	if (strcmp($auth_id, $userid) == 0 && strcmp($auth_pw, $passwd) == 0) {
		return TRUE;
	}

	@header("WWW-Authenticate: Basic realm=\"".$realem."\"");
	@header("HTTP/1.0 401 Unauthorized");
	return FALSE;
}

function html_head()
{
	$title = "WebMail";
	echo "<html lang=\"en-US\">\n";
	echo "<head>\n";
	echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; cahrset=EUC-JP\">\n";
	echo "<META HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">\n";
	echo "<META HTTP-EQUIV=\"Cache-Control\" CONTENT=\"no-cache\">\n";
	echo "<title>e-グル Webメール</title>\n";
	echo "<script language=\"javascript\">\n";
	echo "<!--\n";
	echo "function confirm_del(num, file)\n";
	echo "{\n";
	echo "ans = confirm(\"選択したメールを削除します。よろしいですか?\" + \" \");\n";
	echo "if (ans == true) {\n";
	echo "if (document.e_gru.del_seq.length){\n";
	echo "	for(i = 0 ; i <= document.e_gru.del_seq.length-1; i++ ){\n";
	echo "if (document.e_gru.del_seq[i].checked==true){\n";
	echo "document.e_gru.strChkDat.value=document.e_gru.strChkDat.value+document.e_gru.del_seq[i].value+\"/\";\n";
	echo "}\n";
	echo "}\n";
	echo "}else{\n";
	echo "if (document.e_gru.del_seq.checked==true){\n";
	echo "document.e_gru.strChkDat.value=document.e_gru.del_seq.value+\"/\";\n";
	echo "}\n";
	echo "}\n";
	
	//echo "alert(document.e_gru.strChkDat.value);\n";
	echo "document.e_gru.method=\"POST\";\n";
	echo "document.e_gru.dele_uid.value=1;\n";
	echo "document.e_gru.action = file;\n";
	echo "document.e_gru.submit();\n";

	echo "}\n";
	echo "}\n";

   echo "function url_back(){\n";
   echo "document.e_gru.action = \"MIL008.php\";\n";
   echo "document.e_gru.method=\"POST\";\n";
   echo "document.e_gru.submit();\n";
   echo "return true;\n";
   echo "}\n";

	echo "//-->\n";
	echo "</script>\n";
	echo "<link rel=\"stylesheet\" href=\"basefont.css\" type=\"text/css\">\n";
	echo "</head>\n";
	echo "<body>\n";

}

function html_foot($PHP_GoogleFlg = 0)
{
	if (isset($_GET['view_uid'])) {
		//echo "<hr><div align=\"center\">poppop v".POPPOP_VERSION." by TOMO</div>";
      //echo "<hr><div align=\"center\"></div>";
	}
   //コピーライト
	echo "<HR width=100%>";
   include("include/copyright.inc");
	echo "</body>\n";
	echo "</html>\n";
}

function html_exit($message = '',$PHP_GoogleFlg = 0)
{
	echo $message, "\n";
	html_foot($PHP_GoogleFlg);
	exit;
}

function link_url($str)
{
	$regex = "((https?://|ftp://)([0-9A-Za-z:_?./~%;()=+#-]|&amp;)+)";
	$str = eregi_replace($regex, "<a href=\"\\1\" target=\"_blank\">\\1</a>", $str);

	$regex_mail = "((mailto:)?([0-9A-Za-z._-]+@[0-9A-Za-z.-]+))";
	$str = eregi_replace($regex_mail, "<a href=\"mailto:\\3\">\\1</a>", $str);

	return $str;
}

function jstrhead($str, $len)
{
	$b = unpack('C*', $str);
	$n = count($b);
	$h = '';

	for ($i = 1, $l = 0; $i <= $n; ++$i) {
		if ($b[$i] >= 0x80) {  //Japanese
//			if ( 0xA0 < $b[$i] && $b[$i] < 0xE0 ) {  //SJIS Hankaku
//				$c = chr($b[$i]);
//			} else {
				if ($b[$i] != 0x8E) {				//EUC-JP
					++$l;
				}
				$c = chr($b[$i]).chr($b[++$i]);
//			}
		} else {  //ASCII
			$c = chr($b[$i]);
		}
		if (++$l > $len) break;
		$h .= $c;
	}

	return $h;
}

function decode_body($body, $enc)
{
	switch (strtolower($enc)) {
		case 'quoted-printable':
			$body = quoted_printable_decode($body);
			break;
		case 'base64':
			$body = base64_decode($body);
			break;
		default;
			break;
	}

	return $body;
}

function decode_mimeheader($str, $charset_to = 0)
{
	// combine multiple-line
	$ret_str = ereg_replace("\r\n[\t ]+", "", $str);

	// regex for encoded-word
	$expr = "^.*(=\\?([^?]+)\\?([BbQq])\\?([^?]*)\\?=).*$";

	while (ereg($expr, $ret_str, $match)) {

		// encoding
		switch (strtolower($match[3])) {
			case 'b':
				$dec_data = base64_decode($match[4]);
				break;
			case 'q':
				$dec_data = quoted_printable_decode($match[4]);
				break;
			default:
				$dec_data = $match[4];
				break;
		}

		// charset
		$charset_from = check_jcode_encoding($match[2]);

		// convert charet
		$dec_data = JcodeConvert($dec_data, $charset_from, $charset_to);

		// replace encoded-word
		$ret_str = str_replace($match[1], $dec_data, $ret_str);
	}

	return $ret_str;
}

function color_mail($body, $header = "")
{
	$body   = htmlspecialchars($body, ENT_QUOTES);
	$header = htmlspecialchars($header, ENT_QUOTES);

	$line_body   = split("\r?\n", $body);
	$line_header = split("\r?\n", $header);

	$line_body_max   = count($line_body);
	$line_header_max = count($line_header);

	for ($cnt = 0; $cnt < $line_header_max; ++$cnt) {
		$line_header[$cnt] = _color_header($line_header[$cnt]);
	}

	for ($cnt = 0; $cnt < $line_body_max; ++$cnt) {
		$line_body[$cnt] = _color_body($line_body[$cnt]);
	}

	$str = implode("\n", $line_header) . "\n\n" . implode("\n", $line_body);
	$str = _color_signature($str);

	return $str;
}

function is_valid_uid($uid)
{

	$len = strlen($uid);
	if ($len < 1 || $len > 70) {
		return FALSE;
	}

	if (ereg("[^\x21-\x7E]", $uid)) {
		return FALSE;
	}

	return TRUE;
}

function format_date($date)
{
	return date('Y/m/d&\\nb\\sp;H:i', strtotime($date));
}
function format_date2($date)
{
	return date('YmdHi', strtotime($date));
}

function format_size($size)
{
	return sprintf('%0.1f', $size / 1024).'KB';
}

function get_name($str)
{
	if (ereg('(.+)<.+@.+>.*', $str, $match)) {
		if (ereg('.*"([^"]+)".*', $match[1], $match2)) {
			return $match2[1];
		}
		return $match[1];
	}

	if (ereg('.+\\((.+)\\)', $str, $match)) {
		return $match[1];
	}

	if (ereg('<?([0-9A-Za-z._-]+)@[0-9A-Za-z.-]+>?', $str, $match)) {
		return $match[1];
	}

	return $str;
}

function parse_ctype($ctype)
{
	$type    = '';
	$subtype = '';
	$value = parse_header_value($ctype);
	list($type, $subtype) = split("/", $value['value'], 2);
	$ret['type']    = $type;
	$ret['subtype'] = $subtype;
	$ret['param']   = $value['param'];
	return $ret;
}

function parse_header_value($header)
{
	$v = split(";", $header, 2);
	$h['value'] = trim($v[0]);
	if (!isset($v[1])) {
		return $h;
	}

	$param = split(";", $v[1]);
	$n = count($param);
	for ($i = 0; $i < $n; ++$i) {
		$param_name  = '';
		$param_value = '';
		list($param_name, $param_value) = split("=", $param[$i], 2);
		$h['param'][strtolower(trim($param_name))]
			= ereg_replace('^"([^"]+)"$', "\\1", trim($param_value));
	}

	return $h;
}

function parse_header($header)
{
	$header = trim(ereg_replace("[\r\n]+[\t ]+", "", $header));
	$array_header = split("[\r\n]+", $header);
	$header_num = count($array_header);
	for ($i = 0; $i < $header_num; ++$i) {
		$header_name  = '';
		$header_value = '';
		list($header_name, $header_value) = split(":", $array_header[$i], 2);
		$header_list[strtolower($header_name)] = trim($header_value);
	}
	return $header_list;
}

//*********************
//  Private Functions
//*********************

function _color_body($str)
{
	$quote = "(&gt; ?)";
	for ($i = 5; $i > 0; --$i) {
		$regex = "(^".$quote."{".$i."}.*$)";
		$str   = ereg_replace($regex, "<font class=\"quot".$i."\">\\1</font>", $str);
	}

	$str = _color_option($str);

	return $str;
}

function _color_header($str)
{
	$regex = "(^[^: \t]*[: \t])(.+$)";
	return ereg_replace($regex, "<font class=\"header_all_name\">\\1</font><font class=\"header_all\">\\2</font>", $str);
}

function _color_option($str)
{
	$regex = "(^#.*)"; // Starting with "#"
	return ereg_replace($regex, "<font class=\"option\">\\1</font>", $str);
}

function _color_signature($str)
{
	$regex = "(\r?\n-- \r?\n.+$)"; // See draft-ietf-usefor-article
	return ereg_replace($regex, "<font class=\"signature\">\\1</font>", $str);
}

function check_jcode_encoding($str_encoding)
{
	switch (strtolower($str_encoding)) {
		case 'euc-jp':
			$jc_encoding = 1;
			break;
		case 'shift_jis':
			$jc_encoding = 2;
			break;
		case 'iso-2022-jp':
			$jc_encoding = 3;
			break;
		case 'utf-8':
			global $table_utf8_jis;
			include_once('code_table.ucs2jis');
			$jc_encoding = 4;
			break;
		default:
			$jc_encoding = 0;
			break;
	}
	return $jc_encoding;
}

?>