[메일검사] 내용이 내용이 제대로 보인다면 보내는 메일 서버에는 이상이 없는것입니다.
'.date("Y-m-d H:i:s").'
이 메일 주소로는 회신되지 않습니다.', 1);
+ mailer($config['cf_title'], $config['cf_admin_email'], trim($email[$i]), '[메일검사] 제목', '[메일검사] 내용이 내용이 제대로 보인다면 보내는 메일 서버에는 이상이 없는것입니다.
'.G4_TIME_YMDHIS.'
이 메일 주소로는 회신되지 않습니다.
', 1);
echo '';
echo '결과메세지
';
@@ -45,13 +41,12 @@ if (isset($_POST['mail'])) {
메일서버가 정상적으로 동작 중인지 확인할 수 있습니다.
아래 입력칸에 테스트 메일을 발송하실 메일 주소를 입력하시면, [메일검사] 라는 제목으로 테스트 메일을 발송합니다.
- 여러 곳으로 테스트 메일을 발송하시려면 , 로 메일을 구분하십시오.
diff --git a/bbs/login_check.php b/bbs/login_check.php
index 9f5378e2b..70339f262 100644
--- a/bbs/login_check.php
+++ b/bbs/login_check.php
@@ -31,7 +31,7 @@ if ($mb['mb_leave_date'] && $mb['mb_leave_date'] <= date("Ymd", G4_SERVER_TIME))
}
if ($config['cf_use_email_certify'] && !preg_match("/[1-9]/", $mb['mb_email_certify'])) {
- confirm("{$mb['mb_email']} 메일로 메일인증을 받으셔야 로그인 가능합니다. 다른 메일주소로 인증하시려면 취소를 클릭하시기 바랍니다.", G4_URL, G4_BBS_URL.'/register_email.php?mb_id='.$mb_id);
+ confirm("{$mb['mb_email']} 메일로 메일인증을 받으셔야 로그인 가능합니다. 다른 메일주소로 변경하여 인증하시려면 취소를 클릭하시기 바랍니다.", G4_URL, G4_BBS_URL.'/register_email.php?mb_id='.$mb_id);
}
@include_once($member_skin_path.'/login_check.skin.php');
diff --git a/bbs/move.php b/bbs/move.php
index d0c1faa53..46d85dcd4 100644
--- a/bbs/move.php
+++ b/bbs/move.php
@@ -59,31 +59,34 @@ for ($i=0; $row=sql_fetch_array($result); $i++)
|
-
+
|
게시판 |
-
-
+ 현재게시판';
+ $atc_bg = 'copymove_currentbg';
+ }
+ ?>
+
|
-
+
|
|
@@ -92,7 +95,7 @@ for ($i=0; $row=sql_fetch_array($result); $i++)
-
+
@@ -100,9 +103,9 @@ for ($i=0; $row=sql_fetch_array($result); $i++)
-
-
diff --git a/bbs/register_email_update.php b/bbs/register_email_update.php
index db5e309dc..feea55858 100644
--- a/bbs/register_email_update.php
+++ b/bbs/register_email_update.php
@@ -6,7 +6,7 @@ include_once(G4_LIB_PATH.'/mailer.lib.php');
$mb_id = escape_trim($_POST['mb_id']);
$mb_email = escape_trim($_POST['mb_email']);
-$sql = " select mb_datetime from {$g4['member_table']} where mb_id = '{$mb_id}' and mb_email_certify <> '' ";
+$sql = " select mb_name, mb_datetime from {$g4['member_table']} where mb_id = '{$mb_id}' and mb_email_certify <> '' ";
$mb = sql_fetch($sql);
if (!$mb) {
alert("이미 메일인증 하신 회원입니다.", G4_URL);
@@ -25,6 +25,7 @@ if ($row['cnt']) {
// 인증메일 발송
$subject = '['.$config['cf_title'].'] 인증확인 메일입니다.';
+$mb_name = $mb['mb_name'];
$mb_datetime = $mb['mb_datetime'] ? $mb['mb_datetime'] : G4_TIME_YMDHIS;
$mb_md5 = md5($mb_id.$mb_email.$mb_datetime);
$certify_href = G4_BBS_URL.'/email_certify.php?mb_id='.$mb_id.'&mb_md5='.$mb_md5;
@@ -34,11 +35,10 @@ include_once ('./register_form_update_mail3.php');
$content = ob_get_contents();
ob_end_clean();
-$admin = get_admin('super');
-mailer($admin['mb_nick'], $admin['mb_email'], $mb_email, $subject, $content, 1);
+mailer($config['cf_title'], $config['cf_admin_email'], $mb_email, $subject, $content, 1);
$sql = " update {$g4['member_table']} set mb_email = '$mb_email' where mb_id = '$mb_id' ";
sql_query($sql);
-alert("인증메일을 {$mb_email} 메일로 다시 보내 드렸습니다.\\n\\n{$mb_email} 메일을 확인하여 주십시오.", G4_URL);
+alert("인증메일을 {$mb_email} 메일로 다시 보내 드렸습니다.\\n\\n잠시후 {$mb_email} 메일을 확인하여 주십시오.", G4_URL);
?>
\ No newline at end of file
diff --git a/bbs/register_form_update.php b/bbs/register_form_update.php
index 347970dbc..10d677b0f 100644
--- a/bbs/register_form_update.php
+++ b/bbs/register_form_update.php
@@ -141,10 +141,6 @@ if (isset($_FILES['mb_icon']) && is_uploaded_file($_FILES['mb_icon']['tmp_name']
}
}
-
-// 관리자님 회원정보
-$admin = get_admin('super');
-
//===============================================================
// 휴대폰 본인확인
//---------------------------------------------------------------
@@ -239,7 +235,7 @@ if ($w == '') {
$content = ob_get_contents();
ob_end_clean();
- mailer($admin['mb_nick'], $admin['mb_email'], $mb_email, $subject, $content, 1);
+ mailer($config['cf_title'], $config['cf_admin_email'], $mb_email, $subject, $content, 1);
}
// 최고관리자님께 메일 발송
@@ -251,7 +247,7 @@ if ($w == '') {
$content = ob_get_contents();
ob_end_clean();
- mailer($mb_nick, $mb_email, $admin['mb_email'], $subject, $content, 1);
+ mailer($mb_nick, $mb_email, $config['cf_admin_email'], $subject, $content, 1);
}
// 메일인증 사용하지 않는 경우에만 로그인
@@ -337,7 +333,7 @@ if ($config['cf_use_email_certify'] && $old_email != $mb_email) {
$content = ob_get_contents();
ob_end_clean();
- mailer($admin['mb_nick'], $admin['mb_email'], $mb_email, $subject, $content, 1);
+ mailer($config['cf_title'], $config['cf_admin_email'], $mb_email, $subject, $content, 1);
}
diff --git a/config.php b/config.php
index 1243aee60..e5052e2af 100644
--- a/config.php
+++ b/config.php
@@ -136,6 +136,11 @@ define('G4_FILE_PERMISSION', 0644); // 파일 생성시 퍼미션
// 모바일 인지 결정 $_SERVER['HTTP_USER_AGENT']
define('G4_MOBILE_AGENT', 'phone|samsung|lgtel|mobile|skt|nokia|blackberry|android|sony');
+// SMTP
+// lib/mailer.lib.php 에서 사용
+define('G4_SMTP', '127.0.0.1');
+
+
/********************
기타 상수
********************/
diff --git a/css/default.css b/css/default.css
index 8829ef8b4..515e81fb4 100644
--- a/css/default.css
+++ b/css/default.css
@@ -93,6 +93,11 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline}
#ft_copy b {color:#fff}
#ft_copy a {position:absolute;top:10px;right:0;color:#fff}
+/* 게시물 선택복사 선택이동 */
+#copymove {}
+.copymove_current {float:right;color:#ff3061}
+.copymove_currentbg {background:#f4f4f4}
+
/* 화면낭독기 사용자용 */
#hd_login_msg {position:absolute;top:0;left:0;font-size:0;line-height:0;overflow:hidden}
.msg_sound_only, .sound_only {display:inline-block !important;position:absolute;top:0;left:0;margin:0 !important;padding:0 !important;font-size:0;line-height:0;border:0 !important;overflow:hidden !important}
diff --git a/css/mobile.css b/css/mobile.css
index 579a8c226..19723041d 100644
--- a/css/mobile.css
+++ b/css/mobile.css
@@ -101,6 +101,11 @@ a:active {color:#000;text-decoration:underline}
#ft_copy b {color:#fff}
#ft_copy a {color:#fff;text-decoration:none}
+/* 게시물 선택복사 선택이동 */
+#copymove {}
+.copymove_current {float:right;color:#ff3061}
+.copymove_currentbg {background:#f4f4f4}
+
/* PC화면으로 */
#device_change {display:block;margin:0.3em;padding:0.5em 0;border:1px solid #eee;border-radius:2em;color:#000;font-size:1em;text-decoration:none;text-align:center}
diff --git a/install/gnuboard4s.sql b/install/gnuboard4s.sql
index d08ad879d..a4caaebd0 100644
--- a/install/gnuboard4s.sql
+++ b/install/gnuboard4s.sql
@@ -192,6 +192,7 @@ DROP TABLE IF EXISTS `g4s_config`;
CREATE TABLE IF NOT EXISTS `g4s_config` (
`cf_title` varchar(255) NOT NULL DEFAULT '',
`cf_admin` varchar(255) NOT NULL DEFAULT '',
+ `cf_admin_email` varchar(255) NOT NULL DEFAULT '',
`cf_include_index` varchar(255) NOT NULL DEFAULT '',
`cf_include_head` varchar(255) NOT NULL DEFAULT '',
`cf_include_tail` varchar(255) NOT NULL DEFAULT '',
diff --git a/lib/mailer.lib.php b/lib/mailer.lib.php
index f6ee4e35b..63d7c602e 100644
--- a/lib/mailer.lib.php
+++ b/lib/mailer.lib.php
@@ -3,57 +3,78 @@ if (!defined('_GNUBOARD_')) exit;
// 메일 보내기 (파일 여러개 첨부 가능)
// type : text=0, html=1, text+html=2
-function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file='', $cc='', $bcc='')
-{
- global $config;
- global $g4;
+function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file="", $cc="", $bcc="")
+{
+ global $config;
+ global $g4;
- // 메일발송 사용을 하지 않는다면
- if (!$config['cf_email_use']) return;
+ // 메일발송 사용을 하지 않는다면
+ if (!$config['cf_email_use']) return;
- $fname = "=?utf-8?B?" . base64_encode($fname) . "?=";
- $subject = "=?utf-8?B?" . base64_encode($subject) . "?=";
+ $boundary = uniqid(time());
- $header = "Return-Path: <$fmail>\n";
- $header .= "From: $fname <$fmail>\n";
- $header .= "Reply-To: <$fmail>\n";
- if ($cc) $header .= "Cc: $cc\n";
- if ($bcc) $header .= "Bcc: $bcc\n";
- $header .= "MIME-Version: 1.0\n";
- $header .= "X-Mailer: {$_SERVER['SERVER_ADDR']} : {$_SERVER['REMOTE_ADDR']} : ".G4_URL." : {$_SERVER['PHP_SELF']} : {$_SERVER['HTTP_REFERER']} \n";
+ $header = "Message-ID: <".generate_mail_id(preg_replace("/@.+$/i","",$to)).">\r\n".
+ "From:=?utf-8?B?".base64_encode($fname)."?=<$fmail>\r\n";
+ if ($cc) $header .= "Cc: $cc\n";
+ if ($bcc) $header .= "Bcc: $bcc\n";
+ $header .= "MIME-Version: 1.0\n";
+ $header .= "X-Mailer: SIR Mailer 0.94 : {$_SERVER['SERVER_ADDR']} : {$_SERVER['REMOTE_ADDR']} : ".G4_URL." : {$_SERVER['PHP_SELF']} : {$_SERVER['HTTP_REFERER']} \n";
+ $header .= "Date: ".date ("D, j M Y H:i:s T",time())."\r\n".
+ "To: $to\r\n".
+ "Subject: =?utf-8?B?".base64_encode($subject)."?=\r\n";
- if ($file != '') {
- $boundary = uniqid('http://sir.co.kr/');
-
- $header .= "Content-type: MULTIPART/MIXED; BOUNDARY=\"$boundary\"\n\n";
- $header .= "--$boundary\n";
- }
-
- if ($type) {
- $header .= "Content-Type: TEXT/HTML; charset=utf-8\n";
- if ($type == 2)
- $content = nl2br($content);
+ if ($file == "") {
+ $header .= "Content-Type: MULTIPART/ALTERNATIVE;\n".
+ " BOUNDARY=\"$boundary\"\n\n";
} else {
- $header .= "Content-Type: TEXT/PLAIN; charset=utf-8\n";
- $content = stripslashes($content);
+ $header .= "Content-Type: MULTIPART/MIXED;\n".
+ " BOUNDARY=\"$boundary\"\n\n";
}
- $header .= "Content-Transfer-Encoding: BASE64\n\n";
- $header .= chunk_split(base64_encode($content)) . "\n";
- if ($file != '') {
- foreach ($file as $f) {
- $header .= "\n--$boundary\n";
- $header .= "Content-Type: APPLICATION/OCTET-STREAM; name=\"{$f['name']}\"\n";
- $header .= "Content-Transfer-Encoding: BASE64\n";
- $header .= "Content-Disposition: inline; filename=\"{$f['name']}\"\n";
+ if ($type == 2)
+ $content = nl2br($content);
- $header .= "\n";
- $header .= chunk_split(base64_encode($f['data']));
- $header .= "\n";
- }
- $header .= "--$boundary--\n";
+ $strip_content = stripslashes(trim($content));
+ $encode_content = chunk_split(base64_encode($strip_content));
+
+ $body = "";
+ $body .= "\n--$boundary\n";
+ $body .= "Content-Type: TEXT/PLAIN; charset=utf-8\n";
+ $body .= "Content-Transfer-Encoding: BASE64\n\n";
+ $body .= $encode_content;
+ $body .= "\n--$boundary\n";
+
+ if ($type) {
+ $body .= "Content-Type: TEXT/HTML; charset=utf-8\n";
+ $body .= "Content-Transfer-Encoding: BASE64\n\n";
+ $body .= $encode_content;
+ $body .= "\n--$boundary\n";
+ }
+
+ if ($file != "") {
+ foreach ($file as $f) {
+ $body .= "n--$boundary\n";
+ $body .= "Content-Type: APPLICATION/OCTET-STREAM; name=$fname\n";
+ $body .= "Content-Transfer-Encoding: BASE64\n";
+ $body .= "Content-Disposition: inline; filename=$fname\n";
+
+ $body .= "\n";
+ $body .= chunk_split(base64_encode($f['data']));
+ $body .= "\n";
+ }
+ $body .= "--$boundary--\n";
+ }
+
+ $mails['to'] = $to;
+ $mails['from'] = $fmail;
+ $mails['text'] = $header.$body;
+
+ if (defined(G4_SMTP)) {
+ ini_set('SMTP', G4_SMTP);
+ @mail($to, $subject, $body, $header, "-f $fmail");
+ } else {
+ new maildaemon($mails);
}
- @mail($to, $subject, "", $header);
}
// 파일 첨부시
@@ -167,4 +188,176 @@ function verify_email($address, &$error)
$error = '메일 교환기에 도달하지 못하였습니다.';
return false;
}
+
+
+# jsboard 의 메일보내기 class를 추가합니다. 130808
+# http://kldp.net/projects/jsboard/
+
+# mail 보내기 함수 2001.11.30 김정균
+# $Id: include/sendmail.php,v 1.4 2009/11/19 05:29:51 oops Exp $
+
+# 서버상의 smtp daemon 에 의존하지 않고 직접 발송하는 smtp class
+#
+# 특정 배열로 class 에 전달을 하여 메일을 발송한다. 배열은 아래을 참조한다.
+#
+# debug -> debug 를 할지 안할지를 결정한다.
+# ofhtml -> 웹상에서 사용할지 쉘상에서 사용할지를 결정한다.
+# from -> 메일을 발송하는 사람의 메일주소
+# to -> 메일을 받을 사람의 메일 주소
+# text -> 헤더 내용을 포함한 메일 본문
+#
+class maildaemon {
+ var $failed = 0;
+
+ function __construct($v) {
+ $this->debug = $v['debug'];
+ $this->ofhtml = $v['ofhtml'];
+ if($_SERVER['SERVER_NAME']) $this->helo = $_SERVER['SERVER_NAME'];
+ if(!$this->helo || preg_match("/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/i",$this->helo))
+ $this->helo = "JSBoardMessage";
+
+ $this->from = $v['from'];
+ $this->to = $v['to'];
+ $this->body = $v['text']."\r\n.";
+
+ //die($v['text']);
+ $this->newline = $this->ofhtml ? "
\n" : "\n";
+
+ $this->mx = $this->getMX($this->to);
+
+ if($this->debug) {
+ echo "DEBUG: ".$this->mx." start".$this->newline;
+ echo "################################################################".$this->newline;
+ }
+ $this->sockets("open");
+ $this->send("HELO ".$this->helo);
+ $this->send("MAIL FROM: <".$this->from.">");
+ $this->send("RCPT TO: <".$this->to.">");
+ $this->send("data");
+ $this->send($this->body);
+ $this->send("quit");
+ $this->sockets("close");
+ }
+
+ function getMX($email) {
+ $dev = explode("@",$email);
+ $account = $dev[0];
+ $host = $dev[1];
+
+ if(checkdnsrr($host,"MX") && getmxrr($host,$mx,$weight)) {
+ $idx = 0;
+ for($i=0;$i $weight[$i]) {
+ $dest = $weight[$i];
+ $idx = $i;
+ }
+ }
+ } else return $host;
+ return $mx[$idx];
+ }
+
+ # 디버그 함수
+ # $t -> 1 (debug of socket open,close)
+ # 0 (regular smtp message)
+ # $p -> 1 (print detail debug)
+ #
+ # return 1 -> success
+ # return 0 -> failed
+ #
+ function debug($str,$t=0,$p=0) {
+ if($t) {
+ if(!$str) $this->failed = 1;
+ if($this->sock) $returnmsg = trim(fgets($this->sock,1024));
+ } else {
+ if(!preg_match("/^(220|221|250|251|354)$/",substr(trim($str),0,3)))
+ $this->failed = 1;
+ }
+
+ # DEBUG mode -> 모든 메세지 출력
+ if($p) {
+ if($t) {
+ $str = "Conncet ".$this->mx;
+ $str .= $this->failed ? " Failed" : " Success";
+ $str .= $this->newline."DEBUG: $returnmsg";
+ }
+ echo "DEBUG: $str".$this->newline;
+ }
+
+ # DEBUG 모드가 아닐때, 에러 메세지 출력
+ if(!$p && $this->failed) {
+ if($this->ofhtml) echo "\n";
+ else "ERROR: $str\n";
+ }
+ }
+
+ function sockets($option=0) {
+ switch($option) {
+ case "open" :
+ $this->sock = @fsockopen($this->mx,25,$this->errno,$this->errstr,30);
+ $this->debug($this->sock,1,$this->debug);
+ break;
+ default :
+ if($this->sock) fclose($this->sock);
+ break;
+ }
+ }
+
+ function send($str,$chk=0) {
+ if(!$this->failed) {
+ if($this->debug) {
+ if(preg_match("/\r\n/",trim($str)))
+ $str_debug = trim(str_replace("\r\n","\r\n ",$str));
+ else $str_debug = $str;
+ }
+ fputs($this->sock,"$str\r\n");
+ $recv = trim(fgets($this->sock,1024));
+ $recvchk = $recv;
+ $this->debug($recv,0,$this->debug);
+
+ if(preg_match("/Mail From:/i",$str) && preg_match("/exist|require|error/i",$recvchk) && !$chk) {
+ $this->failed = 0;
+ $this->send("MAIL FROM: <".$this->to.">",1);
+ }
+ }
+ }
+}
+
+
+function generate_mail_id($uid) {
+ $id = date("YmdHis",time());
+ mt_srand((float) microtime() * 1000000);
+ $randval = mt_rand();
+ $id .= $randval."@$uid";
+ return $id;
+}
+
+
+function mail_header($to,$from,$title,$mta=0) {
+ global $langs,$boundary;
+
+ # mail header 를 작성
+ $boundary = get_boundary_msg();
+ $header = "Message-ID: <".generate_mail_id(preg_replace("/@.+$/i","",$to)).">\r\n".
+ "From:=?utf-8?B?".base64_encode('보내는사람')."?=<$from>\r\n".
+ "MIME-Version: 1.0\r\n";
+
+ if(!$mta) $header .= "Date: ".date ("D, j M Y H:i:s T",time())."\r\n".
+ "To: $to\r\n".
+ "Subject: $title\r\n";
+
+ $header .= "Content-Type: multipart/alternative;\r\n".
+ " boundary=\"$boundary\"\r\n\r\n";
+
+ return $header;
+}
+
+
+function get_boundary_msg() {
+ $uniqchr = uniqid("");
+ $one = strtoupper($uniqchr[0]);
+ $two = strtoupper(substr($uniqchr,0,8));
+ $three = strtoupper(substr(strrev($uniqchr),0,8));
+ return "----=_NextPart_000_000${one}_${two}.${three}";
+}
?>
\ No newline at end of file
diff --git a/mobile/skin/board/basic/style.css b/mobile/skin/board/basic/style.css
index 70fb76b67..d159257c7 100644
--- a/mobile/skin/board/basic/style.css
+++ b/mobile/skin/board/basic/style.css
@@ -1,3 +1,6 @@
+@charset "utf-8";
+/* SIR 지운아빠 */
+
/* 게시판 목록 */
#bo_list_title {padding:0 1em}
diff --git a/mobile/skin/board/gallery/style.css b/mobile/skin/board/gallery/style.css
index 8cf767895..298fb3c4d 100644
--- a/mobile/skin/board/gallery/style.css
+++ b/mobile/skin/board/gallery/style.css
@@ -1,3 +1,6 @@
+@charset "utf-8";
+/* SIR 지운아빠 */
+
/* 갤러리 목록 */
#bo_img h2 {margin:0;padding:0;width:0;height:0;font-size:0;line-height:0;overflow:hidden}
#bo_img_list {margin:1em 0 0;padding:0 1em;list-style:none}
diff --git a/mobile/skin/connect/basic/style.css b/mobile/skin/connect/basic/style.css
index 9eee93192..98483c0f9 100644
--- a/mobile/skin/connect/basic/style.css
+++ b/mobile/skin/connect/basic/style.css
@@ -1,3 +1,6 @@
+@charset "utf-8";
+/* SIR 지운아빠 */
+
/* 현재접속자 */
#current_connect_tbl {}
#current_connect_tbl th:nth-of-type(1) {width:50px}
diff --git a/mobile/skin/latest/basic/style.css b/mobile/skin/latest/basic/style.css
index 76fc5a6df..e60ca364c 100644
--- a/mobile/skin/latest/basic/style.css
+++ b/mobile/skin/latest/basic/style.css
@@ -1,3 +1,6 @@
+@charset "utf-8";
+/* SIR 지운아빠 */
+
/* 최근게시물 스킨 (latest) */
.lat {position:relative;margin:0 0 1em;padding:0 1em 1.5em;border-bottom:1px solid #ddd}
.lat ul {margin:0 0 1em;padding:0;list-style:none}
diff --git a/mobile/skin/member/basic/style.css b/mobile/skin/member/basic/style.css
index 2f4739992..edb392b24 100644
--- a/mobile/skin/member/basic/style.css
+++ b/mobile/skin/member/basic/style.css
@@ -1,3 +1,6 @@
+@charset "utf-8";
+/* SIR 지운아빠 */
+
/* 회원가입 약관 */
#fregister section {padding:1.5em;border-bottom:1px solid #eee;background:#fafafa}
#fregister h2 {margin:0 0 1.5em;text-align:center}
diff --git a/mobile/skin/new/basic/style.css b/mobile/skin/new/basic/style.css
index f7ac4be5c..36a97a3d4 100644
--- a/mobile/skin/new/basic/style.css
+++ b/mobile/skin/new/basic/style.css
@@ -1,3 +1,6 @@
+@charset "utf-8";
+/* SIR 지운아빠 */
+
/* 새글 */
#new_sch {margin:0 0 0.3em;padding:0.3em 0.7em}
#new_tbl {}
diff --git a/mobile/skin/outlogin/basic/style.css b/mobile/skin/outlogin/basic/style.css
index 946631f06..1e6467fab 100644
--- a/mobile/skin/outlogin/basic/style.css
+++ b/mobile/skin/outlogin/basic/style.css
@@ -1,3 +1,6 @@
+@charset "utf-8";
+/* SIR 지운아빠 */
+
/* 아웃로그인 */
.ol {position:relative;margin:0 0 1em;padding:0 0.5em 0.5em;border-bottom:1px solid #e7f1ed}
.ol h2 {width:0;height:0;overflow:hidden}
diff --git a/mobile/skin/poll/basic/style.css b/mobile/skin/poll/basic/style.css
index d541685dc..2a6a93e34 100644
--- a/mobile/skin/poll/basic/style.css
+++ b/mobile/skin/poll/basic/style.css
@@ -1,3 +1,6 @@
+@charset "utf-8";
+/* SIR 지운아빠 */
+
/* 설문조사 스킨 */
#poll {margin:1em 0 0;padding:0 0 1em}
#poll header {position:relative;padding:0 0.5em}
diff --git a/mobile/skin/popular/basic/style.css b/mobile/skin/popular/basic/style.css
index d878a474b..22e7530df 100644
--- a/mobile/skin/popular/basic/style.css
+++ b/mobile/skin/popular/basic/style.css
@@ -1,3 +1,6 @@
+@charset "utf-8";
+/* SIR 지운아빠 */
+
/* 인기검색어 */
#popular {background:#515151}
#popular div {zoom:1}
diff --git a/mobile/skin/search/basic/style.css b/mobile/skin/search/basic/style.css
index 61f4860f0..96d51d8ef 100644
--- a/mobile/skin/search/basic/style.css
+++ b/mobile/skin/search/basic/style.css
@@ -1,3 +1,6 @@
+@charset "utf-8";
+/* SIR 지운아빠 */
+
/* 전체검색결과 스킨 */
#sch_res_detail {padding:0 0 1em;border-bottom:1px solid #e9e9e9;text-align:center}
#sch_res_detail legend {position:absolute;font-size:0;line-height:0;overflow:hidden}
diff --git a/mobile/skin/visit/basic/style.css b/mobile/skin/visit/basic/style.css
index 5c549e367..79dba9160 100644
--- a/mobile/skin/visit/basic/style.css
+++ b/mobile/skin/visit/basic/style.css
@@ -1,3 +1,6 @@
+@charset "utf-8";
+/* SIR 지운아빠 */
+
#visit {background:#444}
#visit div {zoom:1}
#visit div:after {display:block;visibility:hidden;clear:both;content:""}
diff --git a/mobile/tail.php b/mobile/tail.php
index 1ef67d14b..a61813865 100644
--- a/mobile/tail.php
+++ b/mobile/tail.php
@@ -40,7 +40,27 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
-" id="device_change">PC 버전으로 보기
+$val) {
+ if($key == 'device')
+ continue;
+
+ $href .= $sep.$key.'='.$val;
+ $sep = '&';
+ $seq++;
+ }
+}
+if($seq)
+ $href .= '&device=pc';
+else
+ $href .= '?device=pc';
+?>
+
+PC 버전으로 보기
-
-" id="device_change">모바일 버전으로 보기
-
+$val) {
+ if($key == 'device')
+ continue;
+
+ $href .= $sep.$key.'='.$val;
+ $sep = '&';
+ $seq++;
+ }
+ }
+ if($seq)
+ $href .= '&device=mobile';
+ else
+ $href .= '?device=mobile';
+?>
+모바일 버전으로 보기
+