(PHP) Cannot send session cache limiter - headers already sent

IT/Programming/PHP 2013. 6. 9. 08:41

Warning: session_start(): Cannot send session cache limiter - headers already sent


 

해당 에러는 session_start() 구문을 PHP 코드의 맨 위에 넣지 않아서 생기는 문제이다. 헤더가 구성될 때 세션이 구성이 되어야 하는데, 다른 php 작업들로 인하여 이미 헤더가 전송된 상태에서 세션을 전달할 수 없기 때문이다. 해결 방법은 간단하다. php 코드를 시작 부에 session_start() 를 넣어주면 된다.

 

<?php session_start(); echo("blahblah.."); ?>

만약, 그래도 문제가 지속된다면 php.ini 에서 output_buffering 속성을 on 으로 바꿔주고 웹 서버를 재시작하면 해결된다.

설정

트랙백

댓글

(javascript) getElementById()/getElementsbyName() 함수가 제대로 동작하지 않을 때

IT/Programming/Solution/Tip 2013. 6. 8. 08:39

getElementById() 와 getElementsByName() 은 DOM 접근을 위해 애용받는 함수다.

 

getElementById() :: http://www.w3schools.com/jsref/met_doc_getelementbyid.asp

getElementsByName() :: http://www.w3schools.com/jsref/met_doc_getelementsbyname.asp

 

이 두 함수를 사용해야할 때 주의할 점이 있는데, DOM 객체 접근을 위한 함수이다보니 HTML 이 로딩될 때 DOM 객체가 모두 로딩되기 전에 Javascript 단에서 DOM 객체 접근을 시도하면 값을 얻어오지 못하는 경우가 생긴다. 이런 경우 두 함수는 null 값을 반환한다. 제대로 작동하지 않는 것 같으면 리턴 값을 alert() 나 document.write() 등으로 확인해보자.

 

window.onload() 함수를 사용하여 HTML 이 완전히 로딩이 되고 나서 DOM 객체에 접근해야한다.

 

예제는 아래와 같다.

 

var email;
var phone;
var password;
var interest;

window.onload = function() {
 email = document.getElementById("email");
 phone = document.getElementById("phone");
 password = document.getElementsByName("password");
 interest = document.getElementsByName("interest");
}

설정

트랙백

댓글

Uncaught TypeError: Object #<HTMLDocument> has no method 'getElementByName'

IT/Programming/Solution/Tip 2013. 6. 8. 07:04

Uncaught TypeError: Object #<HTMLDocument> has no method 'getElementByName' 에러를 크롬 요소분석기 콘솔에서 만났을 때, 이런경우는 십중팔구 getElementsByNamegetElementByName 으로 타이핑하여 문제가 생긴 경우다. 보통 getElementById 를 같이 쓰다 보니깐 이런 실수를 하는 것 같다. ID는 유니크하지만 Name은 그렇지 않아 Element에 복수형태로 s가 붙는다.

 

예전에도 이것때문에 조금 고생했었는데 바보같이 이번에도 이것 때문에 너무 많은 시간을 쏟고야 말았다. -_-;;

바보같은게 아니고 바보인가보다.. 음.. ㅠㅠ

설정

트랙백

댓글

error LNK2019: _DumpRegs@0 외부 기호(참조 위치: _main@0 함수)에서 확인하지 못했습니다.

IT/Programming/Solution/Tip 2013. 5. 30. 12:09

이 포스트는 VIsual Studio 2008 이상 버젼에서 Irvine32 를 제대로 포함하고도 DumpRegs를 호출하지 못하는 문제점을 해결한다.

 

> Visual Studio 버젼에 맞는 어셈블리 개발환경 세팅을 갖추었고 Irvine32 디렉터리를 제대로 포함시켰을 경우를 전제로 한다.

 

요번에 잠깐 테스트할 일이 있어 Visual Studio 2008 Express에서 어셈블러 세팅을 하고 컴파일을 해보니 문제가 발생했다.

 

첫 번째 해결 방책)

INCLUDE Irvine32.inc 처럼 포함시킨 inc 파일이 있을 것이다. 대부분 상대경로로 지정해놓았을텐데, <절대경로>를 사용함으로써 문제를 해결한다.

=> (Irvine32.inc가 C:\Irvine\에 위치할 경우) 소스코드에서 INCLUDE C:\Irvine\Irvine32.inc 로 수정하여 빌드해본다.

 

두 번째 해결 방책)

 Irvine32.lib 와 같이 자신이 사용하고 있는 Irvine버젼에 맞는 lib파일을 INCLUDELIB 을 사용하여 <절대경로>로 포함시킨다.

=> (Irvine32.lib가 C:\Irvine\에 위치할 경우) 소스코드에서 INCLUDELIB C:\Irvine\Irvine32.lib 로 수정하여 빌드해본다.

(INCLUDELIB 구문을 사용하시지 않으셨다고 하더라도 INCLUDELIB 구문을 새로 작성하시면 됩니다.

INCLUDE 문도 절대경로로 적용시켜주세요.)

 

 

보아하니 이런 문제가 일어나는 시스템도 있고 문제 없이 빌드가 되는 시스템도 있던데 정확히 어떤 것이 원인이 되어 이 문제가 일어나는지는 잘 모르겠다. Irvine32.inc 파일을 살펴보니 DumpRegs가 제대로 포함되어 있으나 어셈블러에서 함수 경로를 제대로 찾아가지 못하는 문제가 일부 시스템에서는 발생하고 있는 것으로 보인다. 정확한 해결 원인을 아시는 분은 덧글로 알려주시면 감사의 말씀을 드리겠습니다.

설정

트랙백

댓글

pthread.h 를 포함했는데도 undefined reference to `pthread_create' 에러가 날때

IT/Programming/Solution/Tip 2013. 4. 5. 16:38

<그림 1> undefined reference to `pthread_create'

 

pthread 를 사용했을 때, 컴파일시 gcc 옵션에서 위와 같이 -o 옵션만 주게 되면 위와 같은 에러가 난다.

 

gcc 옵션에  -lpthread 인자를 주어 컴파일 하면 된다.

gcc -o 1 1.c -lpthread

 

 

<그림 2> -lpthread 옵션을 주고 나니 정상적으로 컴파일이 된다.

 

 

설정

트랙백

댓글

개인적으로 좋아하는 엑셀 함수 사이트

IT/Programming 2013. 3. 27. 02:32

http://www.techonthenet.com/excel/formulas

 

여러 사이트를 참고해보았지만 위 사이트가 가장 좋은 정보를 준다.

MS 공식 사이트에서 제공하는 Function 레퍼런스도 좋긴한데, 이 사이트가 가장 직관적으로 보여주고, 무엇보다도 어느 엑셀 버젼에 적용되는지 아주 잘 알려줘서 위 사이트를 애용하는 편이다.

'IT/Programming' 카테고리의 다른 글

git 을 웹에서 쉽게 배우자  (0) 2014.01.09
DDR1/DDR2/DDR3 외형차이  (0) 2013.07.31
Len Sassaman, 세상을 뜨다  (0) 2011.07.06
[FreeBSD] su 사용 권한 부여  (0) 2010.12.22
Software Wars  (0) 2010.05.01

설정

트랙백

댓글

[Android] [Accessibility] Missing contentDescription attribute on image 해결방법

IT/Programming/Solution/Tip 2013. 1. 17. 21:09

 

Android 프로그래밍을 하면서, ImageView를 쓸 때 "[Accessibility] Missing contentDescription attribute on image" 라는 노란색 에러메세지가 뜨는 경우가 있다. 이런 경우에는 간단히 contentDescription 을 속성에 추가하는 방법이 있고, 또는 이클립스에서contentDescription 에러메세지가 뜨지 않도록 설정하는 방법이 있다.

 

첫번째 방법으로, 아래와 같이 contentDescription 속성을 에러가 나는 해당 ImageView 에 추가해주면 문제는 해결된다.

 

android:contentDescription="@string/blahblah"

 

두번째 방법으로, 이클립스에서 Window - Preferences - Android - Lint Error Checking 에 들어가서 ContentDescription 항목의 에러를 무시하도록 설정해주면 된다. 아래의 스크린샷을 참고하자.

 

 

<그림 1> Window - Preferences - Android - Lint Error Checking

 

목록이 많이 뜨는데, 접근성(Accessibility) 항목에 ContentDescription 을 찾으면 된다.

찾기 귀찮은 사람은 위에 Issues: 검색 창이 있으니 거기에 ContentDescription 을 치면 알아서 잘 나온다.

 

오른쪽에 보면 오류의 심각성(Severity) 리스트 항목이 있는데, 해당 항목을 Warning에서 Ignore로 바꿔주면 문제는 해결된다.

 

 

설정

트랙백

댓글

이클립스 폰트 설정 / 이클립스에서 한글이 작게 보일 때

IT/Programming/Solution/Tip 2013. 1. 9. 17:38

이클립스를 사용할 때 영어는 괜찮은데 한글을 쓰면 글자가 너무 작게 보이는 문제를 겪는 사람이 많다.

이 문제와 상관없이 그냥 이클립스 컴파일러에서 폰트를 설정하기를 원하는 사람도 이 포스팅을 참고하면 되겠다. 

 

대부분의 블로그에서는 폰트를 조절하여 한글 크기를 키우는 방법을 소개한다. 하지만 이런 경우 영어까지 커져버리는 문제가 생겨 귀찮은 점이 이만저만이 아닌데, 한글이 작고 어색하게 뜨는 이유는 해당 폰트가 한글을 지원하지 않기 때문이므로 간단하게 한글을 지원해주는 폰트로 바꾸면 된다.

 

이 포스팅에서는 먼저 이클립스에서 폰트 설정하는 방법을 먼저 소개하고, 그 다음 프로그래머들이 보통 많이 쓰는 Courier New 폰트를 적용함으로써 문제를 해결하는 방법에 대해서 소개하겠다.

 

 

 

<그림 1> 문제의 한글 크기

 

딱 봐도 답답해보인다.

이클립스 상단의 메뉴에서 아래 순서대로 찾아가도록 하자.

Window - Preferences - General - Appearance - Colors and Fonts

 

<그림 2> Window - Preferences - General - Appearance - Colors and Fonts

 

위 화면까지 넘어왔으면 Text Font 를 클릭하고 Edit을 누르자.

 

 

<그림 3> Font Edit 창

 

여기서 우선 글자 크기만 조절해보자. 초기 값이 보통 10pt 이니 이 값보다 더 크게 맞춰보자.

 

 

 

<그림 4> 이런!

 

한글이 커지긴 했는데 코드까지 커져버린 부작용(?) 이 있다.

 위에서 언급했듯이, 한글 크기가 지나치게 작고 어색하게 나오는 경우는

해당 폰트가 한국어를 지원하지 않기 때문에 생기는 문제이니

한글도 지원해주는 글꼴을 골라 바꿔주면 된다.

 

적당하게 사람들이 많이 쓰는 Courier New 폰트를 골라 쓰자. 그런데 문제는 컴퓨터에 Courier New 폰트가 대부분 설치가 되어있음에도 불구하고 이상하게 이클립스 Text Edit 창에서는 Courier New 폰트가 나타나지 않는다.

이런 경우를 해결하기 위해서, 아래의 그림을 보도록 하자.

 

 

<그림 5> 숨김파일 해제

 

시작 - 실행 - %windir%Fonts\ 경로에 들어가면 (윈도우가 설치 된 드라이브의 Windows\Fonts\)

시스템에 설치 된 폰트들이 뜨는데 거기서 Courier New 를 찾아보면 해당 폰트가 [숨김] 처리가 되어있을 것이다.

오른쪽 클릭 - 표시(S) 를 눌러 [표시] 상태로 바꾸고 다시 이클립스의 Text Edit 창으로 들어가자.

 

 

<그림 6> 나타난 Courier New 폰트

 

다시 Text Edit 창을 켜보면 Courier New 폰트가 나타나있는 것을 볼 수 있다.

이 폰트를 한번 적용시켜보자.

 

 

 

<그림 7> 이제 좀 할맛나네!

 

원하는대로 초기 영어 텍스트 크기(10pt)를 유지하면서 한글을 우리가 잘 볼 수 있게 크기를 키우는데 성공했다.

 

 

별건 아니지만 본인이 이 문제로 좀 고생을 한 탓에 -_-; 포스팅을 남긴다.

이 포스팅이 조금 더 편한 이클립스 사용에 도움이 되길 바란다.

설정

트랙백

댓글

cygwin 한국 미러 사이트

IT/Programming/Solution/Tip 2013. 1. 9. 17:13

cygwin 설치할 때 한국 미러사이트가 기본으로 제공되지 않는다.

Daum에서 cygwin 미러링을 지원해주고 있으니 아래의 링크를 Add 하고 받으면 된다.

http://ftp.daum.net/cygwin

 

sayclub도 불안정한 것 같고, kaist는 몇번 미러 초기화되는 사태가 있어서 개인적으로 별로 믿음이 안가고..

역시 소프트웨어 미러링해주고 오픈소스를 지원해주는 Daum이 정말 좋다.

설정

트랙백

댓글

winapi 사이트 도메인 이전

IT/Programming/Solution/Tip 2012. 12. 20. 22:00

http://www.winapi.co.kr 로 통하던 유명한 winapi 사이트가 soenlab 이라는 새로운 이름으로 바뀝니다.

 

자세한 사항은 http://www.winapi.co.kr 에 접속해보시면 나와있지만 블로그를 날로 먹을 순 없으니 스크린샷 아래에 첨부하겠습니다.

 

 

<그림 1> winapi 사이트 도메인 명 변경 공지

가끔 winapi 사이트를 방문해 데이터를 열람할 때가 많았는데, 조금은 아쉽네요. 뭐 그렇다고 원래 사이트가 없어진다는 게 아니고 그냥 도메인 변경일 뿐이지만 뭔가 winapi.co.kr 만의 느낌은 버리고 싶지가 않아서.. 이 사이트를 운영하시는 운영자분이 매우 노고가 많습니다. 많은 사람들이 도움 받을 수 있는 사이트를 운영하는 것도 저의 큰 바람인데, 아무쪼록 미래의 winapi, SoEnLab에 많은 좋은 소식이 들려왔으면 좋겠습니다.

 

이전 된 사이트는 http://www.SoEnLab.com 에서 확인하실 수 있습니다.

 

 

설정

트랙백

댓글