Search

'it/www'에 해당되는 글 39건

  1. 2011/08/04 Javascript로 폭포수 바이러스 효과 구현..
  2. 2011/05/16 TISTORY 에서 SyntaxHighlighter 사용하기. (4)
  3. 2011/03/22 내 인생을 하루로 계산 하면..
  4. 2011/03/18 allow_url_fopen off 일때, proxy 구현 방법. (2)
  5. 2011/02/01 JQuery를 이용한 둥근 테두리 테이블 만들기
  6. 2010/04/09 한글 변환기 ( Chrome Extensions ) (9)
  7. 2008/04/23 prototype을 이용한 Ajax 멀티 request
  8. 2007/11/02 다음 자동 로그인 주소 변경.. (4)
  9. 2007/09/12 한글변환기 (16)
  10. 2007/07/04 GoogleGear Sample source
  11. 2007/02/23 티스토리 스킨
  12. 2007/02/13 간단한 Ajax Sample 코드 (2)
  13. 2007/01/09 JSP 만으로 오라클 접속
  14. 2007/01/08 웹 개발에 참고할 만한 곳 (1)
  15. 2006/06/20 xml을 html로 출력하기
  16. 2006/06/03 테터툴즈 로그인
  17. 2006/05/23 자스크립트로 마우스 위치 얻기(IE, FF) (4)
  18. 2006/05/22 테터툴즈에서 내 도메인을 리퍼러에 나오지 않게 하기
  19. 2006/05/19 이미지 링크 방지된것 뚫기
  20. 2006/04/18 proxy 서버를 이용한 웹 서핑
  21. 2005/06/21 UTF-8 인코딩 방식으로 다국어 페이지 만들기
  22. 2005/06/21 자바스크립트용 email 주소 검사 함수
  23. 2004/10/14 mssql -> mysql
  24. 2004/01/09 메일 수신 확인에서.. (1)
  25. 2003/11/05 asp 에서 round.. (5)
  26. 2003/11/04 프린트..
  27. 2003/10/25 카테고리 다중지원 설계 (2)
  28. 2003/10/09 이전..다음 글.. (2)
  29. 2003/10/07 [질문] 사이즈별, 칼라별 재고가 다른경우.. (2)
  30. 2003/09/27 사이트 변경시.. (5)
얼마전 자바스크립트로 괴혼을 구현한 것을 보았다.

신기 하다 싶어서, 폭포수 바이러스 효과를 구현해 보았다.
스크립트를 실행하면, html 본문 내용을 Char 별로 파싱해서 떨어트린다.

발로짜서 인지, 속도가 엄청 느리다.
본문 내용이 많아지면, 브라우져가 버거워 하기까지 한다.
시간나면, 천천히 개선해 봐야겠다.

http://host.newtype.pe.kr/fall/fall.html

 Chrome 에서 테스트 해봤다.
 

TISTORY 에서 SyntaxHighlighter 사용하기.

it/www 2011/05/16 15:12 Posted by newtype
블로그 특성상 소스 코드를 자주 올리게 되는데, 보기 좋게 올리기 위해 
SyntaxHighlighter 를 사용하기로 했다.

1. SyntaxHighlighter 다운 받기.
    http://alexgorbatchev.com/SyntaxHighlighter/ 에서 다운 받는다.
    포스팅 당시 최신 버전은 3.0.83 이었다.
    다운로드 받아 압축을 풀면 아래와 같이 있는데, 
    필요한 파일은 styles, scripts 디렉토리에 있는 것들이다.


2. 필요한 파일을 UPLOAD.
   TISTORY 관리자 페이지에 로긴해서, [ 스킨 ] / [ HTML/CSS편집 ] / [ 파일 업로드 ] 화면에서
   필요한 파일을 모두 올린다. 
   필요한 파일은 압축푼 파일 중에 styles, scripts 디렉토리 밑에 있는 모든 파일이다.


   올려진 파일을들 보면, images 디렉토리 밑으로 올라간 것을 알 수 있다.

3. TISTORY 스킨 파일 편집.
   [ 스킨 ] / [ HTML/CSS편집 ] / [ HTML/CSS 편집 ] 화면에서 skin.html 파일에 내용을 편집한다.
   


    밑줄에 아래의 내용을 추가한다.
























  
   위 내용 처럼 압축을 풀었을때 경로가 아닌, 파일이 올라간 images로 경로를 바꾸어야 한다.

   두번째 "shThemeEmacs.css" 파일은 보여줄 테마를 지정한 것이다.
   테마 css 파일을 이것저것 지정해보고 마음에 드는 것으로 결정하면 된다.
   (사실 맘에 쏙 드는 것이 없었는데. Emacs 테마가 가장 나은 것 같다.)

   동일한 방법으로 skin.html 파일 가장 하단 </body> 위쪽에 아래와 내용을 넣어 준다.



     여기서 필요한 코드는 맨 밑줄 함수 실행부 이고, 그외 설정 부분이다.
     stripBrs를 true로 설정하면, TISTORY 에서 자동으로 <br> 태그를 붙이는 걸 무시 할 수 있다.

   4. TISTORY에서 글쓰기.
     글을 쓸때에는 소스 코드가 들어갈때는 html 모드에서 글을 써야한다.


   위와 같이 html 체크박스를 체크하면, html 모드에서 글을 입력할 수 있다.
   소스 코드를 넣을때 아래와 같은 문법으로 넣는다.

<pre class="brush: sql">
CREATE TABLE CVS_COMMIT
(
   SEQ              NUMBER(10) NOT NULL,
   USERID           VARCHAR2(20) NOT NULL,
   REG_DATE         DATE DEFAULT SYSDATE,
   PROJECT          VARCHAR2(50) NOT NULL,
   FILENAME         VARCHAR2(500) NOT NULL
);
</pre>
    
  소스의 내용은 <pre></pre> 태그 사이에 넣어주고, class의 brush 속성에 원하는 문법을 지정한다.
  지정 가능한 문법은 아래와 같다. 
ActionScript3 as3, actionscript3 shBrushAS3.js
Bash/shell bash, shell shBrushBash.js
ColdFusion cf, coldfusion shBrushColdFusion.js
C# c-sharp, csharp shBrushCSharp.js
C++ cpp, c shBrushCpp.js
CSS css shBrushCss.js
Delphi delphi, pas, pascal shBrushDelphi.js
Diff diff, patch shBrushDiff.js
Erlang erl, erlang shBrushErlang.js
Groovy groovy shBrushGroovy.js
JavaScript js, jscript, javascript shBrushJScript.js
Java java shBrushJava.js
JavaFX jfx, javafx shBrushJavaFX.js
Perl perl, pl shBrushPerl.js
PHP php shBrushPhp.js
Plain Text plain, text shBrushPlain.js
PowerShell ps, powershell shBrushPowerShell.js
Python py, python shBrushPython.js
Ruby rails, ror, ruby shBrushRuby.js
Scala scala shBrushScala.js
SQL sql shBrushSql.js
Visual Basic vb, vbnet shBrushVb.js
XML xml, xhtml, xslt, html, xhtml shBrushXml.js

첫번째 컬럼이 문법, 두번째 컬럼이 brush에 지정할 속성 상수, 
세번째 컬럼이 필요한 Javascript 파일로써 TISTORY에 UPLOAD되어 있어야 한다.

문법 뿐 아니라 추가 속성을 지정할 수 있는데, 아래와 같이 ";" (세미콜론) 로 구분한다.

<pre class="brush: js; ruler: true; first-line: 10; highlight: [2, 4, 6]">...</pre>

지정 할 수 있는 속성 목록은 아래와 같다.
속성
기본값
설명
auto-links true URL을 클릭하면 페이지 이동이 가능하도록
하이퍼링크를 자동으로 걸어준다.
class-name '' 그외 사용자 지정 class를 추가하고 싶을때 사용한다.
collapse false "펼치기" 기능을 사용하고 싶을 때
(티스토리의 "더보기" 기능이 더 나은것 같다)
first-line 1 시작 Line Number를 지정한다.
gutter true Line Number를 켜고 끌수 있다.
highlight null 강조할 라인을 배열로 넘긴다.
(예 : "brush: plain; highlight: [1, 3]")
html-script false php, asp, jsp 등과 같이 소스 코드안에 html이 포함되는 경우
html도 하이라이팅하고 싶으면 사용한다
smart-tabs true 스마트탭 기능의 활성화 여부를 지정한다
(무슨 기능인지 잘 모르겠다)
tab-size 4 TAB 크기를 지정한다.
toolbar true 툴바를 켜거나 끌 수 있다.

이제 TISTORY에서 깔끔한 코드를 볼 수 있다.

<주의 사항>
-. SyntaxHighlighter 3.0.83 버전에 버그가 하나 있다.
   일부 코드에 대해 Line Number가 어긋나 보이는 경우가 있다.
   한 Line 에 긴 코드가 포함된 경우 wrapped(자동줄바꿈) 처리를 하면서 잘못 처리하는 것 같다.
   소스 코드를 무조건 올리지 말고, 적당히 줄바꿈 처리를 해주고 올리는 것이 좋다. 
-. html모드에서 <pre></pre> 태그를 사용할 경우 소스 코드에 포함된 "<", ">"의 파싱을 잘못하는
   경우가 발생하는 것 같다. 
   소스 코드를 올리기 전에 "<"를 "&lt;"로, ">"를 "&gt;"로 변환 해서 올리는 것이 좋다. 





내 인생을 하루로 계산 하면..

it/www 2011/03/22 09:29 Posted by newtype
김난도 교수의 "아프니까 청춘이다" 라는 책에 보면 "인생 시계"라는 말이 나온다.
평균 수명 80살을 하루로 계산해서,  1년을 18분 쯤으로 계산 한 것인데..

내 인생 나이는 얼마나 될까?
내 인생은 오전 10시 43분 이란다.

인생 시간을 계산 해보자.

http://host.newtype.pe.kr/1day/ 

  

소스 보기


jQuery를 이용했고,
테스트를 해보니, 약간의 오차가 있는 듯 하다.
 

allow_url_fopen off 일때, proxy 구현 방법.

it/www 2011/03/18 14:33 Posted by newtype
jQuery에 관심이 생기면서, javascript 만으로 RSS 리더기를 만들어 보기로 했다.
jQuery가 워낙에 많은 Plugin들을 지원하고 있어서, rss Parser도 금방 찾을 수 있었다.
jFeed 라는 것인데, 소스도 간단하고.. 복잡한 기능이 필요없는 용도로는 적당했다.

그런데, 예상치도 못한 문제가 있었다.
Ajax에서 다른 도메인의 페이지를 읽기 위해 proxy를 구현 해야 하는데..
셈플 소스에 포함된 것이 정상적으로 동작하지 않는 것이다.

셈플 소스에 포함된 코드는 아래와 같다.
<?php
header('Content-type: application/xml');
$handle = fopen($_REQUEST['url'], "r");

if ($handle) {
    while (!feof($handle)) {
        $buffer = fgets($handle, 4096);
        echo $buffer;
    }
    fclose($handle);
}
?>

원인은 호스팅을 받고 있는 cafe24 에서는 보안상의 이유로 php.ini 파일에서 fopen 함수의 사용을 막아 놓은 것이다.



업체에서 제안하는 방법은, fsockopen 이용하는 방법으로 셈플 소스는 아래와 같다.
function get_url_fsockopen( $url ) {
	$URL_parsed = parse_url($url);

	$host = $URL_parsed["host"];
	$port = $URL_parsed["port"];
	if ($port==0)
		$port = 80;

	$path = $URL_parsed["path"];
	if ($URL_parsed["query"] != "")
		$path .= "?".$URL_parsed["query"];

	$out = "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n";

	$fp = fsockopen($host, $port, $errno, $errstr, 30);

	if (!$fp) {
		echo "$errstr ($errno)<br>\n";
	} else {
		fputs($fp, $out);
		$body = false;
		while (!feof($fp)) {
			$s = fgets($fp, 128);
			if ( $body )
			$in .= $s;
			if ( $s == "\r\n" )
			$body = true;
		}

		fclose($fp);
		echo $in;
	}
}

하지만,  이방법도.. connection, write는 성공하지만, read 부분에서 데이터를 가져오질 못했다.
업체 문의 결과, www 폴더안에 ".htaccess" 파일을 만들고 파일 내용으로, 
php_flag allow_url_fopen 1

를 넣어 주면 된다고 한다. 단, 취약점을 통한 보안적 위험에 대한 책임을 보장할 수 없단다.
왠지 찝찝하다. 

좀 더 뒤져보니, curl 이란 php 라이브러리가 있다. 이넘이 물건이다. 좀 잡다한 기능들이 많아 무거워 보이긴 한데.. 일단 동작은 잘 된다.

curl 라이브러리를 이용한 소스는 아래와 같다.
<?php

function get_url_content($url) {

	$ch = curl_init();

	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
	curl_setopt($ch, CURLOPT_HEADER, true);
   
	$html = curl_exec($ch);  
	$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);  
  
  	$inc=1;
	while ($http_code == 301 || $http_code == 302)
	{
		$header = curl_getinfo($ch, CURLINFO_HEADER_OUT);
		curl_close($ch);

		list($header, $html) = explode("\n\n", $html, 2);
		preg_match('/Location: (.*?)\n/', $header, $matches);
		$url = $matches[1];
		if (strlen(trim($url)) <= 0 )
			return "[".$http_code."] forwarding error, not found url.<br/>";

		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL,$url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$html = curl_exec($ch);
		$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

		if ( $inc++ > 5 ) {
			curl_close($ch);
			return "to many forwarding...<br/>";
		}
	}

	curl_close($ch);

	return substr($html, strpos($html, '<?xml'));;
}

echo get_url_content( $_REQUEST['url'] );

?>

소스의 기능은 아래와 같다.
   
    1. HTTP CODE가 301, 302의 Forwarding 관련된 것이면 해당 URL로 이동.
        : CURLOPT_HEADER 옵션, while문 안의 해더 파싱 부분.
    2. Forwaring이 5번 이상이면, 에러 처리.
        : while문 안의 if문 
    3. HTTP 해더 부분 제거.
        : return 전의 substr 구문. rss 리더를 위한 proxy 이므로 필요 하다.

마지막 소스를 이용해 proxy 문제를 해결 했다.
웹눈 님의 Round Table 소스를 JQuery를 이용하는 소스로 수정해봤습니다.

JQuery를 요 몇일 보고 있는데, 재미있네요..
이제 막 시작한 단계로 더 깔끔하게 다듬을 수 있을 것도 같은데..
아직은 내공이 부족하네요.

좋은 방법 있으면 공유 해주시면 고맙겠습니다.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
function roundTable(objID) {
	var $obj = $("table#" + objID);
	var s, r;
	var y, x, MAX;
	var w, h;

	r = parseInt($obj.attr('radius'));
	if (r == null || r < 1) r = 1;
	else if (r > 6) r = 6;

	MAX = r * 2 + 1;

	$obj.before("<TABLE id='tmpRoundTbl'></TABLE>")
	$("table#tmpRoundTbl")
		.attr("cellSpacing", 0)
		.attr("cellPadding", 0)
		.append("<TBODY></TBODY>");

	for (y=0; y < MAX; y++) {
		$("table#tmpRoundTbl TBODY").append("<TR></TR");
		s = Math.abs(y - parseInt(r));
		for (x=0; x < MAX; x++) {
			
			$("table#tmpRoundTbl TBODY TR:eq("+y+")")
				.append("<TD></TD>");

			w = '1px'; h = '1px';
			if (x == 0 || x == MAX - 1) h = null;
			else if (y == 0 || y == MAX - 1) w = null;
			else if (r > 2) {
				if (Math.abs(x - r) == 1) w = '2px';
				if (Math.abs(y - r) == 1) h = '2px';
			}

			if (w != null) 
				$("table#tmpRoundTbl TBODY TR:eq("+y+") TD:eq("+x+")")
					.css("width", w);
			if (h != null) 
				$("table#tmpRoundTbl TBODY TR:eq("+y+") TD:eq("+x+")")
					.css("height", h);

			if (s == x || s == MAX - x - 1) 
				$("table#tmpRoundTbl TBODY TR:eq("+y+") TD:eq("+x+")")
					.css("backgroundColor", $obj.attr('rborder') );
			else if (x > s && s < MAX - x - 1) 
				$("table#tmpRoundTbl TBODY TR:eq("+y+") TD:eq("+x+")")
					.css("backgroundColor", $obj.attr('rbgcolor') );
		}
	}

	$("table#tmpRoundTbl TBODY TR:eq("+s+") TD:eq("+r+")").append( $obj );
}
</script>


<table id="ta" width="300" height="100" border="0" 
    radius="3" rborder="#999999" rbgcolor="#F8F8F8">
<tbody><tr>
<td valign="top">테스트입니다</td>
</tr>
</tbody></table>
<span>
<script>roundTable("ta");</script>
</span>



[ 참고 ] 

한글 변환기 ( Chrome Extensions )

it/www 2010/04/09 16:34 Posted by newtype
크롬 확장 프로그램을 만들었습니다.
예전에 만들어준 한글 변환기 스크립트를 이용하여 만들었습니다.

한글 입력기가 설치되지 않은 환경에서 한글 입력이 가능 합니다.
1시간 미만으로 뚝딱 만든 건데, 대부분 시간이 아이콘 만드는 시간이었네요. ^^;

* History 
2010-04-23  한글 키보드 레이아웃 이미지 추가 ( 옵션에서 출력 여부 결정 )



prototype을 이용한 Ajax 멀티 request

it/www 2008/04/23 05:53 Posted by newtype
prototype을 이용해 비동기 방식의 요청을 여러건 해서 순서 상관없이 응답을 받아 처리하는 부분을 구현해 봤다. 

원래 목적은 fund 정보를 웹에서 관리하기 위해 만들려 한것인데...
미완성 프로젝트다..
엑셀에선 간단하던 수식들을 웹으로 옮기려니 만만치 않더라 ㅡㅡ;

소스에는 포함된 내용들은 아래와 같다.
   - Prototype Javascript Lib 사용
   - Javascript Calendar Javascript Lib 사용(한국어 처리 부분 소스 약간 수정)
   - 멀티 Ajax 요청 처리
   - 요청 처리중일때 모래 시계 보여주기
   - Msg 출력을 동적으로
   - select Object에 요청 받은 내용 동적으로 append


common.js 보기



list.html 보기

url
http://www.panghosting.net/~newtype/fund/list.html

다음 자동 로그인 주소 변경..

it/www 2007/11/02 23:59 Posted by newtype
다음 자동 로그인 주소가 바뀌었다.
기존 자동 로그인 주소를 입력하면,
아이디, 비번 뿐 아니라..  그림 문자까지 넣으란다  ㅡㅡ;

바뀐 다음 자동 로그인 주소는 아래와 같다.
https://logins.daum.net/Mail-bin/login.cgi?id=아이디&pw=비번&enpw=비번

참고로 몇가지더..

네이버 자동 로그인 주소
https://nid.naver.com/nidlogin.login?id=네이버 아이디&password=비밀번호&url=http://naver.com


투데이즈피피시 이너서클 자동 로그인 주소
http://www.todaysppc.com/mbzine/bbs/login_check.php?s_url=/index.php&user_id=아이디&password=비번&group_no=1



한글변환기

it/www 2007/09/12 11:55 Posted by newtype
영어 상태로 입력된 문장을 한글로 변환 해주는 Javascript 함수를 만들어 봤다.

나중에 지를(ㅡㅡ;) 아이팟 터치에서 한글 입력 기능이 없단다.
떠도는 얘기를 들어보니 별도 SDK가 없이 javascript로 개발을 한다고 해서
자료를 찾아보지도 않고 무작정 코딩부터 했다. 흐흐..

테스트는
http://newtype.myi.cc/tools/hangle.html
http://panghosting.net/~newtype/tools/hangle.html
http://host.newtype.pe.kr/tools/hangle.html
여기서 해보면 된다.

테스트는 IE6, IE7, FF2 에서 해보았다.

스크립트 용량을 줄여보겠다고 바둥바둥했는데..
그래도 2KB (1,971 바이트) 란다.
발로 코딩하니 한계가 있는 듯...

부디 유용하게 쓸 수 있기를..
어째뜬 아이팟 터치 기대 만땅이다.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-

2007.12.26
호스팅이 중단되어 페이지 연결이 되지 않습니다.
빠른 시일내에 복구 하겠습니다.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-

2007.12.30
복구 하였습니다.
URL이 좀 복잡해 졌네요.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-

2008.03.10
Native SDK가 발표되었네요.


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-

2010.12.27
URL을 다시 복구 하였습니다.

GoogleGear Sample source

it/www 2007/07/04 03:42 Posted by newtype

얼마전 구글에서 GoogleGear라는 것을 배포 했다.
처음엔 어떤것인지도 몰랐는데..
최근에 알게된 사실로는 오프라인에서도 웹서핑을 도와준다고 한다.

자세히 내용을 살표보니 SQLite를 이용해 웹에 있는 자료들을 미리 읽어들어 저장해 두고,
오프라인 일 때도 써먹는 다는 내용이였다.

사실, IE의 "오프라인으로 작업"등 비슷한 기능은 이미 있었다.
하지만, 역시 구글이다.
개발자들이 편하게 접근할 수 있도록 GoogleGear API를 열어두었다.

그럼, 코드로 만나보자.

1. GoogleGear를 사용하기 위해서는 먼저 설치가 되어있어야 한다.
   처음 발표되었을때, 뭔지도 모르고 미리 설치는 해두었다 ^^;

2. gears_init.js 파일을 html안에 포함 해야한다.
<script src="gears_init.js"></script>
  gears_init.js 파일을 미리 받아 놓고 위 코드를 html에 포함 해도 되고,
  gears_init.js 파일의 내용 전부를 html 파일에 포함 시켜도 된다.

3. 설치 여부 체크
  html 파일이 열리면, GoogleGear가 설치되어 있는지 체크 하는 부분이 있어야 한다.
  if ( !window.google || !google.gears ) 
  {
      alert('GoogleGear를 먼저 설치하세요.');
      return;
  }

4. DB파일을 생성한다.
SQLite는 파일 하나로 Database를 로칼 컴퓨터에 생성 한다.
FireFox에서는 C:\Documents and Settings\<사용자명>\Application Data\Mozilla\Firefox\Profiles\<임시이름>.default\urlclassifier2.sqlite 라는 파일이 생성되었다.
  try {
    db = google.gears.factory.create('beta.database', '1.0');
  } catch (ex) {
    alert('Database를 생성할 수 없습니다: ' + ex.message);
  }

5. 테이블을 만든다.
  if (db) {
    db.open('address');
    db.execute('create table if not exists ntAddress' +
               ' (name varchar(255), phone varchar(255), email varchar(255) , Timestamp int)');

    display();
  }
  소스를 보면 알겠지만, 자바스크립트에서 쿼리를 직접 날린다. @.@

6. 쿼리를 날린다.
   이렇게 쉽게 사용이 가능하다.
   try {
    db.execute('insert into ntAddress values (?, ?, ?, ?)', [oName.value, oPhone.value, oMail.value, currTime]);
  } catch (e) {
    alert(e.message);
    throw new Error(e.message);
alert (e.message);
   }

   이제까지 Google API가 그러했듯이 엄청 간단하다.
   우리가 잘 아는 쿼리를 직접 날리고,
   무거운 작업의 경우 WorkPool을 이용해 백그라운드로 돌릴 수도 있다.
   LocalServer를 이용해 서버 정보를 간단하게 캐쉬로 만들어 저장하는 할 수도 있는 듯하다.
   Google에서 제공하는 샘플 소스 및 툴 을 받아보자

   손가락이 근질근질 하지 않은가. 흐흐흐흐흐...
 

address.html 전체 소스 보기



덧글,
샘플 코딩하면서 삽질을 했다.
innerHTML 스크립트가 IE7에서 먹지 않는 것이다.
한참 삽질을 하다가 IE7 관련 자료에서 이런 문구를 발견 했다.
IE does not support when setting a div’s innerHTML property
div 테그를 span으로 바꾸고 간단히 해결했다.
신버전은 구버전과 호환 되게 해달라고!!!  버럭



티스토리 스킨

it/www 2007/02/23 09:50 Posted by newtype

제 블로그에서 사용하는 티스토리 스킨을 올려둡니다.
완전히 개인적인 용도입니다.

제 계정의 구글애드센스, 구근애널리틱스가 포함된 스킨 입니다.





TAG Skin

간단한 Ajax Sample 코드

it/www 2007/02/13 14:46 Posted by newtype
먼저 파일 구조를 설명하면..
전체 파일 구성은 아래와 같습니다.

    - ./index.php : XMLHttpRequest를 이용 정보를 요청
    - ./list.php : ./sheet/ 서브 디렉토리에서 skin파일과 db파일을 읽어서 보여줌
    - ./sheet/*.html : skin 파일
    - ./sheet/*.txt: csv형식의 db파일

중요 부분을 설명하겠습니다.

먼저 index.php파일을 보면..

    if (window.XMLHttpRequest)
    {
        HTTPRequestObject = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
        HTTPRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
    }

여기서 Internet Explorer냐 FireFox냐를 구분해 HTTPRequestObject 인스턴스를 생성합니다.

    function doSubmit(sheet)
    {
        var url = "http://" + location.host + "/list/list.php?sheet=" + encodeURIComponent(sheet);
       
        HTTPRequestObject.open("GET", url, true);
        HTTPRequestObject.onreadystatechange = HTTPRequest;
        HTTPRequestObject.send(null);
        document.getElementById("result").innerHTML = "Requesting data ...";
    }   

submit 이벤트 발생시 HTTPRequestObject를 이용해 서버에 요청 합니다.
GET 방식이기 때문에 일부 브라우저 설정에 따라 인코딩 형식이 바뀌기 때문에
encodeURIComponent() 함수를 사용해 UTF-8형식으로 강제 변환 했습니다.

그리고, 응답이 들어오면 수행할 콜백 함수를 HTTPRequest로 지정했습니다.

    function HTTPRequest()
    {
        if (HTTPRequestObject.readyState==4)
        {
            if (HTTPRequestObject.responseText.indexOf('invalid') == -1)
            {    
                document.getElementById("result").innerHTML = HTTPRequestObject.responseText;
            }
            else
            {
                document.getElementById("result").innerHTML = "Error requesting data.";
            }
        }
    }

응답이 들어오면 HTTPRequest() 함수에서 내용을 뿌려 줍니다.

list.php는 별 내용이 없습니다.
인코딩 형식을 변환 하기 위해

       mb_convert_encoding()

함수를 사용했습니다.


테스트 페이지

전체 소스 다운은 아래를 클릭 하세요.


JSP 만으로 오라클 접속

it/www 2007/01/09 09:04 Posted by newtype

서블릿을 사용하지 않고 JSP만 이용
commit, rollback 지원 하지 않고 단순 조회용

접속 정보와 쿼리를 날릴 Index.jsp


쿼리 결과를 조회할 result.jsp


웹 개발에 참고할 만한 곳

it/www 2007/01/08 14:24 Posted by newtype

웹서핑 하다가 우연히 찾은 곳
Ajax 등이 사용하기 간편하게 클래스로 구현되어 있다.
그 외에도 한 번 둘러보면 괜찮을 듯한 자료들이 있는 듯.

NHN UI Develope Guide

http://html.nhndesign.com/
TAG Ajax, nhn, Web

xml을 html로 출력하기

it/www 2006/06/20 19:48 Posted by newtype
xml을 html로 출력하려면

[CODE type=html]
<br /> xml 문서 내용<br />
[/HTML][/CODE]

이렇게 해주면 되네요.
TAG XML

테터툴즈 로그인

it/www 2006/06/03 00:19 Posted by newtype
갑자기 테터툴즈 로그인이 안되더군요.

나중에 알고보니 tt_Sessions테이블이 깨져서 로그인이 되지 않았던 것이였습니다.

repair table tt_Sessions

sql 콘솔에서 이렇게 치면 된다는데...

제가 받고 있는 웹호스팅은 텔넷이나, ssh를 지원해 주지 않습니다.
(무료 호스팅의 비애)

결국 tt_sessions테이블을 drop 시키고,

setup.php안의 내용에 있는..

CREATE TABLE tt_Sessions (
  id varchar(32) NOT NULL default '',
  address varchar(15) NOT NULL default '',
  userid int(11) default NULL,
  preexistence int(11) default NULL,
  data text default NULL,
  server varchar(64) NOT NULL default '',
  request varchar(255) NOT NULL default '',
  referer varchar(255) NOT NULL default '',
  timer float NOT NULL default '0',
  created int(11) NOT NULL default '0',
  updated int(11) NOT NULL default '0',
  PRIMARY KEY  (id,address)
)


내용을 보고 직접 테이블을 생성하니 로그인이 되는군요.

자스크립트로 마우스 위치 얻기(IE, FF)

it/www 2006/05/23 14:32 Posted by newtype
자바스크립트를 사용해 마우스 좌표를 얻고자 한다. 마우스 좌표를 얻기 위해서는 이벤트 객체를 이용해야 하는데, Internet Explorer(이하 IE)와 Firefox(이하 FF)가 이벤트 객체를 이용하는 방법이 서로 틀리다. IE의 경우를 먼저 살펴 보자.

[CODE type=javascript]
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--

   function doMove()
   {
       var divLayer = document.getElementById('result');
       var x, y;

       x = event.x;
       y = event.y;

       divLayer.innerHTML = "| " + x + " X " + y + " |";
   }

//-->
</SCRIPT>
<DIV id=captureObj onmouseover="this.setCapture();" onmouseout="this.releaseCapture();" onmousemove="doMove();">Mouse Pointer Over</DIV>
<DIV id=result style=color:red></DIV>
</DIV>
</BODY>
[/CODE]

이것이 IE에서 마우스 위치를 얻는 전체 소스 이다. 먼저, 움직임을 감지할 영역 captureObj를 잡는다. 이 영역에 마우스가 올라가면 captureObj의 setCapture() 메소드를 이용해 마우스 위치 추적을 시작한다.  이 영역에서 마우스가 빠져나가면 releaseCapture() 메소드를 이용해 마우스 위치 추적을 종료 한다. 마우스의 좌표는 event객체의 x, y를 이용해 얻을 수 있다. FF의 경우를 살펴 보자

[CODE type=javascript]
<BODY onload="initMouseCapture();">
<SCRIPT LANGUAGE="JavaScript">
<!--

   var eventValue;

   function doMove()
   {
       var divLayer = document.getElementById('result');
       var x, y;

       x = eventValue.pageX;
       y = eventValue.pageY;

       divLayer.innerHTML = "| " + x + " X " + y + " |";
   }

   function SaveMouseEvent(e)
   {
      eventValue = e;
   }

   function initMouseCapture()
   {
           document.addEventListener('mousemove',SaveMouseEvent,false);
   }   

//-->
</SCRIPT>
<DIV id=captureObj onmousemove="doMove();">Mouse Pointer Over</DIV>
<DIV id=result style=color:red></DIV>
</DIV>
</BODY>
[/CODE]

이것이 FF에서 마우스 위치를 얻기위한 전체 소스이다. FF에서는 일단 이벤트로 등록을 해야한다. body의 onload에서 SaveMouseEvent함수를 mousemove이벤트의 이벤트 리스너로 등록을 한다. 이벤트 리스너로 등록된 SaveMouseEvent함수는 파라미터로 이벤트 객체를 받고 전역변수에 발생한 이벤트 객체를 저장해 둔다. captureObj 위에서 마우스가 움직이면, 전역변수 eventValue의 pageX, pageY를 참조해 마우스 좌표를 얻는다. 이렇게 각 브라우져 마다 마우스 위치를 얻는 방법은 알았다. 그럼 브라우져 구분은 어떻게 할까?

[CODE type=javascript]
    function checkIE()
   {
       if (navigator.appName == "Microsoft Internet Explorer")
           isIE = true;
       else
           isIE = false;
   }
[CODE]

부라우져를 구분하는 함수를 하나 만들었다. navigator객체의 appName 값을 확인해 보면 알 수있다. 이제까지의 방법을 이용해 IE와 FF에서 모두 동작하는 스크립트를 작성해 보자

[CODE type=javascript]
<BODY onload="initMouseCapture();">
<SCRIPT LANGUAGE="JavaScript">
<!--

   var isIE;
   var eventValue;

   function checkIE()
   {
       if (navigator.appName == "Microsoft Internet Explorer")
           isIE = true;
       else
           isIE = false;
   }

   function startMouseCapture(objCapture)
   {
       if ( isIE == false )
           return;

       objCapture.setCapture();
   }

   function endMouseCapture(objCapture)
   {
       if ( isIE == false )
           return;

       objCapture.releaseCapture();
   }

   function doMove()
   {
       var divLayer = document.getElementById('result');
       var x, y;

       if ( isIE == false )
       {
           x = eventValue.pageX;
           y = eventValue.pageY;
       }
       else
       {
           x = event.x;
           y = event.y;
       }

       divLayer.innerHTML = "| " + x + " X " + y + " |";
   }

   function SaveMouseEvent(e)
   {
      eventValue = e;
   }

   function initMouseCapture()
   {
       checkIE();

       if (isIE == false)
       {
           document.addEventListener('mousemove',SaveMouseEvent,false);
       }
   }   

 
//-->
</SCRIPT>
<DIV id=captureObj onmouseover="startMouseCapture(this);" onmouseout="endMouseCapture(this);" onmousemove="doMove();">
<TABLE height=100 width=100 border=0 bgcolor=#66CC66>
<TR align=center>
   <TD align=vcenter>Mouse Pointer Over</TD>
</TR>
</TABLE>

</DIV>
<DIV id=result style=color:red></DIV>
</DIV>
</BODY>
[/CODE]

이 코드는  FF 1.5.0.3, IE 6.0.2900.2180에서 테스트 해보았다.
제가 사용중인 도메인을 /blog로 리다이렉트 시켜 사용하고 있습니다.
이렇게 하다보니 리퍼러로 내 도메인이 등록이 되더군요.

내 도메인을 없엘 방법을 찾다가 ViewRefererURL라는 이벤트를 이용해
플러그인을 제작하려고 했는데 ViewRefererURL이벤트 만으로는 목록에서 아예 없에질 못하더군요.

어쩔 수 없이 테터소스를 수정했습니다.

root/trunk/blog/owner/statistics/referer/index.php

의 파일에서

534라인

foreach(getRefererStatistics($owner) as $record){

       $i++;

562라인

foreach(getRefererLogs() as $record){

       $i++;

이 부분에 foreach문 아래 $i++;위에

if( strcmp($record['host'], $_SERVER['SERVER_NAME'] ) == 0 ) continue;

를 추가해 넣었습니다.

이렇게 하니 내 도메인이 리퍼러 목록에서 나오지 않네요.

이미지 링크 방지된것 뚫기

it/www 2006/05/19 10:31 Posted by newtype
원문 URL
http://blog.naver.com/siso821/20001194757

소켓을 이용해 이미지를 직접 받아 보여준다는 내용 같은데,

직접 테스트 해보지는 않았습니다.


[원문]=-=-=-=-=-=-=-=-=--=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
꼭 네이버에 해당하는건 아니지만 이미지 링크방지된곳을 뚤 수 있다는 대강의;;내용입니다

그냥 링크 : <IMG SRC="
http://blogfiles13.naver.net/data1/2004/2/21/44/kaegukgi.gif" />
프로그램 링크 : <IMG SRC="
http://wince.or.kr/php-bin/link.html?url=http://blogfiles13.naver.net/data1/2004/2/21/44/kaegukgi.gif" />


<?php
function link_data($url, $ref='')
{
$urls=explode('/', $url);
$host=$urls[2];
$page=str_replace("http://$host", "", $url);
$request_header  = "GET $page HTTP/1.0\r\n";
$request_header .= "Host: $host\r\n";
$request_header .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*\r\n";
$request_header .= "Accept-Language: ko\r\n";
$request_header .= "Accept-Encoding: gzip, deflate\r\n";
if($ref) $request_header .= "Referer: ".$ref."\r\n";
$request_header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)\r\n";
$request_header .= "Cache-Control: no-cache\r\n";
$request_header .= "Connection: Keep-Alive\r\n";
$request_header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$request_header .= "\r\n";

$socket = @fsockopen($host,80,$errno,$errstr,30);
if($socket){
fwrite($socket,$request_header);
do $header .= fread($socket,1); while (!preg_match('/\\r\\n\\r\\n$/',$header));

if (preg_match('/Transfer\\-Encoding:\\s+chunked\\r\\n/',$header)) {

do {
$byte = "";
$chunk_size="";
do {
$chunk_size.=$byte;
$byte=fread($socket,1);
} while ($byte!="\\r");

fread($socket, 1);
$chunk_size = hexdec($chunk_size);
$result .= fread($socket,$chunk_size);
fread($socket,2);
} while ($chunk_size);

} else {
if(preg_match('/Content\\-Length:\\s+([0-9]*)\\r\\n/',$header,$matches)) {
$result = fread($socket,$matches[1]);
}else{
while (!feof($socket)) $result .= fread($socket, 4096);
}
}

fclose($socket);
} else {
die('Server Connect Error');
}
return $result;
}


echo link_data($_GET[url], '
http://blog.naver.com');
?>

proxy 서버를 이용한 웹 서핑

it/www 2006/04/18 15:40 Posted by newtype
회사에서 싸이월드를 막나왔군요. 머 제가 싸이월드를 운영하고 있지는 않지만, 막아놨다는 말을 듣고 한번 들어가 봤습니다. 역시 Proxy를 통하면 접속이 가능하네요. 대부분의 Proxy서버는 외국으로 속도가 느리지만, 우리나라에도 Proxy서버가 생각보다 많이 있네요. Proxy 서버 리스트 여기에서 몇페이지 넘어가면 Korea가 있습니다.
TAG proxy, 싸이
1. 일반 Ansi 형식이 아닌 UTF-8형식의 Text파일로 스크립트 파일을 저장합니다.

2. <% @Codepage = "65001" %>
서버 스크립트 최상단에 위의 코드를 넣어줍니다.

3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 html 해더부에 위의 코드를 넣어 줍니다.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
예재 소스 입니다.

inputUnicode.html
------------------------------------------------------------
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>

</HEAD>

<BODY>
<FORM METHOD=POST ACTION="testUnicode.asp">
<INPUT TYPE="text" NAME="uniText" size=100>
<INPUT TYPE="submit">
</FORM>
</BODY>
</HTML>


testUnicode.asp
------------------------------------------------------------
<% @Codepage = "65001" %>
<!--#include virtual="/include/dbcon.asp"-->
 <!--#include virtual="/include/function.asp"-->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>

</HEAD>

<BODY>
<%
Set db=Server.CreateObject("ADODB.Connection")
db.Open DbConstring


'-------------------------------------------------------------
'  유니코드 DB에 넣기 테스트
'-------------------------------------------------------------

if  request("uniText") <> "" then


response.write "<hr><br><B>DB넣기<U></U></B><br>"

sql = "INSERT INTO tblText ( test ) values ( N'" & request("uniText") & "')"
response.write sql & "<br>"

db.Execute sql

response.write "<br>넣은값 : " & request("uniText") & "<br>"


end if

'-------------------------------------------------------------
'  유니코드 DB에 읽기 테스트
'-------------------------------------------------------------
response.write "<hr><br><B>DB읽기</B><br>"

sql = "select test from tblText"

Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open sql, db

Do until rs.EOF

       response.write "<br>" & stripHTML(rs("test")) & "<br>"
 
  rs.MoveNext  
Loop


%>
</BODY>
</HTML>


function.asp
------------------------------------------------------------

<%
Function stripHTML(strHTML)

strHTML = Replace(strHTML, "<", " & l t ;")   ' 사용할땐 공백없애고요
strHTML = Replace(strHTML, ">", "& g t ;")

stripHTML = strHTML

End Function


%>


dbcon.asp는 상황에 따라..^^

그리고, mssql의 tblText 테이블의 test 필드는 nvarchar형이어야 합니다.

자바스크립트용 email 주소 검사 함수

it/www 2005/06/21 18:28 Posted by newtype
function CheckMail( str )
{
       var regValidMail=/^[^@]+@[^\.]+[\.][^$]+$/g;

   if( regValidMail.test(str)  )
       {
               return true;
   }
   return false;
}

mssql -> mysql

it/www 2004/10/14 00:29 Posted by newtype
mssql에는 shift-jis나 gb2312등 ansi 캐릭터셋의 데이타가 각각 다른 테이블에 저장되어 있다.

이것을 mysql의 ansi캐릭터셋 데이터로 저장 하고자 한다.

mssql의 ansi 데이타를 mysql에 utf-8로 저장해 사용할까도 생각을 했지만,
기존 웹사이트 자체가 ansi 캐릭터셋을 사용하고 있어서 utf-8로 저장해 사용 할 경우 전체 웹사이트를 utf-8로 작업해 주거나, 매번 utf-8로 저장된 데이타를 ansi데이타로 변환해 보여줘야하기 때문에 페이지 로딩이 길어질까봐 일단 ansi데이타로 저장해 놓고, 차후 리뉴얼등을 통해 전체 사이트를 utf-8로 변환 할 기회가 생기면 db의 데이타 역시 그 때 변환하기로 했다..( 게으름.. 지연평가:to be lazy라 말하고 싶은..^^;; )

불행이도 두 서버간에 직접 데이타를 교환 하는 방법은 모두 지원하지 않았다.
( 둘다 각각 다른 호스팅 업체 이다 보니..ㅜ.ㅠ )

뭐 DB잘하시는 분들이야 mssql의 DTS를 이용해 방법이 있으시겠지만,
불행이도 난 DB를 잘 몰랐다.. ( 기껏해야 간단한 쿼리 날리는 정도.. )

어쩔수 없이 mssql의 데이타를 직접 받아 mysql에 넘겨주어야한다.
mysql의 경우 phpMyAdmin 에서 쿼리가 저장된 text문서를 업로드해 대량으로 데이타를 입력하는 방법이 존재했다.

1. mssql의 ansi 캐릭터셋 데이타를 받아오자.
  ansi캐릭터셋의 데이타를 text형태로 받아오면 euc-kr이 아닌경우
  정상적으로 받아오지 못하는 경우가 있었다.
  어쩔수 없이 mssql의 DTS를 이용해 text형태로 저장한다.
  이때 데이타 깨짐을 방지하기 위해 유니코드text, 레코드 구분 중앙선(|),
  필드구분 탭, 문자열 묶음 기호는 없음으로 했다.

2. 유니코드 text파일을 편집해 쿼리문으로 만들자.
  이때 사용한 툴은 울트라에디터 이다. 에디터플러스의 경우
  유니코드 text를 copy & paste하는 과정에서 데이타가 깨지는 현상이 발생했다.
  울트라에디터에서 아래의 순서로 치환해 쿼리는 말들었다.
    가. 따옴표(') -> 쌍따옴표(")
    나. 엔터(^p) -> html줄바꿈(<br>)
    다. 탭( ^t) -> 쿼리 중간 구분자 (', ')
    라. 중앙선(|) -> 쿼리 끝문장, 시작문장 ( '); ^p insert into xxxxxx value ( ' )
  이런 순으로 치환을 했다.

3. 유니코드 text파일을 특정 캐릭터셋의 ansi 문서로 저장한다.
  phpMyAdmin이 유니코드text파일이나, utf-8 text파일을 인식하지 못해
  어쩔 수 없이 ansi text문서로 만들어야 했다.
  이건 간단히 MFC를 이용해 유니코드 text파일을
  특정 캐릭터셋의 ansi문서로 저장해 주는 유틸을 만들어 변환했다.

4. phpMyAdmin을 이용해 데이타를 저장한다.
  이때 간혹 쿼리문이 잘못되어 중간에 실패하는 경우가 있는데.
  ansi 캐릭터셋의 문서는 에디터플러스를 이용해 편집했다.
  ( 울트라 에디터의 경우 ansi문서를 copy & paste하는 과정에서
    데이타 깨짐현상이 발행했다.
    asni, unicode를 완변하기 지원하는 text편집기는 메모장 뿐이란말인가 ㅜ.ㅠ )

이렇게 힘겹게 힘겹게 데이타 변환 작업을 수행했다.

메일 수신 확인에서..

it/www 2004/01/09 23:19 Posted by newtype
현재는 <img src="tnt.com/check.asp?id=01">이런식으로 하고있는데..물론 img태그를 막는곳이 별로 없어서 일단 첫관문은 통과인디...activex어쩌고 하면서 보안상 실행을 안시켜버린당..고로..수신체크가 안된다는 이야기지...


수신체크하는 다른 방법이 없을까나?

asp 에서 round..

it/www 2003/11/05 07:37 Posted by newtype
가 미텻나보다..아님 내가 먼가 잘못알고 있는지..
반올림하기위해서 round를 쓰는데 이넘이 반올림을 햇다 안했다..그러네..
그래서 하나하나 찍어보니 round(0.5,0)=0 round(1.5,0)=2 round(2.5,0)=2 round(3.5,0)=4
요런다..짝수때는 반올림하고..홀수때는 버리네..이게 우쨔된일이냐..

쌈박한 해결책을 알려다오..

프린트..

it/www 2003/11/04 06:53 Posted by newtype
asp로 페이징해서 3페이지가 되었다,
프린트 방법은 window.print()
그랫더니 현재페이지만 된다.
3페이지 한방에 할수있는 방법은?

카테고리 다중지원 설계

it/www 2003/10/25 23:36 Posted by newtype
다중지원이라함은 A라는 소카테고리가 백오피스에는 AA(대카테고리)에 속하는 것이지만,

프론트샵에 뿌려질 때에는 AA와 BB(대카테고리)의 소카테고리로 뿌려지도록 하는 것인데,

상품의 특성이 AA에도 속하고, BB에도 속할 경우에 활용하면 좋다. 라는 글을 어디선가에서 봤는데..

실제로 적용해보려니 쉽지가 않네..

좀더 예를 들어보면 ODD 라는 대분류 및에 DVD+RW, DVD-RW, DVD+_RW라는 중분류가 있다면..

DVD+_RW제품을 DVD+_RW라는 카테고리 이외에도 DVD+RW와DVD-RW에도 나오게 하고 싶은데..

어떤 방법으로 해야할지 모르겠다.
현재는 대분류가 01이라면 중분류는 0101,0102이런식으로 줘서 대분류선택하면 like 01% 이렇게해서 하위분류 부르고 나서 하위분류선택하면 상품에서 해당분류랑 매치되는것만 셀렉트해오는데..위에처럼하려면 우찌해야하남?


이전..다음 글..

it/www 2003/10/09 08:03 Posted by newtype
'이전 글의 board_idx 값을 구하는 부분
   SQL = "Select Min(board_idx) from MyBoard where board_idx > " & board_idx
   Set Rs = adoDb.Execute(SQL)
   if Not Rs.EOF then
       prev_idx = Rs(0)
   end if

   '다음 글의 board_idx 값을 구하는 부분
   SQL = "Select Max(board_idx) from MyBoard where board_idx < " & board_idx
   Set Rs = adoDb.Execute(SQL)
   if Not Rs.EOF then
       next_idx = Rs(0)
   end if

이 방법 말구..비용적게 드는 방법없수?
a라는 상품이 있다..칼라는 black,white,red라는 칼라가 있고 사이즈는 칼라별로 6,7,8 이라는 사이즈가 있다. 이런경우 디비와 쿼리의 조언 바란다.

지금 현재 내가 쓰는 방법은 상품 테이블, 사이즈 테이블, 칼라 테이블을 따로 쓰고 있다. 그리고 same코드를 만들어서 같은상품내의 다른칼라,다른 사이즈의 상품을 접근할때 쓰고 있다..

근데 문제가..상품들을 진열할때(초기화면에서) 같은 상품내에 칼라가 다른  상품이 진열되는것은 상관없는데 다른 사이즈의 상품까지 다 진열되버리는것이다..그러다 보니 같은 그림의 사진이 여러장 진열되니 보기가 모 같다..

어찌하면 좋겟나?

사이트 변경시..

it/www 2003/09/27 02:13 Posted by newtype
현재 사이트에서 다른 사이트로 이동하거나 아님 브라우저 창을 닫거나 하면 새창이 뜨게하고십소..
wo.to처럼 말이오..그리고 많은 포xx사이트처럼..
세션은..언제 종료되었는지 알수없고..쿠키사용하자니..뒤로가기..새로고침에도 반응하구려.. 머..좋은 방법좀 알려주이소..

어디서 얼핏 봣는데..애플릿 사용한다는 애기를 슬쩍 본것 같은데..애플릿이라 함은 자바?
오..노...asp로 할수있는법을 찾소..없다면..ㅡㅜ