Error Page Code

인터넷관련 2008. 1. 18. 09:59
'100' => 'Continue',
'101' => 'Switching Protocols',
'200' => 'OK',
'201' => 'Created',
'202' => 'Accepted',
'203' => 'Non-Authoritative Information',
'204' => 'No Content',
'205' => 'Reset Content',
'206' => 'Partial Content',
'300' => 'Multiple Choices',
'301' => 'Moved Permanently',
'302' => 'Moved Temporarily',
'303' => 'See Other',
'304' => 'Not Modified',
'305' => 'Use Proxy',
'400' => 'Bad Request',
'401' => 'Unauthorized',
'402' => 'Payment Required',
'403' => 'Forbidden',
'404' => 'Not Found',
'405' => 'Method Not Allowed',
'406' => 'Not Acceptable',
'407' => 'Proxy Authentication Required',
'408' => 'Request Time-out',
'409' => 'Conflict',
'410' => 'Gone',
'411' => 'Length Required',
'412' => 'Precondition Failed',
'413' => 'Request Entity Too Large',
'414' => 'Request-URI Too Large',
'415' => 'Unsupported Media Type',
'500' => 'Internal Server Error',
'501' => 'Not Implemented',
'502' => 'Bad Gateway',
'503' => 'Service Unavailable',
'504' => 'Gateway Time-out',
'505' => 'HTTP Version not supported'


404 에러 강제로 띄우기
<?
header("HTTP/1.0 404 Not Found");
exit;
?>
Posted by 알 수 없는 사용자
,

얼마전 오너의 지시로 웹상에서 호스팅 받는 업체들 용량체크하는법을 연구중에 딴분이 쓰고 있는 방법을 알아내서 유용하게 사용하고 있습니다.


필요하신분 함 사용해보세요. 웹 에이전시에서 사용하기에 적합 합니다.


<?
function direc($shellcommand) {
$used = explode("\t", exec($shellcommand));
return (int) $used[0];
}
?>


<?=sprintf('%d', direc("du -m "."홈디렉토리절대경로"))?>


이렇게 하면 용량이 표시됩니다.

'인터넷관련' 카테고리의 다른 글

session_save_path() 2  (0) 2008.01.18
table_sql 을 엑셀파일로 다운받기.  (0) 2008.01.18
get_magic_quotes_gpc()  (0) 2008.01.18
Error Page Code  (0) 2008.01.18
mysql query 관련 class  (0) 2008.01.18
파일네임 금지  (0) 2008.01.18
문자열 내의 HTML 태그를 모두 없애는 방법  (0) 2008.01.18
nowrap 과 break-all 로 테이블 안의 줄바꿈 제어  (0) 2008.01.18
Posted by 알 수 없는 사용자
,

아래 소스는 MySQL 접속 및 쿼리에 필요한 Class 입니다.

MySQL 사용시 필요한 모든 함수를 사용할 수 있도록 할 수도 있지만...

가장 많이 쓰이는 query 부분만이라도 좀 더 쉽게 구연하고자 만들었습니다.


사용방법은 간단합니다.


<?

include_once "Mysql.class.php";

$sq = new Mysql("아이디","비밀번호","디비명");


$sq_id = $sq->Query("select * from test","",__FILE__,__LINE__);

while($rows = $sq->Fetch("fa",$sq_id)) {
   echo $rows[no]."<br>";
}

?>


위 소스를 간단히 설명하겠습니다.


1. 개체 생성과 동시에 아이디, 비밀번호, 디비명을 이용해서 MySQL 계정에 접속합니다.

2. query() 메소드를 사용하여 쿼리를 실행합니다.

 - 메소드 실행시 메소드는 결과가 저장된 아이디(번호)를 반환합니다.

 - 중요한 쿼리 뒷쪽 3개의 인수에 주목하세요...^^

 - 쿼리 바로 뒤에는 "" 이렇게 아무것도 입력하지 않았는데요. 이건 조금 있다가 설명하고...

 - __FILE__ 은 PHP 기본 상수로서 현재 스크립트가 실행 중인 파일명을 저장하고 있습니다.

 - __LINE__ 도 역시 PHP 기본 상수로서 실행중인 줄번호를 저장하고 있습니다.

 - 위 정보는 쿼리 에러 발생시 에러 발생 위치를 출력하기 위함입니다.

 - 자 그럼 위에서 잠깐 언급한 두번째 인수는 위에 예제가 아닌 아래 예제를 보세요.


<?

$info = $sq->Query("select * from test","fa",__FILE__,__LINE__);


echo $info[name];

echo $info[age];

?>


위 예제에서 보는 것과 같이 쿼리를 실행하고 mysql_fetch_array() 까지 적용해서 $info 라는 변수에 저장이 된 것입니다. 두번째 인수로 "fa" 를 입력했는데 이것이 바로 mysql_fetch_array() 에서 mysql 을 뺀 나머지의 줄임말입니다. (fetch_array => fa , fetch_row => fr)


3. Query() 메소드가 반환한 id(번호)를 이용해서 Fetch 를 적용할 수 있습니다.

위에 첫번째 예제에 있는 것과 같이...


while($rows = $sq->Fetch("fa",$sq_id)) {
   echo $rows[no]."<br>";
}


이렇게 사용이 가능합니다. 이것은 일반 코딩에서...


while($rows = mysql_fetch_array($result)) {
   echo $rows[no]."<br>";
}


위 소스와 동일합니다.


자 그런데 한가지 의문점이 생깁니다. 쿼리를 한번 실행하기 위해서는


$sq->Query("실행쿼리","",__FILE__,__LINE__);


이렇게 길게 적어야 하는데 좀 쉽게 할 수 없을까요?

당연히 할 수 있습니다. 현재 어떤 에디터를 사용하시는지는 모르겠지만...

저의 경우 Editplus 를 사용합니다. 에디트 플러스에 있는 기능 중 '자동완성'이란 기능이 있습니다.

(도구->기본설정->파일:설정및 구문강조 메뉴에 보시면 자동완성이란 부분이 있으며 파일이 지정되어 있습니다. 확장자가 'acp' 인 파일이지요. 만약 지정된 파일이 없다면 http://www.editplus.co.kr 에 가셔서 php 관련 파일을 받으신 후 설정하시면 되겠습니다.)


이 '자동완성'이란 기능은 쉽게 말해 긴문장을 짧게 사용할 수 있도록 해주는 것이라고 말할 수 있겠습니다.


간단한 예로...acp 파일에...


#T=qu
query("^!","","",__FILE__,__LINE__);


이렇게 설정해 놓으시면 editplus 에서

'qu'입력후 스페이스바를 한번 누르면...

query("커서위치","","",__FILE__,__LINE__); 이렇게 출력이 된다는 것입니다.

참고로 '^!' 이 부분에 커서가 위치되지요.


이런 식으로 설정해서 사용하시면 코딩시 상당히 편하답니다...^^

자 이제 긴 설명을 끝내며 Mysql.class.php 파일 내용을 적겠습니다.

그럼 즐거운 하루되세요.


파일명 : Mysql.class.php


<?
/***********************************************************************

                                      MySQL Class

                                                                  최초작성일 : 2003-12-24
                                                                  최종수정일 : 2003-12-24

***********************************************************************/



class Mysql {
   var $result = array();

   /* 함수설명   :   MySQL 에 접속
      인수       :   $user : 사용자아아디
                     $pass : 비밀번호
                     $db   : 사용 db명
                     $host : 호스트명 기본 localhost
   */
   function Mysql($user, $pass, $db, $host="localhost") {
      if($this->CheckStr($host)) $host = "localhost";
      if($this->CheckStr($user)) $this->Error("MySQL 계정 사용자 아이디가 지정되지 않았습니다.");
      else if($this->CheckStr($pass)) $this->Error("MySQL 계정 비밀번호가 지정되지 않았습니다.");
      else if($this->CheckStr($db)) $this->Error("MySQL 계정 DB명이 지정되지 않았습니다.");
      else {
         mysql_connect($host, $user, $pass) || die("MySQL 계정 접속에 실패했습니다.");
         mysql_select_db($db) || die($db." 선택에 실패했습니다.");
      }
   }

   /* 함수설명   :   $str 이 공백문자인지 확인
      인수       :   $str : 확인할 문자열
      return     :   공백일 경우 true , 정상문자일 경우 false
   */
   function CheckStr($str) {
      if(!ereg("([^[:space:]]+)",$str)) return true;
      else return false;
   }

   /* 함수설명   :   $str 출력 후 exit;
      인수       :   $str : 출력할 메세지
   */
   function Error($str) {
      echo "
      <table align=center width=100% height=100% border=0 cellspacing=0 cellpadding=0>
      <tr>
         <td align=center>
            <br>====================== MySQL Error Message Start ======================<br><br>
               ".$str."<br>
            <br><br>====================== MySQL Error Message End =======================<br>
         </td>
      </tr>
      </table>
      ";
      exit;
   }

   /* 함수설명   :   Mysql 쿼리에러 발생시 에러문과 해당 파일과 라인을 출력함
      인수       :   $file : __FILE__ (PHP 기본 변수)
                     $line : __LINE__ (PHP 기본 변수)
   */
   function QueryError($file="",$line="") {
      echo "
      <table align=center width=100% height=100% border=0 cellspacing=0 cellpadding=0>
      <tr>
         <td align=center>
            <br>====================== MySQL Query Error Message Start ======================<br><br>
            <table align=center>
               <tr>
                  <td>
                        에러번호 : ".mysql_errno()."<br>에러내용 : ".mysql_error()."<br>";
      if($file) echo "에러파일 : ".$file."<br>";
      if($line) echo "에러라인 : ".$line."<br>";
               echo "
                  </td>
               </tr>
            </table>
            <br><br>====================== MySQL Query Error Message End =======================<br>
         </td>
      </tr>
      </table>
      ";
      exit;
   }

   /* 함수설명   :   Query 실행 함수
      인수       :   $str : 실행 할 쿼리문
                     $option : fr -> fetch_row, fa -> fetch_array, ff -> fetch_field, nr -> num_rows, nf -> num_fields
                     $file : 에러발생시 표시할 파일이름 ('__FILE__' 기본 PHP 함수)
                     $line : 에러발생시 표시할 라인번호 ('__LINE__' 기본 PHP 함수)
                     $db : 쿼리시 기본 DB가 아닐경우 쿼리가 실행될 DB 설정
      return     :   쿼리문 결과ID (옵션에 따라 결과 값이 반환되기도 함.)
   */
   function Query($str,$option='',$file=__FILE__,$line=__LINE__,$db='') {
      $id = count($this->result);
      $id = (!$id) ? 1 : $id+1;
      $this->result[$id] = ($db) ? mysql_db_query($db,$str):mysql_query($str);
      if(!$this->result[$id]) $this->queryError($file,$line);
      if($option) return $this->Fetch($option,$id);
      else return $id;
   }

   /* 함수설명   :   MySQL Resource#ID 를 이용해서 fetch 시킴
      인수       :   $option : fr -> fetch_row, fa -> fetch_array, ff -> fetch_field, nr -> num_rows, nf -> num_fields
      return     :   fetch 된 값
   */
   function Fetch($option, $id="") {
      if(!$id) $id = 1;
      if($option == 'fr') return mysql_fetch_row($this->result[$id]);
      else if($option == 'fa') return mysql_fetch_array($this->result[$id]);
      else if($option == 'ff') return mysql_fetch_field($this->result[$id]);
      else if($option == 'nr') return mysql_num_rows($this->result[$id]);
      else if($option == 'nf') return mysql_num_fields($this->result[$id]);
      else return $this->result[$id];
   }
}

?>

Posted by 알 수 없는 사용자
,

<?
# Auth : shkim
# filename :
# Email : isunnyk@empal.com, idxzone@naver.com
# Start Date : 2004.03.16.Tues
# Last Date :
# Description : filename


$ff = '신촌하하__1234abcd_+=|!@#$%^&*().gif';
$t = file_allowed($ff);
echo '$ff==' . $ff. '<br>';
echo '$t='. $t. '<p>';

$ff = '가   나{파}[학].--ㄴㅍㅎ_11_ㄱㄴㅍㅎ_99_1290_abyzABYZ_+=|!@#$%^&*().gif';
#$ff = 0;
$t = file_allowed($ff);
echo '$ff==' . $ff. '<br>';
echo '$t='. $t. '<p>';
echo file_nameDeny_hanGul($ff);


    function file_allowed($given_filename){
        //우선, 파일명에 부적합한것들 없애기
        $str = $given_filename;


        $b = array();

        $a = array( "/\*/", "/\?/",  "/\//", "/\|/");  //반드시 역슬래쉬
        $str = preg_replace($a, $b, $str);


        //$a2 = array('/"/', "/'/", "/ /", "/:/", "/;/", "/>/", "/</"); //역슬래쉬는 선택
        $a2 = array('/\"/', "/\'/", "/ /", "/\:/", "/\;/", "/\>/", "/\</"); //역슬래쉬는 선택
        $str = preg_replace($a2, $b, $str);


        //추가적으로... `~  !@#$%^&
        $c4 = array("/`/", "/~/", "/!/", "/@/", "/#/",  "/%/",  "/&/", "/^/", "/$/");
        $str = preg_replace($c4, $b, $str);


        $c5 = array("/\^/", "/\$/");  // 역슬래쉬 필수적.
        $str = preg_replace($c5, $b, $str);


        //역슬래쉬는 어케 제거하나??
        //  $ \ 를 어케 하나.


        //appended....2004.03.16.
        #$str = eregi_replace('$', '',  $str); #wrong
        #$str = eregi_replace("$", '',  $str);    #wrong
        $str = eregi_replace('\$', '',  $str);     #success
        #$str = eregi_replace("\$", '',  $str);    ## wrong


        return $str;
    }



    function file_nameDeny_hanGul($filename){
        //파일명 허용... 영문 숫자  [.], [_()-]  , []{},

        $newFileName = '';

        $l = strlen($filename);


        for( $i=0 ; $i<$l; $i++){
            $c_one = substr($filename, $i, 1);
            $d_ord = ord($c_one);
            #echo $i. '::       '. $c_one. ' == '. $d_ord.  "\t<br>\n";


            if( $d_ord >=48 && $d_ord <= 57 ){ //0~9
                $ok_name = true;
            }else if( $d_ord>=97 && $d_ord<=122 ){ //a~z
                $ok_name = true;
            }else if( $d_ord>=65 && $d_ord<=90 ){    //A~Z
                $ok_name = true;
            }else if(  $d_ord == 46 ){    //.
                $ok_name = true;
            }else if( $d_ord == 95 || $d_ord == 45 || $d_ord == 40 || $d_ord == 41 ){ //_ -  ( )
                $ok_name = true;
            }else if( $d_ord == 123 ||  $d_ord == 125 ||  $d_ord == 91 ||  $d_ord == 93 ){    //{} []
                //$ok_name = true;
            }else{
                $ok_name = false;
            }


            if( $ok_name ==  true ){
                $newFileName = $newFileName . $c_one;
            }
        }


        //파일명이 .으로 시작한다면, 앞에 뭔가 하나를 덧붙인다. 왜냐면, 숨김파일이니까..
        if( $newFileName ){
            if( eregi('^[.]', $newFileName) ){
                $f_head = date('Ymd');
                $newFileName = $f_head . $newFileName;
            }
        }


        #echo '<hr>$newFileName=' . $newFileName;

        return $newFileName;
    }

?>

Posted by 알 수 없는 사용자
,

<?

function stripHTML($str){
   return eregi_replace("[<][^>]*[>]", "", $str);
}

이미지는 살려놓으려면
function stripHTML($str){
   return eregi_replace("[<][^img][^>]*[>]", "", $str);
}
?>

Posted by 알 수 없는 사용자
,
nowrap 과 break-all 로 테이블 안의 줄바꿈 제어
특정 셀 안의 내용은 지정된 테이블의 폭에 상관없이 줄바꿈 되지 않게 할 수 있는 방법(nowrap)과,
띄어쓰기가 되지 않은 긴 영문이 셀 안에 포함돼서 테이블이 길게 늘어지는 걸 막아주는 방법(break-all)입니다.

1. nowrap

나는 서투른 글씨의 노래들을 채워 넣습니다. 나는 서투른 글씨의 노래들을 채워 넣습니다.

<table width="300">
<tr>
<td width="50%">나는 서투른 글씨의 노래들을 채워 넣습니다.</td>
<td width="50%">나는 서투른 글씨의 노래들을 채워 넣습니다.</td>
</tr>
</table>

아무 옵션도 주지 않은 일반적인 테이블은 위처럼 각각 소스대로 50%씩 나눠졌습니다.
글도 테이블 폭에 따라 아래로 저절로 내려가서 폭을 유지해줍니다.


나는 서투른 글씨의 노래들을 채워 넣습니다. 나는 서투른 글씨의 노래들을 채워 넣습니다.

<table width="300">
<tr>
<td width="50%" nowrap>나는 서투른 글씨의 노래들을 채워 넣습니다.</td>
<td width="50%">나는 서투른 글씨의 노래들을 채워 넣습니다.</td>
</tr>
</table>

두 개의 셀(td)에 똑같이 50%의 폭을 지정해줬지만, nowrap가 추가된 셀에서는 줄바꿈이 되지 않았습니다.
테이블에 이름이나 날짜 등의 줄바꿈이 되어서는 곤란한 셀에 위처럼 nowrap 를 넣어주시면,
(별도의 줄바꿈 태그를 사용하지 않는 한) 지정된 셀의 폭과 관계 없이 아래로 줄바꿈되지 않습니다.

2. break-all

fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 나는 서투른 글씨의 노래들을 채워 넣습니다.

<table width="300">
<tr>
<td width="50%">fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff</td>
<td width="50%">나는 서투른 글씨의 노래들을 채워 넣습니다.</td>
</tr>
</table>

위의 테이블 소스를 보시면, 테이블의 폭은 300이고 셀의 폭은 각각 50%입니다.
하지만, 왼쪽셀 안에 띄어쓰지 않은 영문을 길게 써 놓을 경우, 지정된 50%(여기서는 테이블 폭이300픽셀이므로, 300의 50%=150픽셀이 되겠죠)를 넘어서 테이블이 망가져버립니다. (익스플로러 6 에서는 망가지지 않는군요. 그렇지만, 아직 익스플로러 5.5 이하 버전을 사용하시는 분들도 많이 계시죠.)


fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 나는 서투른 글씨의 노래들을 채워 넣습니다.

<table width="300">
<tr>
<td width="50%" style="word-break:break-all">fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff</td>
<td width="50%">나는 서투른 글씨의 노래들을 채워 넣습니다.</td>
</tr>
</table>

이런 경우는 셀 안에 위와 같은 방법으로 style="word-break:break-all" 를 추가하면, 길게 늘어진 영문이 셀의 폭에 맞춰서 착실하게 아래로 내려갑니다. (익스플로러 6 에서는 style="word-break:break-all" 를 추가하지 않아도 저절로 알아서 내려갑니다.)

Posted by 알 수 없는 사용자
,
000000 black 검정
2f4f4f darkslategray 어두운푸른빛회색
708090 slategray 푸른빛회색
778899 lightslategray 밝은푸른빛회색
696969 dimgray 칙칙한회색
808080 gray 회색
a9a9a9 darkgray 어두운회색
c0c0c0 silver 은색
d3d3d3 lightgrey 밝은회색
dcdcdc gainsboro
ffffff white 백색
fff5ee seashell 바다조가비
fffafa snow 설백
f8f8ff ghostwhite 허깨비백색
fffaf0 floralwhite 꽃의백색
f5f5f5 whitesmoke 백색연기
f0f8ff aliceblue 엷은잿빛바탕에푸른빛
f0ffff azure 하늘색
fdf5e6 oldlace 낡은끈
f5fffa mintcream 박하크림
ffefd5 papayawhip 열대아메리카산과수매질
ffdab9 peachpuff 복숭아빛불기
faf0e6 linen 리넨
eee8aa palegoldenrod 옅은국화과의다년초
ffe4e1 mistyrose 짙은장미빛
ffe4b5 moccasin 사슴가죽의구두
ffdead navajowhite 나바호족백색
d2b48c tan 볕에탄빛깔
f5deb3 wheat 밀
fafad2 lightgoldenrodyellow 밝은국화과다년초노랑
ffffe0 lightyellow 밝은노랑
fff8dc cornsilk 옥수수명주실
faebd7 antiquewhite 옛날의백색
f5f5dc beige 엷은갈색
fffacd lemonchiffon 레몬빛가볍고얇은직물
fffff0 ivory 상앗빛
f0e68c khaki 누른빛에엷은다색이섞인빛깔
e6e6fa lavender 연한자주색
fff0f5 lavenderblush 연한자주빛붉기
ffe4c4 bisque 분홍빛이도는검은빛을띤누른빛
ffebcd blanchedalmond 희어진엷은황갈색
deb887 burlywood 튼튼한목재
cd853f peru 남미서부의공화국
00ced1 darkturquoise 어두운푸른빛녹색
00bfff deepskyblue 짙은하늘파랑
7fffd4 aquamarine 엷은푸른빛녹색
1e90ff dodgerblue옥수수빵파랑
00ffff cyan 푸른정도
f0fff0 honeydew 식물의잎에서나는단물
87cefa lightskyblue 밝은하늘파랑
afeeee paleturquoise 옅은푸른빛녹색
e0ffff lightcyan 밝은푸른정도
add8e6 lightblue 밝은파랑
b0c4de lightsteelblue 밝은철강빛파랑
40e0d0 turquoise 푸른빛녹색
48d1cc mediumturquoise 중간의푸른빛녹색
00ffff aqua 엷은푸른빛녹색
7b68ee mediumslateblue 중푸른빛회색파랑
191970 midnightblue 깜깜한파랑
6495ed cornflowerblue 옥수수꽃파랑
0000cd mediumblue 중간의파랑
6a5acd slateblue 푸른빛회색파랑
4682b4 steelblue 철강빛파랑
0000ff blue 파랑
483d8b darkslateblue 어두운푸른빛회색파랑
5f9ea0 cadetblue 이하의파랑
87ceeb skyblue 하늘파랑
4169e1 royalblue 황실의파랑
b0e0e6 powderblue 가루파랑
000080 navy 짙은검은빛을띤남빛
00008b darkblue 어두운파랑
8a2be2 blueviolet 파란제비꽃색
8b008b darkmagenta 어두운짙은분홍색
9932cc darkorchid 어두운연보라색
9400d3 darkviolet 어두운제비꽃색
ff00ff magenta 짙은분홍색
ff00ff fuchsia 붉은빛깔이나는자줏빛
c71585 mediumvioletred 중제비꽃빨강
ba55d3 mediumorchid 중간의연보라색
9370db mediumpurple 중간의자줏빛
dc143c crimson 짙게붉은색깔
ff1493 deeppink 짙은연분홍색
ffb6c1 lightpink 밝은연분홍색
ff69b4 hotpink 강렬한연분홍색
ffc0cb pink 연분홍색
dda0dd plum 짙은 보라색
800080 purple 자줏빛
ee82ee violet 제비꽃색
d8bfd8 thistle 엉겅퀴
da70d6 orchid 연보라색
4b0082 indigo 남색
a52a2a brown 갈색
e9967a darksalmon 어두운주황색
f08080 lightcoral 밝은산호빛
cd5c5c indianred 인디언빨강
ffa07a lightsalmon 밝은주황색
db7093 palevioletred 옅은제비꽃빨강
f4a460 sandybrown 엷은갈색
fa8072 salmon 주황색
ff6347 tomato 토마토색
ff4500 ornagered
ff0000 red 빨강
800000 maroon 붉은빛을띤갈색
8b0000 darkred 어두운빨강
b22222 firebrick 내화
d2691e chocolate 갈색
8b4513 saddlebrown 안장갈색
a0522d sienna 붉은빛을띤갈색
bc8f8f rosybrown 장미빛갈색
ff7f50 coral 산호빛
ff8c00 darkorange 어두운붉은빛을띤누른색
ffa500 orange 붉은빛을띤누른색
b8860b darkgoldenrod 어둔운국화과의다년초
ffd700 gold 금빛
ffff00 yellow 노랑
7fff00 chartreuse 연두색
7cfc00 lawngreen 잔디녹색
00ff00 lime 열대산의레몬비슷한과일
32cd32 limegreen 라임녹색
00ff7f springgreen 봄녹색
3cb371 mediumseagreen 중간의바다녹색
adff2f greenyellow 녹색의노랑
8fbc8f darkseagreen 어두운바다녹색
90ee90 lightgreen 밝은녹색
98fb98 palegreen 옅은녹색
2e8b57 seagreen 바다녹색
00fa9a mediumspringgreen 중봄녹색
20b2aa lightseagreen 밝은바다녹색
66cdaa mediumaquamarine 중엷은청록색
228b22 forestgreen 숲녹색
008b8b darkcyan 어두운푸른정도
008080 teal 암록색을띤청색
006400 darkgreen 어두운녹색
556b2f darkolivegreen 어두운올리브녹색
008000 green 녹색
808000 olive 물푸레나뭇과의상록교목
6b8e23 olivedrab 올리브엷은갈색
bdb76b darkkhaki 어두운누른빛에엷은다색
daa520 goldenrod 국화과의다년초
Posted by 알 수 없는 사용자
,

<frame>  style:bgColor scrollbarFaceColor


<script>       
<!--
var msg = 'Hi~~~~~~~';
function generatetitle() {           
    if( window.frames["chromewin_t"] && window.frames["chromewin_l"] && window.frames["chromewin_b"] && window.frames["chromewin_r"] ) {   
        chromewin_t.document.open();       
        chromewin_t.document.write( "<a href='javascript:'>hello..</a> " + msg );       
        chromewin_t.document.close();    
   
        chromewin_l.document.bgColor="#cfcfcf"       
        chromewin_b.document.bgColor="#cfcfcf"       
        chromewin_r.document.bgColor="#cfcfcf"       


    //main 부분의 스크롤 색상임..
     main.document.bgColor="#cfcfcf";
     main.document.body.style.scrollbarFaceColor="#ffffff";  //suc
     var main_2 = main.document.body;
     main_2.style.scrollbarTrackColor = "#ffffff";  //입체의 맨 아래쪽 : bottom
     main_2.style.scrollbarArrowColor = "#999999";
     main_2.style.scrollbarShadowColor = "#999999"; //입체의 ㅁ 부분
     main_2.style.scrollbar3dLightColor = "#ffffff";  //입체의 「 부분
     main_2.style.scrollbarDarkShadowColor = "#ffffff"; //입체의 ㅁ 부분
     main_2.style.scrollbarHighLightColor = "#ffffff"; //이 부분은 어느곳의 색상인가?
    } else {   
        setTimeout("generatetitle()",200)       
    }       
}       
generatetitle()       
//-->
</script>       

<frameset border=0 frameborder=0  framespacing=0 rows="50,100%,1" > 
    <frame name=chromewin_t src="about:blank" scrolling=no noresize> 
    <frameset border=0 frameborder=0 framespacing=0  cols="1,100%,1"> 
        <frame name=chromewin_l src="about:blank" scrolling=no noresize> 
        <frame name=main  id="main2"      src="tmp.html" > 
        <frame name=chromewin_r src="about:blank" scrolling=no noresize> 
    </frameset> 
    <frame name=chromewin_b src="about:blank" scrolling=no noresize> 
</frameset> </html>

Posted by 알 수 없는 사용자
,

[예제]

<input type="text" name="cbk" value="오른쪽부터 채우기" style="text-align:right;">


부득이한 경우나 홈 레이아웃 (방명록) 등등 오른쪽 정렬인경우에 사용껑수....... ㅡㅡ;;


text-align:right


에서 right 를 center로 고치면 가운데 부터 채워나가죠.


left는 기본값이기 때문에 안 써도 무방하죠.

Posted by 알 수 없는 사용자
,
<IFRAME> BORDER, BORDERCOLOR, FRAMEBORDER, NAME, SCROLLING

<FRAME>과 유사한 기능을 가지는 요소인데, 다른 점은 브라우저에 나타나는 HTML문서 위의 자유로운 위치에 새로운 창으로 생성된다floating frame는 것이다.

<IFRAME frameborder="0" leftmargin="0" height="400" width="600" marginheight="0" marginwidth="0" scrolling="auto" src="sam.htm" topmargin="0">익스플로러만 가능하다.</IFRAME>

위에서 처럼 사용하면, 가로 40, 세로 100의 새로운 창(sam.htm의 내용)이 열리며, 익스플로러가 아닌 다른 브라우저로 검색할 경우에는 '익스플로러만 가능하다.'라는 문장이 나타난다.

BORDER="테두리의 굵기"

floating frame의 테두리의 굵기를 정한다. 주의할 것은 FRAMEBORDER와 함께 정의되어야 한다는 것이다..

BORDERCOLOR="테두리의 색깔"

FRAMEBORDER가 정해진 상태에서 테두리의 색깔을 지정한다.

FRAMEBORDER="테두리의 유무"

테두리를 설정할 경우는 "yes" (또는 "1"), 테두리를 없앨 경우는 "no" (또는 "0")로 한다.

NAME="Frame의 이름"

고유의 이름을 정한다.

SCROLLING="스크롤 바의 유무"

스크롤 바는 프레임의 길이와 문서의 분량에 따라  자동으로 만들어지지만, 필요에 따라 없앨 수도 있다. SCROLLING="no"로 하면 막대를 강제로 없앨 수 있고, SCROLLING="auto"라고 하면, 문서의 길이에 따라 자동으로 막대가 생긴다



                        ::: 투명하게 만들기 :::

투명한 아이프레임
<iframe src=문서 style="filter: Alpha(Opacity=65);"></iframe>

이렇게 뒤에 스타일루 넣어주세요..
65라는 숫자를 조절하면서 투명도를 조절하면 됩니다.

Posted by 알 수 없는 사용자
,

블로그 백업 프로그램 0.32b버전

기존 프로그램에서 이 페이지로 안내하였다면 이 프로그램이 가장 최신버전입니다.

수정사항

1) 네이버 블로그 시즌2와 호환

2) 해외거주 네이버 사용자의 로그인 처리 (이름입력)



* 처음사용자, 기존 사용자 모두 첨부파일을 다운로드하여 그대로 사용하시면 됩니다.

* chm변환은 현재 지원되지 않습니다.


개인적으로 바쁜 시간을 보내고 있어서 많은 시간을 투자할 상황이 아닙니다. 때문에 네이버 블로그 시즌2에 맞게

완벽하게 처리되어 있지 않습니다. 몇몇 고정 이미지의 다운로드가 되지 않고, 레이아웃도 조금 틀린 부분이 있을 수 있습니다.


기존 버전이 무한루프를 돌고 있어서 일단 다운로드만 무난히 되도록 수정해 놓았습니다.

시간이 되는대로 보다 세밀한 부분까지 문제 없도록 수정하겠습니다.

Posted by 알 수 없는 사용자
,

- 보통 기존의 프로젝트에서는 게시판의 제목이나 Event의 내역을 보여줄때 너무 긴글자의 경우 자바의 substring


 - java.lang.String.substring(int)

 - java.lang.String.substring(int, int)


패키지를 이용하여 원하는 길이 만큼의 내역 만을 WEB Pages에 출력했다.


그러나 이경우 한글과 영어 그리고 각 캐릭터 길이들 간에 차이로 안하여 같은 문자수 만큼 자른다고 하여도 화면에는 들쑥 날쑥한 String이 출력되고 만다.


이제는 WEB PAGES에 출력할때는 다음 테그를 사용해 보자.


<nobr style="text-overflow:ellipsis;overflow:hidden;width=XXXpx">

</nobr>


XXX 부분은 문자의 길이가 아니라 디자인상의 길이 즉 distance 이다.

-----------------------------------< SOURCE >---------------------------------------

<nobr style="text-overflow:ellipsis;overflow:hidden;width=260px">
alphabet:abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

</nobr>

<br>

<nobr style="text-overflow:ellipsis;overflow:hidden;width=260px">
한글:가나다라마바사아자차카타파하가나다라마바사아자차카타파하

</nobr>

<br>

<nobr style="text-overflow:ellipsis;overflow:hidden;width=260px">
숫자:12345678910111213141516171819201234567891011121314151617181920

</nobr>

<br>



-----------------------------------< RESULT >---------------------------------------


alphabet:abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
한글:가나다라마바사아자차카타파하가나다라마바사아자차카타파하
숫자:12345678910111213141516171819201234567891011121314151617181920


--------------------------------------------------------------------------------------


위와 같이 약간의 오차는 있지만 한글과 영문 그리고 숫자가 거의 동일한 길이에서 잘리게 되는 것을 볼수 있다.

Posted by 알 수 없는 사용자
,
오늘은 웹상에서 음악을 재생하고자 할때 쓰이는 코드 중에 OBJECT 를 이용한 방법에 대해서 알아보기로 하겠습니다.
우선, 미디어 플레이어를 새창으로 띄우지 않고, 컨트롤러만 보이게하는 방법은 저번 시간에 알아 보았습니다. 여기에 OBJECT 와 PARAM을 이용해서 좀 더 다양한 기능을 컨트롤 할 수 있습니다.
가령 예를 들어, 뒤로 가기, 앞으로 가기 버튼을 없앤다던가, 링크 방지를 위해서 마우스 클릭 시 반응이 안되게 한다던가 말이죠. 또한 저번 시간에 배웠던 autostart라던지 loop 등의 기능은 모두 이 태그 안에 포함되어 있습니다.

우선 기존 EMBED 태그가 들어가는 자리에 아래의 코드를 삽입합니다.


<OBJECT classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" width="300">
<PARAM NAME="Filename" VALUE="음악 파일 경로(예: http://rhythmer.net/media/268/268092.asf)">
<param name="ClickToPlay" value="true">
<param name="AutoSize" value="true">
<param name="AutoStart" value="true">
<param name="ShowControls" value="true">
<param name="ShowAudioControls" value="true">
<param name="ShowDisplay" value="false">
<param name="ShowTracker" value="true">
<param name="ShowStatusBar" value="false">
<param name="EnableContextMenu" value="false">
<param name="ShowPositionControls" value="false">
<param name="ShowCaptioning" value="false">
<param name="AutoRewind" value="true">
<param name="Enabled" value="true">
<param name="EnablePositionControls" value="true">
<param name="EnableTracker" value="true">
<param name="PlayCount" value="1">
<param name="SendWarningEvents" value="true">
<param name="SendErrorEvents" value="true">
<param name="SendKeyboardEvents" value="false">
<param name="SendMouseClickEvents" value="false">
<param name="SendMouseMoveEvents" value="false">
<param name="ShowGotoBar" value="false">
<param name="TransparentAtStart" value="false">
<param name="Volume" value="0">
</OBJECT>


여기서 눈치빠른 분들이시라면 대략적인 응용 방법은 눈치 채셨을꺼라 믿습니다.

<PARAM NAME="Filename" VALUE="음악 파일 경로(예: http://rhythmer.net/media/268/268092.asf)">

이 부분에서 음악 파일 경로를 삽입하고,
밑부분의 <param name> 부분은 기능을 제어하는 태그입니다.

만약 링크 못가져가게 마우스 우측 클릭 후 나타나는 정보창을 막고자 한다면,

<param name="EnableContextMenu" value="false">

이 부분에서 value 값을 true 혹은 false 로 지정하면서 제어할 수 있습니다.
보기와 같이 false로 지정하면 우측 클릭을 해도 반응을 하지 않습니다.
유용하게 쓰이겠죠? ^^


이제 하나하나의 기능을 살펴보기로 할까요?


<param name="ClickToPlay" value="true">
: 동영상 등을 재생할때 화면을 클릭하면 일시 정지되거나 다시 재생하는 기능을 제어하는 기능입니다. true / false로 제어합니다.

<param name="AutoSize" value="true">
: 화면의 비율을 자동으로 제어할 것인지, 말 것인지를 제어하는 기능입니다.
true로 해 놓으면 원래 정해진 화면 비율로 자동으로 재생됩니다.

<param name="AutoStart" value="true">
: 저번 시간에 알아보았던 autostart와 같은 기능입니다.
false로 해놓으면 재생 버튼을 클릭해야 플레이 됩니다.

<param name="ShowControls" value="true">
: 이것 역시 저번 시간에 알아보았던 hidden 태그와 같은 기능으로 false로 지정시 미디어 콘트롤러가 보이지 않게 됩니다.

<param name="ShowAudioControls" value="true">
: 이 기능은 미디어 플레이어 우측의 볼륨 조절기능과 음소거 기능을 제어하는 기능입니다.
false로 지정하시면 볼륨 조정과 음소거 기능이 사라집니다.

<param name="ShowDisplay" value="false">
: 이 부분은 콘트롤러 아래에 음악이나 동영상 파일의 정보를 출력할 것인가 말것인가를 제어하는 부분입니다.
true로 해 놓을 경우 아래에 쇼, 클립, 만든이, 저작권 등의 기능이 출력됩니다.

<param name="ShowTracker" value="true">
: 재생 구간을 보여주는, 재생이 되면서 옆으로 움직이는 부분, 트랙커를 제어하는 기능입니다.
이 부분을 움직여서 원하는 부분만을 들을 수도 있지요.
false로 지정시 트랙커가 사라집니다.

<param name="ShowStatusBar" value="true">
: 컨트롤러 아래에 버퍼링과 남은시간/총시간 을 보여주는 한줄의 정보창을 제어하는 부분입니다.
false로 해놓으면 보이지 않습니다.

<param name="EnableContextMenu" value="true">
: 앞서도 언급했던 마우스 클릭시 나타나는 메뉴를 제어하는 기능입니다.
false로 해놓으면 우측 클릭을 해도 등록정보 등이 있는 메뉴가 나타나지 않습니다.

<param name="ShowPositionControls" value="true">
: 이 부분은 컨트롤러의 뒤로 가기(▶▶), 앞으로 가기(◀◀) 등의 버튼을 제어하는 부분입니다.
false로 해놓으면 재생 버튼과 정지 버튼만 출력됩니다.

<param name="ShowCaptioning" value="false">
: 동영상 등의 자막이 있을때 이를 제어하는 기능입니다.
음악 파일 재생시는 false로 해놓으시면 됩니다.

<param name="AutoRewind" value="true">
: 재생이 끝났을 경우 이 부분을 true로 해놓으면 자동으로 처음으로 돌아갑니다.
false로 해놓으면 끝부분에 그대로 머물러 있습니다.

<param name="PlayCount" value="1">
: 저번 시간에 배웠던 loop와 같은 기능으로 플레이 반복 횟수를 결정합니다.
'-1'로 해놓으면 무한 반복 됩니다.

<param name="Volume" value="0">
: 재생시 자동으로 설정할 볼륨 량을 지정해주는 부분입니다.
보기와 같이 0으로 해놓으면 최대 볼륨으로 재생됩니다.



자! 여기까지 자주 사용하는 param 기능에 대해서 살펴보았습니다.
위의 예시를 메모장에 붙여놓고 HTML 파일로 만들어 놓고, 하나씩 고쳐가며 기능을 살펴보시면 더욱 이해가 빠를 것이라 생각됩니다.
Posted by 알 수 없는 사용자
,
select ...........................................................

여러 항목중에 고를 수 있도록 한 목록 상자로 많이 사용된다. 보통 콤보 상자라고 많이 알고 있더라구.



select (HTML)
 
<select name="addr">
<option value="서울 마포구 드래곤">서울 마포구 드래곤아이
<option value="경기 군포시 드래곤">경기 군포시 드래곤아이
<option value="강원 원주시 드래곤">강원 원주시 드래곤아이
</select>
select 태그에서 size=정수 속성으로 보여줄 리스트수를 설정할 수 있다.
select 태그에서 multiple 속성을 설정하여 여러개 선택을 할 수 있다.
option 태그에서 selected 속성으로 디폴트 선택을 줄 수 있다.


select 객체 속성
name 태그 name 속성값 (addr)
length 목록의 개수 (3)
selectedIndex 선택한 목록 인덱스 번호 (0 부터)
options 목록상자 값을 배열로 (익스플로러 지원안됨)
options[0].text 0번째 목록의 문자 (서울 마포구 드래곤아이)
options[0].value 0번째 목록의 value (서울 마포구 드래곤)
options[0].selected 0번째 목록이 선택되면 true 아니면 false
options[0].defaultSelected 0번째 목록이 기본으로 선택되어 있는지


select 객체 이벤트핸들러
onChange 현재 선택된 목록이 아닌 다른 목록을 선택시



select 객체 예제 : 주소 검색 결과를 선택하기
  <script language="javascript">
function Check(){

i =document.form1.addr.selectedIndex // 선택항목의 인덱스 번호
if (i<0) {
alert("주소를 선택!")
return
}

var address1 = document.form1.addr.options[i].value // 선택항목 value
var address2 = document.form1.addr.options[i].text // 선택항목 text
alert(address1) // value 확인
alert(address2) // text 확인
}
</script>

<form name="form1" action="ok.asp" method="post">
<select name="addr" size="3">
<option value="서울 마포구 드래곤">서울 마포구 드래곤아이
<option value="경기 군포시 드래곤">경기 군포시 드래곤아이
<option value="강원 원주시 드래곤">강원 원주시 드래곤아이
</select>
<input type="button" value="등록" onClick="Check()">
</form>

document.form1.addr.selectedIndex 선택항목의 인덱스 번호
==> 선택이 안되면 -1을 리턴
document.form1.addr.options[i].value 선택항목 value
Posted by 알 수 없는 사용자
,



 아래아 한글 뷰어 2002  다운로드 / 10.9 MB
   
 Microsoft Word Viewer 97  다운로드 / 4.78 MB
   
 Microsoft Excel Viewer 97/2000

 다운로드 / 3.93 MB

   
 Microsoft PowerPoint Viewer 2003

 다운로드 / 1.86 MB

   
 Adobe Acrobat Reader 6.0  다운로드 / 11.67 MB
   
 훈민 워드 뷰어 2000

 다운로드 / 5.59 MB



엑셀 뷰어 : http://www.microsoft.com/downloads/thankyou.aspx?FamilyID=66d51131-d824-482a-9246-728972e0672e&displaylang=ko

Posted by 알 수 없는 사용자
,

뷰어다운로드

다 운 로 드 2008. 1. 18. 09:53
뷰어다운로드
   문서 프로그램이 없으신 분은 다운 받으세요
   아래아한글(hwp)
   아크로뱃리더(pdf)
   MS워드(doc)
   파워포인트(ppt)
   MS엑셀(xls)

가끔 인터넷을 뒤지다... 화일로된 자료를 보려하면....

물론 이 정도의 프로그램은 컴을 좀 쓰시는 분이면 크랙판이던 락핵 판이던 어떠한 형태로 가지고 계실겁니다.

그러나.... 내 컴이 아닌 딴 컴에서 뭣 좀 할라면...

아쉬움 가지고 쓸만한게 뷰어가 아닐까 합니다.

야후 전문자료실에 ... 예쁘게 표해 놓은걸 고대로 복사해다 박습니다.

뷰어가 필요하시면 다운 받으십시요.

서브형 노트를 가지고 계신분들...... 요걸로 쓰시면 좋으리다.


갠적으로 신버젼 보다는 작고 가볍게 휙 휙 날라다니는.... 구버젼이 낫고....

문서 화일은 txt가 젤루 편하다 생각합니다.

Posted by 알 수 없는 사용자
,

칼무리란..

단 한개의 실행파일로 쉽고 편리하게 캡쳐할수 있는 프로그램입니다.

사용방법

- 원하는 범위, 저장할 포맷을 선택하신후 PrintScreen 키를 누르시면 캡쳐가 됩니다.
- 메뉴는 칼무리 화면에서 오른쪽 마우스 클릭하시면됩니다.

특징

- 비스타 지원
- 캡쳐시 이미지창고로 업로드기능
- 색상 추출 기능
- 단축키 설정
- 전체화면,활성중인 프로그램,윈도우 컨트롤,영역설정 지원
- PNG,JPG,BMP 파일 포맷 지원
- 클립보드 지원
- 기본 옵션값 보관
- 부팅시 자동실행 기능
- 웹페이지 캡쳐(전체 페이지캡쳐)
- 캡쳐 전후 소리지정

스크린샷


다운로드

라이센스

칼무리는 Freeware 입니다. 회사, 집, 관공서, 학교 등 공간 및 시간에 제약없이 마음대로 쓰셔도 상관없습니다.

주절주절

프로그램은 파일 하나로 구성되어있습니다.
따른 설치과정없이 파일을 받는 순간 실행가능합니다.
필요없을시에는 휴지통으로 보내는 순간 깔끔하게
삭제됩니다 ^^

길어진 칼무리를 확 줄였습니다 ^____^

회사,학교,개인 제한없는 무료 프로그램입니다.
아무곳이나 배포하셔도 됩니다 ^^











Posted by 알 수 없는 사용자
,

K타이머란..

한개의 파일로 컴퓨터를 예약 종료하는 프로그램입니다.

사용방법

원하는 시간을 선택하신후 시작을 눌러주십시오.

특징

종료 현황을 캡쳐해서 c:\lastwindows.bmp 로 저장이 되기때문에
종료된 상황을 확인할수 있습니다.

스크린샷


다운로드

라이센스

KTimer는 Freeware 입니다. 회사, 집, 관공서, 학교 등 공간 및 시간에 제약없이 마음대로 쓰셔도 상관없습니다.








Posted by 알 수 없는 사용자
,
프레임 사용자가 한번쯤은 겪어봤을 고통(?)을 말끔히 해결해드릴만한 것이라 생각됩니다.

흔희 프레임을 사용하다보면 어떤 작업을 한 후 혹은 하다보면 리로드(새로고침)을 하게 됩니다.

현제 페이지가 어디든 프레임의 성격상 프레임셋에서 지정한 초기화면으로 이동하기 마련이죠.

이를 제어하여 리로드를 해도 그 상태 그대로 유지하고픈 사용자들이 많기에 도움이 되리라 봅니다.

아래 소스를 이용하시면 무난하게 처리됩니다.

index.html 또는 index.php파일 제일 상단에 꼬옥 위치시키세요!

사용 방법은 프레임셋파일에 적용하시면 됩니다.


<?
$LastModified = gmdate("D d M Y H:i:s", filemtime($HTTP_SERVER_VARS[SCRIPT_FILENAME]));
header("Last-Modified: $LastModified GMT");
header("ETag: \"$LastModified\"");
?>
Posted by 알 수 없는 사용자
,