* 마우스 포인터를 mousedown이나 mouseup, mousemove, click 등의 이벤트 콜백 함수 안에서 가져오고자 한다면 아래와 같은 함수를 호출하면 된다. function mouseX(evt) { if (evt.pageX) return evt.pageX; else if (evt.clientX) return evt.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft); else return null; } function mouseY(evt) { if (evt.pageY) return evt.pageY; else if (evt.clientY) r..
* CSS에서는 다양한 border 스타일들을 제공하고 있다. 일단 border 스타일의 종류를 먼저 예제로 간단하게 알아보고 그 아래에 좀더 상세하게 살펴보자. : 아래는 CSS3를 기준으로 하고 있으며 오래된 브라우저에서 제대로 표시되지 않을 수 있다. * 각 스타일에 대한 예제이다. border-style:dotted border-style:solid border-style:double border-style:groove border-style:ridge border-style:inset border-style:outset * 보더의 넓이에 대한 예제이다. border-style과 같이 쓰지 않으면 아무런 효과가 없다. border-style:solid;border-width:5px border-s..
[PHP] 파일 업로드 (AJAX, XMLHttpRequest나 form 등으로 file 첨부), 에러나는 이유와 처리 방법 * 클라이언트 측 파일 업로드는 이전에 다뤄봤으니 이번에는 서버측 PHP에서 어떻게 파일을 다룰지 한번 알아보고 파일 업로드를 하게 될 때 일어나는 에러들의 이유와 그 처리 방법을 살펴보자. : 클라이언트 부분은 이전에 작성했던 글을 참고하면 될 것이다. 2012/10/10 - [Programming/Web Programming] - [Javascript] AJAX 비동기로 파일 첨부하기 (IE도 지원하게 만들기) : 솔직히 클라이언트쪽 세팅만 잘해줬으면 PHP 쪽은 할일이 거의 없다. 만약 올리는 쪽에서 input의 name이 "uploadFile"이라고 했다면, PHP쪽에서는 ..
[Javascript] Removing all children using DOM * HTML로 프로그래밍하다보면 모든 자식 노드를 삭제해야하는 경우가 생긴다 그럴때 사용하면 되는 간단한 팁이다. var cell = document.getElementById("cell"); while ( cell.hasChildNodes() ) { cell.removeChild( cell.firstChild ); }
* 이전에 AJAX로 XMLHttpRequest에 파일을 첨부하는 방법을 쓴적이 있다. 2012/10/05 - [Programming/Web Programming] - [Javascript] AJAX (XMLHttpRequest)로 비동기적으로 파일 업로드하기 : 맨날 크롬만 쓰니까 테스트를 하니까 잘 동작하길래 넘어갔는데, 이게 왠걸, Internet Explorer (이하 IE)에서는 돌아가지 않는 것이다. 이놈의 IE 또 무엇이 말썽인건가?! : 개발자 도구를 통해서 확인하니 uploadFile.files가 undefined랜다. 게다가 FormData도 없댄다..헐. 도대체 이것들은 있기는 한가?! http://msdn.microsoft.com/en-us/library/ie/hh772723(v=v..
* PHP에서는 이전부터 등과 같은 short tag로 HTML의 소스 중간에 변수의 출력을 간단하게 축약해서 출력하는 방법이 있었다. 하지만 이제는 그 출력 방식이 더이상 이용하게 되지 않고 있다. : 그 이유는 아주 간단하다. 바로 xml의 헤더에도 : 따라서 PHP는 단순히 와 같은 방식을 사용해야하는 것이다. PHP 5.4 이상 버전에서도 여전히 이러한 축약태그가 지원이 되지만, short_open_tags의 설정을 해줘야하고, 다른 어떠한 서버로 자신의 소스 코드를 옮겼을 때 모든 서버에서 돌아가기를 바란다면 이러한 축약 태그보다는 와 같은 풀 태그를 사용하는 것이 추천되고 있는 것이다.
* PHP 5.2이상 버전에서 활용가능한 json_encode와 json_decode 때문에 이 함수를 따로 수작업으로 구현했던 적이 있다. 2012/10/05 - [Programming/Web Programming] - [PHP] Fatal error: Call to undefined function json_decode() - yum update php를 했을 경우 실제로 업데이트할 내용이 없다고 하여 그냥 수작업으로 만들었지만, CentOS 5.5에는 이미 PHP 5.3 이 있다는 것을 알게 되었다. - yum search php53 을 실행하면 검색할 수 있다. : 하지만 yum install php53을 실행하면 기존에 인스톨된 php 5.1 버전과 conflict가 있다는 메세지를 받게 된다...
* 파일을 post로 첨부를 하였는데 만약에 php에서 #_FILES가 비어있다면, : 첨부한 이름과 가져오는 이름을 확인할 것 : 파일의 크기가 너무 크지 않은지 체크할 것- 만약에 php.ini의 설정을 바꾸지 않았다면 기본적으로 8메가의 제한을 가지고 있다. * 파일 첨부 크기 제한 늘리기: php.ini를 찾아서 post_max_size = 8M 인것을 늘려주고 서버를 재시작하면 된다.- Apache는 service httpd restart로 재시작 가능 끝.
Redhat의 경우 yum을 이용해서 설치를 하게 되면 /etc/php.ini 에 생성하게 된다. 하지만 운영체제나 설정마다 다르기 때문에 확실하게 아는 방법은 바로 phpinfo 페이지에서 찾아보는 것이다. 여기에 php의 설정에 대한 거의 모든 정보가 들어있으니 참고하자. * phpinfo 페이지 만드는 방법: 서버에 info.php 파일을 하나 만들어서 아래와 같이 쓰자. : 그리고 이 페이지로 접근을 하게 되면 다음과 php에 대한 정보들이 쭉 나오는데 아래쪽에 보면 "Loaded Configuration File" 에 "/etc/php.ini" 라고 나와있는 것을 볼 수 있다. : 이런 정보 페이지를 만드는게 귀찮다면 리눅스 콘솔에서 grep을 사용해서 찾아보는 방법도 있지만, 이 정보 페이지의..
* 다른 사람이 짜놓은 라이브러리를 가져다가 열심히 코딩하는데 에러가 났다. [error] PHP Fatal error: Call to undefined function json_decode() in /var/www/html/example/lib/ApiRestHandler.php on line 147, referer: http://example/open_api.html : 에러를 해석하자면, json_decode()라는 함수가 정의되지 않았는데 호출이 되었다는 것이다. 위치는 ApiRestHandler.php의 147번째 줄이다. : 이미 상용화를 하고 있는 문제없는 소스일텐데 에러가 났다. json_decode() 함수가 없다는 것이다. 그럼 라이브러리가 제대로 로드가 안되었거나 버전이 무언가 안맞던가..
오늘 PHP로 작업하다가 일반적인 언어의 유효영역(scope)로 생각하다가 한시간을 낭비한 일이 있었다. : 위와 같이 썼는데, 당연히 전역변수로 선언한 $apiHandler가 함수 내에서 $apiHandler 이렇게 바로 접근하면 될 줄 알았는데, object가 undefined라고 자꾸 나와서 왜그런가 했더니 로컬 함수 영역은 글로벌과는 별로도 따진다는 것이다. 만약에 함수 밖에 선언한 전역 변수를 사용하고자 한다면, function doFunction1(){ global $apiHandler; $apiHandler->call("foo");} : 이렇게 global로 정의를 해주면 전역변수로서 $apiHandler를 접근하게 된다. 이외에서 $GLOBALS 를 사용하는 방법도 있다. function ..
[자바스크립트] Uploading file with AJAX (XMLHttpRequest) : 지금까지 웹 언어들을 사용할 때 파일을 업로드 할때에는 form과 input type="file"을 이용해왔다. : 위의 구현은 php.net에 있는 내용을 가져온 것으로 태그 안에 단순히 form을 submit하는 것만으로 쉽게 구현이 가능했지만, 이러한 방법은 페이지 새로 고침(refresh) 현상을 유도하게 되고 이는 사용자 경험에 있어서 마이너스가 된다. (비동기를 적용하게 되는 것은 클라이언트 쪽이니까 서버측 구현은 일단 무시하자.) : 하지만 이러한 방법이 이제 어려워지는 가장 큰 이유는 바로 HTML5를 적용한 웹페이지들이 많아지면서 일 것이다. HTML5에서 HTML은 MVC 모델에서 철저하게 V..
AJAX는 이제 어느새 한물간듯한 지겨운 단어가 되어버렸지만 그 개념은 여전히 남아있으며, HTML5의 기본 프레임워크 안에 그 개념은 내제되어있다. 이제는 자바스크립트를 이용하는 어떠한 패러다임을 일컫는데 AJAX를 쓰기 보다는 자바스크립트를 말 할때 AJAX라는 말을 쓰지 않아도 기본적으로 비동기라는 개념이 들어가있게 된 것이다. 비동기처리를 하기 위해 AJAX라는 단어가 나오기 이전부터 XMLHttpRequest를 이용해왔고 HTML5로 넘어가는 앞으로도 이 XMLHttpRequest를 통해서 비동기적인 처리가 이루어질것이다. 따라서 굳이 AJAX라고 강조를 하지 않아도 '자바스크립트'라 하면 데이터는 비동기적으로 가져온다고 생각을 하면 된다. (물론 페이지 refresh를 하는 경우 등 비동기적이..
컴퓨터에 아파치나 IIS를 깔기에는 부담이 될때 파이썬이 있으면 간단한 웹서버로 웹페이지들을 테스트할 수 있다. 콘솔로 가서 웹 서버의 루트로 하고자하는 디렉토리로 가서 다음과 같이 실행하면 된다. * 이는 순전히 http 서버만을 지원해주며 추가적인 웹 언어는 지원하지 않는다. Python 2.x 버전 python -m SimpleHTTPServer 8000 Python 3.x 버전 python -m http.server 8000 : 뒤의 8000은 포트 번호이다. 그럼 다음과 같이 웹서버가 실행된다. : localhost:8000 이나 127.0.0.1:8000으로 접속하면 웹 서버 처럼 파일 시스템에 접근이 가능하다. 테스트용으로 로컬에서 간단하게 사용하면 편하다. 끝.
[PHP] Session에 변수 저장하기, 불러오기 $obj = new Object();$_SESSION['myObj'] = $obj; //저장하기 $newObj = $_SESSION['myObj']; //불러오기 object를 저장하는 경우 serialize는 자동으로 해준다고 한다. 찝찝하다면 serialize를 수동으로 해줘도 괜찮다. 그리고 앞에 안전하게 세션의 시작을 설정해주는 것도 좋다. (세션을 사용하는 첫 페이지에 들어왔을 경우) session_start(); //세션 시작 $obj = new Object();$_SESSION['myObj'] = serialize($obj); //저장하기 $newObj = unserialize($_SESSION['myObj']); //불러오기 나중에 세션에..
jQuery 기본 선택 방법 (선택자) The selectors follow the basic format of CSS. You will be able to refer the formats in the site of CSS selectors too. It's also able to use the dependency for the parents of the element just like the CSS. $('div') - selects all the elements that has the tags with , 태그로 선택 $('.classSel') - selects all the elements that has the class 'classSel', 클래스로 선택 $('#idSel') - selects ..
1여년 만에 웹프로그래밍을 하려니 시작부터 막힌다... div의 틀을 모두 만들어서 내용을 다 넣어놨는데 css 인클루드하는 방법부터 까먹었다! ㅠㅠ 이랜다~자바스크립트는 script태그는 신기하게 "/>"가 통하지 않는다...-_- 요건 군대 시절 출력해놓고 항상 끼고 다녔던 페이지! http://www.w3.org/TR/REC-CSS2/propidx.html CSS프로퍼티 페이지..이제 프라퍼티 노가다를 해주러 가야겠다~ 메모장과 익스플로러 여닫 수백번의 작업!-_- //// 프라퍼티에는 나와있지 않은 a태그 속성 A:link A:visited A:active A:hover 기본으로 전부 text-decoration:none으로 때려넣어주는게 인지상정-_-+
- Total
- Today
- Yesterday
- Python
- HTML5 튜토리얼
- Writing
- Javascript
- GX-10
- 탐론 17-50
- 샷
- google app engine
- mini project
- 자바스크립트
- java
- TIP
- lecture
- php
- c++
- ny-school
- 안드로이드 앱 개발 기초
- 속깊은 자바스크립트 강좌
- 안드로이드
- 뽐뿌
- HTML5
- 강좌
- 서울
- Android
- 삼식이
- gae
- 팁
- gre
- K100D
- 사진
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |