BLOG main image
전체 (276)
[Computer] (42)
[Programming] (62)
[DBMS] (26)
[Operating System] (21)
[Study English] (8)
[For money] (28)
[Interest] (89)
«   2009/11   »
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          
77831 Visitors up to today!
Today 23 hit, Yesterday 46 hit
'오류해결'에 해당되는 글 5건
[폭주기관차, 2009/09/14 16:33, [Programming]/PHP]

간혹 세션과 쿠키 때문에 아래와 같은 오류가 종종 발생한다.

Warning: Cannot modify header information - headers already sent by
               (output started at /파일이름.php:라인번호) in /파일.php on line 번호

짧은 지식으로 해석해보자면

경고 : 헤더 정보를 수정할 수 없습니다 - 헤더가 이미 보내졌습니다.
         (/파일이름.php파일의 몇번째 라인에서 출력이 시작되었습니다.)
         /파일.php 파일의 몇 번째 라인에서 에러가 났심

즉, 세션과 쿠키는 헤더가 선언되기전에 문자가 출력이 되어서는 안된다는 뜻이다.

왜 그런고보니 아래의 출처를 보면 kyn810410님께서 자세히 설명을 해주셨다.

출처 :  네이버 오픈백과

왜 오류를 일으킬까?

그 이유는 세션이나 쿠키는 자신의 일을 수행함에 있어 헤더를 수정하여 사용하기때문입니다..

수정하여 사용하여야 되는데 이미 어떤값이 출력된 상태이면 헤더가 이미 사용되었기때문에
수정이 불가능한 상태로 되버려서 수정할수가 없기때문에 오류가 생기는 거죠..

아하~ 그렇다 그래서 <HEAD> 다음에 어떠한 문자라도 출력된 다음에 세션이나 쿠키에 저장하려고
하면 저런 에러가 나는 것이다.

참고로 정말 찾기 힘든 오류 중에 하나가 아래와 같은 경우 일 것이다.

<?
     $a = 1; // 변수값설정
?>


<?
     set_session("a",$a); // 세션함수콜
?>

위와 같은 경우도 에러가 난다.
세션 전에 $a = 1;과 같이 변수값 설정은 에러가 나지 않는다.
실제로 화면에 출력(HTML코드로 출력)되지 않기 때문이다.

그렇다면 왜 에러가 나느냐 하면 PHP 시작과 끝을
알리는 ?> <? 이것 사이에 [엔터]라는 빈공간이 삽입 되어서이다.
즉, 아래와 같은 경우도 에러난다.


<?
    set_session("a",1); // 세션함수콜
?>


파일의 제일 맨 위에도 빈 공간(엔터)이 들어있어서는 안된다. 이것 때문에 하루종일 시간을 허비한 적도 있다.


 

요점정리

    세션과 헤더에 저장을 할 때는 헤더가 선언되기 이전에 절대로 어떤 문자의 출력도 허용하지 말라!

        단, echo와 같이 HTML 문자 출력을 제외한 PHP 명령어 들은
        세션과 헤더 저장하기 전에 사용해도 무방하다!
Trackback Address :: http://kongmks.cafe24.com/trackback/301
곰아멍해봐 | 2009/11/12 23:22 | PERMALINK | EDIT/DEL | REPLY
형 C 언어랑 자바 독학하기 좋은책있나요? ㅋ 있으면 1청 홈피에서 쪽지로 좀 가르쳐주세요 /ㅁ/
제가 누군지는 닉네임 확인을 ㅎ
Name
Password
Homepage
Secret
[폭주기관차, 2007/07/20 14:06, [Programming]/Visual C++ API/MFC]
warning LNK4089: all references to "*.dll" discarded by /OPT:REF


Project Option에는 "*.dll"이 링크되어 있는데,
실제 프로그램에서는 사용하지 않았다는 말입니다.

더 자세하게 말하면

"*.dll"의 함수를 써서 사용자 정의 함수를 만들었는데,
이 함수 자체를 사용하지 않았다는 경고입니다.

무시해도 상관은 없습니다..

이 warning을 안나오게 하려면 Alt+F7로 Project Option에 들어가셔서
"*.dll"을 지우면 됩니다.

출처 : 이은교님의 블로그

Trackback Address :: http://kongmks.cafe24.com/trackback/235
Name
Password
Homepage
Secret
[폭주기관차, 2007/07/02 16:42, [Computer]/Inter Network]
인터넷 익스플로워를 실행시켰을 때 혹은 새 탭을 열었을 때 navcancl이란 파일을 저장하라고
오류가 나오면서 익스플로워가 종료되는 현상을 접할때가 있다.

사용자 삽입 이미지

굳이 다운 받을 필요는 없다.



물론 자주는 아니고 나도 처음 당해봤다.

이 에러는 피싱 사이트 관리해주는 모듈 오류로 발생하는 것이란다.

피싱 사이트란 가짜 사이트를 이용해 개인 정보를 빼내 오는 것인데 가령 예를 들면
다음이란 사이트를 눈속임으로 www.duam.net이란 도메인을 만들고(자세히 보면 영어가 다음이 아니라
두암이다.)
www.daum.net홈페이지와 완전 비슷하게 사이트를 만들어났다고 치면, 사람들은
다음 사이트로 오해를 하고 로그인을 시도하게 된다.
그러나 로그인을 시도하는 순간 다음에 접속하는게 아니라 일반 사용자가 만든 www.duam.net 주인장에게
비밀번호가 날라가게 되는 것이다.
이런 사이트를 막는 기술이 익스플로워 7에는 내장되어있으나, 오류만 일으키고..;; 아직까진 쓸모가 없는듯 하다..

그래서 해결 방법은 이 피싱 사이트 검사 기능을 꺼주면 된다.

[도구] - [인터넷 옵션]에서 고급 탭으로 들어가 아래 그림처럼 '피싱 필터 사용 안함'을 체크하면 된다.

사용자 삽입 이미지

피싱 필터 사용하지 말자


Trackback Address :: http://kongmks.cafe24.com/trackback/232
Name
Password
Homepage
Secret
[폭주기관차, 2007/03/03 15:44, [Computer]/Software]
- 워드 문서를 작성 후 저장을 하는데 아래와 같은 오류 메시지가 뜹니다.

문서가 저장되었지만 저장할 공간이 충분하지 않기 때문에 음성 인식 데이터가 손실되었습니다.
녹음하지 않을 경우 마이크를 끄고 디스크에서 사용 가능한 저장 공간을 확인 하십시오.

사용자 삽입 이미지

왠 음성 데이터??



우선 [도구] - [옵션] 으로 들어가면 대화상자가 뜹니다.

대화상자에서 저장 탭을 선택합니다.
저장옵션 항목 중 언어 데이터 포함 항목이 선택되어 있는 것을 확인 하실 수 있습니다.

항목을 선택을 해제 한 후 확인을 눌러줍니다.
저장 시 오류 메시지가 뜨지 않는 것을 확인 하실 수 있습니다.

사용자 삽입 이미지

이 것을 체크 해제 해야한다.



출처 : Noopy Homepy 카페
Trackback Address :: http://kongmks.cafe24.com/trackback/160
Name
Password
Homepage
Secret
[폭주기관차, 2007/02/23 12:48, [Computer]/Inter Network]
APM_SETUP 5는 http://www.apmsetup.com 에서 받으실 수 있습니다.

APM_SETUP 5를 설치하면 거의 다 자동으로 설정을 잡아주기 때문에
my_sql 비번만 바꿔주고 설치를 들어갔습니다.

아 그전에 도메인 설정을 해야하는데 APM_SETUP에 보시면 DDNS라고 있습니다.
[아이디].apmsetup.net이란 도메인 을 생성해줍니다.
그리고 유동아이피(이동성 아이피)더라도 APM_SETUP을 실행하면 자신의 아이피가
갱신되어 어디서 서버를 실행하든 [아이디].apmsetup.net으로 접속이 가능합니다.

꼭 apmsetup.net이 아니더라도 검색창에 DDNS만 검색하시면 지원해주는 사이트가
많이 나올 껍니다.

저도 하나 만들었는데 회사 방화벽때문에 접속이 안되더군요..
그래서 윈도우의 hosts 설정을 변경하여(hosts의 관한글은 따로 올리겠습니다.)
사용하였습니다.

블로그는 Tattertools 1.1.1.1 - RC2 버전을 설치해봤습니다.

본 블로그를 설치했던 경험을 바탕으로
1단계, 2단(자세한건 저 말고도 다른 분들이 자세히 기술하셨기 때문에
저는 제자신이 설치하면 오류 났던 부분에 대해서 중점적으로 기술하겠습니다.)를
무난히 넘기고 3단계 데이터베이스를 설정하는 부분은

phpMyAdmin을 이용해서 tattertools란 테이블을 생성했습니다.
사용자 삽입 이미지

테터툴즈란 테이블을 만들었다.



위와 같이 설정하고 3단계 넘어가서 4단계
사용자 삽입 이미지

여기가 난코스가 될줄이야...



후후 Next... 헉 이게 왠걸...
사용자 삽입 이미지

허거덩스... 오류가...



갑자기 'Rewrite를 사용할 수 없습니다.' ????

그래서 Naver.com를 통해 검색하기 시작했다.
나말고도 여러사람들이 고전하는 모양이었다.
앗.. 그런데 apmsetup.com 사이트가 들어가지질 않는 것이다.
"헉...머야.. " 네이버 검색결과의 90%가 apmsetup.com에 접속해야 볼 수 있는 질문들인데...
난감.. 완전 난감. 블로그 위주로 검색하기 시작하였으나,
대부분 '잘 안된다. conf파일을 수정해야 된다. 해도 안된다.'
이런 글들이었다.
뜻 밖에 줄담배님의 블로그를 통해 httpd.conf파일을 수정하면 된다는걸 알았다.
링크에 자세히 되어있다고 클릭하란다. 클릭!
허거덩스... 이것도 apmsetup.com... 아 왜 이럴때 접속이 안되냔 말이다..ㅜㅜ

파일 찾기를 통해 httpd.conf위치를 확인 결과
C:\APM_Setup\Server\Apache\conf (APM_SETUP 기본설치 경로시)
에 있었다.

이 파일을 메모장 등과 같은 프로그램으로 열어보았다.
왠 영어들. 무슨 말인지...ㅡㅡ;;
찾기버튼을 눌러  'rewrite'을 찾아보았더니

#LoadModule rewrite_module modules/mod_rewrite.so


이렇게 주석처리된 줄이 보였다. 이 주석을 풀었다.(앞줄에 #을 지우면 주석이 풀림)
두 번더 'rewrite'로 검색해보았더니

#AddModule mod_rewrite.c


이런줄이 보인다. 이것도 역시 주석을 풀었다.
그리고 다음 에러인 '<Directory "c:/apm_setup/htdocs">'를 찾기 위해
찾기에 '<Directory'만 검색을 해서 찾아냈다.
이것이 나를 1시간동안 원인을 찾지 못하고 포기하겠끔 만들었던 원흉이다.

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>


이런 구문이 검색되어.. 난 Directory 다음에 /를 c:/apm_setup/htdocs로 고치고
그 다음 옵션도 다 맞게 고쳤다.(여러분들은 이렇게 하지 마시고 밑에 껄 수정하세요)

그리고 이 파일을 저장한 후 APM_SETUP을 끄고 다시 서버를 실행했다.
헛 그러나 역시 같은 오류가 ... 하면서 옵션을 All로도 고쳐보고...
1시간을 끙끙 대다.. 포기.. 안되는구나.. 했다가
10분정도 차를 마시고 돌아와서
마지막으로 해봐야지 하고 코드를 보는데
밑으로 좀 내려가다 보니 이런게 보입니다.

#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "C:/APM_Setup/htdocs">



헉...!! 머야 <Directory "C:/APM_Setup/htdocs">가 있었네... 저는 괜히 루트에다가 뻘짓거리한겁니다.
위에서 아무리 <Directory "C:/APM_Setup/htdocs">설정 바꿔주면 모합니까
밑에서 다시 권한설정을 다 없애는데 ㅜㅜ

결국 쫌 내려가다 보면 아래와 같은 코드가 보입니다.

#
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
    AllowOverride None


여기에서 None을 FileInfo로만 바꾸어주면 되는 것입니다.
그렇게 수정 하고 저장한 다음에 APM_SETUP프로그램 종료하고 서버 다시 실행해보고
수행했더니... ㅜㅜ

그토록 염원하던 5단계...

사용자 삽입 이미지

ㅜㅜ 그토록 보고 싶던 5단계



결국 난 1시간 30분동안 뻘짓을 한것이다...ㅡㅡ;;

휴... 아무튼 나머지는 단일 블로그로 하고, 이메일 입력하고
이렇게 테터툴즈 설치 완료!


도움주신블로거님 : 줄담배님 블로그 글
Trackback Address :: http://kongmks.cafe24.com/trackback/139
BlogIcon 줄담배 | 2007/02/23 21:29 | PERMALINK | EDIT/DEL | REPLY
저도 님과 유사한 삽질을 했습니다.
허무하게 버그를 잡아냈을 때의 그 황당함이란... ㅠ.ㅠ

좋은 하루 되세요.
BlogIcon 폭주기관차 | 2007/02/24 19:35 | PERMALINK | EDIT/DEL
ㅋㅋㅋ 저도 너무 허무하더라구요... ㅜㅜ
아무튼 줄담배님의 강좌 글 덕분에 겨우겨우 설치 성공했어요 ㅋㅋ
감사합니다~~^^

줄담배님은 항상 저에게 유용한 자료만 담아두시는거 같아요..ㅋㅋ

그럼 줄담배님도 즐거운 하루 보내세요~~^^
Name
Password
Homepage
Secret
*1