게시판 답변이 생성됐습니다
-
2006/04/12 1:14 오후 #1415
polyglot.php 파일을 utf-8로 저장하실 때 유니코드 표식(BOM)을 함께 저장하면 위의 오류가 나타날 수 있습니다.
다음의 내용은 제 블로그에 썼던 내용인데 참고하시기 바랍니다:
Headers already sent … 오류의 해결
워드프레스 사용자들뿐만 아니라 다른 프로그램 사용자들도 자주 겪는 Headers already sent … 오류는 주로 플러그인 파일과 관련하여 발생한다. 이 오류가 발생할 경우에는 다음의 경우 중 어느 하나에 속한다:
1. 해당 플러그인 파일의 첫 문장은 <?php 로 시작할텐데, 이 <?php 앞에 공백을 두면 이 오류가 발생할 수 있다.
2. 해당 플러그인 파일의 마지막 문장은 ?> 로 끝날텐데, 이 ?> 뒤에 공백을 남기면 이 오류가 발생할 수 있다.
3. 해당 플러그인 파일을 저장할 때 노트패드나 편집기에서 utf-8 인코딩 형식으로 저장하면 이런 결과가 발생할 수 있다.위 사유들 중에서 utf-8로 저장한다고 해서 무조건 이 오류가 발생하는 것은 아니다. 대부분의 편집기는 파일을 utf-8 형식으로 저장할 때 그 파일이 유니코드로 인코딩되었음을 알리는 표식(Unicode Signature, 혹은 BOM이라고 함. utf-8 문서의 처음 2 bytes에 추가되는 0xFF 0xFE를 말함)을 문서의 맨 처음에 보이지 않게 추가한다. 노트패드 역시 이 표식을 추가하여 저장한다. 그 결과, 파일을 열어보면 이 표식은 보이지 않지만 실제로는 <?php 앞에 이 표식이 위치해 있는 셈이다.
이런 이유에서, 노트패드나 기타 편집기로 플러그인 파일을 utf-8로 저장하여 실행해 보면 어김없이 Headers already sent … 오류가 발생하게 된다. 이 오류가 발생하는 좀더 근본적인 이유는 PHP가 이 utf-8 BOM을 무시하지 않고 하나의 문자로 읽기 때문이다. 이 문제를 해결하려면 파일을 utf-8 형식으로 저장할 때 utf-8 BOM을 추가하지 말아야 한다. 그러나 노트패드는 파일을 utf-8 형식으로 저장할 때 무조건 BOM을 추가하므로 노트패드로는 해결 불가능하다.
그러나, 좀더 고급인 편집기에서는 “Unicode Signature(BOM) 추가 여부”를 옵션으로 설정할 수 있다. 주로 파일저장과 관련한 옵션에 이 설정항목이 있다. 대부분의 경우라면 기본값으로 Unicode Signature를 추가하도록 설정되어 있으므로 이를 변경해야 한다. 그리고 나서 파일을 utf-8 인코딩 형식으로 저장해야 한다.
나같은 경우에는 주로 EmEditor를 편집기로 사용하고 있는데, 이 편집기의 경우 Tools > Properties for All Configurations > File > Saving … > Add a Unicode Signature(BOM)의 체크를 해제하면 된다.
2006/04/12 1:14 오후 #1421polyglot.php 파일을 utf-8로 저장하실 때 유니코드 표식(BOM)을 함께 저장하면 위의 오류가 나타날 수 있습니다.
다음의 내용은 제 블로그에 썼던 내용인데 참고하시기 바랍니다:
Headers already sent … 오류의 해결
워드프레스 사용자들뿐만 아니라 다른 프로그램 사용자들도 자주 겪는 Headers already sent … 오류는 주로 플러그인 파일과 관련하여 발생한다. 이 오류가 발생할 경우에는 다음의 경우 중 어느 하나에 속한다:
1. 해당 플러그인 파일의 첫 문장은 <?php 로 시작할텐데, 이 <?php 앞에 공백을 두면 이 오류가 발생할 수 있다.
2. 해당 플러그인 파일의 마지막 문장은 ?> 로 끝날텐데, 이 ?> 뒤에 공백을 남기면 이 오류가 발생할 수 있다.
3. 해당 플러그인 파일을 저장할 때 노트패드나 편집기에서 utf-8 인코딩 형식으로 저장하면 이런 결과가 발생할 수 있다.위 사유들 중에서 utf-8로 저장한다고 해서 무조건 이 오류가 발생하는 것은 아니다. 대부분의 편집기는 파일을 utf-8 형식으로 저장할 때 그 파일이 유니코드로 인코딩되었음을 알리는 표식(Unicode Signature, 혹은 BOM이라고 함. utf-8 문서의 처음 2 bytes에 추가되는 0xFF 0xFE를 말함)을 문서의 맨 처음에 보이지 않게 추가한다. 노트패드 역시 이 표식을 추가하여 저장한다. 그 결과, 파일을 열어보면 이 표식은 보이지 않지만 실제로는 <?php 앞에 이 표식이 위치해 있는 셈이다.
이런 이유에서, 노트패드나 기타 편집기로 플러그인 파일을 utf-8로 저장하여 실행해 보면 어김없이 Headers already sent … 오류가 발생하게 된다. 이 오류가 발생하는 좀더 근본적인 이유는 PHP가 이 utf-8 BOM을 무시하지 않고 하나의 문자로 읽기 때문이다. 이 문제를 해결하려면 파일을 utf-8 형식으로 저장할 때 utf-8 BOM을 추가하지 말아야 한다. 그러나 노트패드는 파일을 utf-8 형식으로 저장할 때 무조건 BOM을 추가하므로 노트패드로는 해결 불가능하다.
그러나, 좀더 고급인 편집기에서는 “Unicode Signature(BOM) 추가 여부”를 옵션으로 설정할 수 있다. 주로 파일저장과 관련한 옵션에 이 설정항목이 있다. 대부분의 경우라면 기본값으로 Unicode Signature를 추가하도록 설정되어 있으므로 이를 변경해야 한다. 그리고 나서 파일을 utf-8 인코딩 형식으로 저장해야 한다.
나같은 경우에는 주로 EmEditor를 편집기로 사용하고 있는데, 이 편집기의 경우 Tools > Properties for All Configurations > File > Saving … > Add a Unicode Signature(BOM)의 체크를 해제하면 된다.
2006/04/12 10:17 오전 #1395iG_Syntax_Hiliter가 3.5로 버전업이 되면서 파일트리가 변경되었네요.
제가 사용하는 3.1 버전은 css 폴더가 별도로 없었는데,
그 이후에 css 폴더를 별도로 만들고 그 안에 css 파일을 넣어두었어요.그래서, larsulrich 님께서 사용하시는 버전에서는 syntax_hilite_css.css 파일을
/wp-content/plugins/ig_syntax_hilite/css/syntax_hilite_css.css 에 두셔야 합니다.님의 블로그로 가 보니까, 이 위치에 css 파일이 존재하지 않습니다.
파이어폭스의 Web Developer Toolbar를 이용해서
larsulrich 님의 블로그에 제가 말씀드린 코드를 적용해 보니까 잘 됩니다.2006/04/12 10:17 오전 #1385iG_Syntax_Hiliter가 3.5로 버전업이 되면서 파일트리가 변경되었네요.
제가 사용하는 3.1 버전은 css 폴더가 별도로 없었는데,
그 이후에 css 폴더를 별도로 만들고 그 안에 css 파일을 넣어두었어요.그래서, larsulrich 님께서 사용하시는 버전에서는 syntax_hilite_css.css 파일을
/wp-content/plugins/ig_syntax_hilite/css/syntax_hilite_css.css 에 두셔야 합니다.님의 블로그로 가 보니까, 이 위치에 css 파일이 존재하지 않습니다.
파이어폭스의 Web Developer Toolbar를 이용해서
larsulrich 님의 블로그에 제가 말씀드린 코드를 적용해 보니까 잘 됩니다.2006/04/11 1:49 오후 #1393ig_syntax_hilite/syntax_hilite_css.css 파일에서 .syntax_hilite 클래스의 overflow 속성으로 조정합니다. 가령 다음처럼요:
.syntax_hilite {
overflow: auto;
}
overflow의 속성들에 대해서는 W3C의 http://www.w3schools.com/css/pr_pos_overflow.asp를 참조하세요.
그리고 overflow의 속성과 연계된 것으로 white-space 속성이 있습니다. 이 속성도 아마 적절하게 설정하셔야 할 겁니다. 다음처럼요:
.syntax_hilite {
white-space: nowrap;
overflow: auto;
위의 CSS 설정 사항은 "한 줄의 코드가 길더라도 그 코드 줄을 접지 말고 주욱 펴되, 컨테이너(div, table 등)의 넓이를 초과하면 네비게이션 바를 자동으로 나타나게 하라"는 내용이 되겠습니다.
2006/04/11 1:49 오후 #1383ig_syntax_hilite/syntax_hilite_css.css 파일에서 .syntax_hilite 클래스의 overflow 속성으로 조정합니다. 가령 다음처럼요:
.syntax_hilite {
overflow: auto;
}
overflow의 속성들에 대해서는 W3C의 http://www.w3schools.com/css/pr_pos_overflow.asp를 참조하세요.
그리고 overflow의 속성과 연계된 것으로 white-space 속성이 있습니다. 이 속성도 아마 적절하게 설정하셔야 할 겁니다. 다음처럼요:
.syntax_hilite {
white-space: nowrap;
overflow: auto;
위의 CSS 설정 사항은 "한 줄의 코드가 길더라도 그 코드 줄을 접지 말고 주욱 펴되, 컨테이너(div, table 등)의 넓이를 초과하면 네비게이션 바를 자동으로 나타나게 하라"는 내용이 되겠습니다.
2006/03/23 2:03 오후 #965워드프레스 기본설정상
손 봐야 할(moderation) 답글을 쓴 사람은 그 답글을 볼 수 있습니다.
다만, 동일한 IP에서만 그 답글을 볼 수 있습니다.그리고 그 답글을 단 사람의 이름 옆에
Your comment is awaiting moderation
이라는 경고문이 함께 출력됩니다.
나머지 사람들은 이 경고문도 답글도 볼 수 없고요.
2006/03/23 2:03 오후 #973워드프레스 기본설정상
손 봐야 할(moderation) 답글을 쓴 사람은 그 답글을 볼 수 있습니다.
다만, 동일한 IP에서만 그 답글을 볼 수 있습니다.그리고 그 답글을 단 사람의 이름 옆에
Your comment is awaiting moderation
이라는 경고문이 함께 출력됩니다.
나머지 사람들은 이 경고문도 답글도 볼 수 없고요.
2006/03/22 3:57 오후 #1124이것을 원천적으로 수정하려면 워드프레스 내장함수의 정의를 수정해야 합니다.
이것은 현실적으로 어렵기 때문에 (복잡한 정규식을 알아야 하거든요) 임시방편으로
위와 같이 공백문자 를 추가하면서 줄바꿈을 하시면 됩니다. 위의 경우에는 모두 5줄이 줄바꿈이 됩니다. 혹은,
<p> </p>
<p> </p>
<p> </p>
위와 같은 식으로 해도 되고요. 결과는 동일합니다.
그런데, 다음처럼
로 쓴다면? 네, 3줄이 줄바꿈이 됩니다.
2006/03/22 3:57 오후 #1126이것을 원천적으로 수정하려면 워드프레스 내장함수의 정의를 수정해야 합니다.
이것은 현실적으로 어렵기 때문에 (복잡한 정규식을 알아야 하거든요) 임시방편으로
위와 같이 공백문자 를 추가하면서 줄바꿈을 하시면 됩니다. 위의 경우에는 모두 5줄이 줄바꿈이 됩니다. 혹은,
<p> </p>
<p> </p>
<p> </p>
위와 같은 식으로 해도 되고요. 결과는 동일합니다.
그런데, 다음처럼
로 쓴다면? 네, 3줄이 줄바꿈이 됩니다.
2006/03/15 10:23 오후 #1002Static Front Page 플러그인 때문에 그런 듯하군요.
저는 이 플러그인을 써보지는 않았지만,
이 플로그인은 블러그 홈(Front Page)을 디스플레이하는 index.php 파일을
다른 파일로 대체하는 것으로 알고 있습니다.아, 어려워라^^;;;
2006/03/15 10:23 오후 #1012Static Front Page 플러그인 때문에 그런 듯하군요.
저는 이 플러그인을 써보지는 않았지만,
이 플로그인은 블러그 홈(Front Page)을 디스플레이하는 index.php 파일을
다른 파일로 대체하는 것으로 알고 있습니다.아, 어려워라^^;;;
2006/03/15 12:22 오후 #1000님의 블로그 소스를 보면, 포스트 내용을 구성하는 소스는 다음과 같습니다.
<div class="post" id="post-258">
<h2>[Live]Always - Bonjovi</h2>
<div class="entrytext">
<p> 포스트 내용</p>
</div>
</div>
위의 코드에서 코멘트를 출력하는 소스가 없음을 알 수 있습니다. 원래는 <p>포스트 내용</p> 다음에 아래의 소스가 출력되어야 합니다.
<p class="postmetadata">Posted in Category | Edit | 0 Comment</p>
이 소스가 출력되지 않고 있는 이유는 앞글에서도 언급했다시피, 아래의 코드를 wp-content/themes/your theme/index.php 파일에서 삭제했기 때문입니다.
<p class="postmetadata">Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?> <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>
위의 소스를 템플릿 파일(테마파일) 폴더 내의 index.php에 추가하시기 바랍니다.
다시 한번 말씀드리지만, 님께서 현재 쓰고 있는 테마는 default 테마가 아니라, 님의 워드프레스타이틀 명의나 관리자 명의의 테마일 수 있습니다. 이럴 경우에는 wp-content/themes/default/index.php 파일을 수정하는 것이 아니라, wp-content/themes/your theme/index.php 파일을 수정하셔야 합니다.
2006/03/15 12:22 오후 #1010님의 블로그 소스를 보면, 포스트 내용을 구성하는 소스는 다음과 같습니다.
<div class="post" id="post-258">
<h2>[Live]Always - Bonjovi</h2>
<div class="entrytext">
<p> 포스트 내용</p>
</div>
</div>
위의 코드에서 코멘트를 출력하는 소스가 없음을 알 수 있습니다. 원래는 <p>포스트 내용</p> 다음에 아래의 소스가 출력되어야 합니다.
<p class="postmetadata">Posted in Category | Edit | 0 Comment</p>
이 소스가 출력되지 않고 있는 이유는 앞글에서도 언급했다시피, 아래의 코드를 wp-content/themes/your theme/index.php 파일에서 삭제했기 때문입니다.
<p class="postmetadata">Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?> <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>
위의 소스를 템플릿 파일(테마파일) 폴더 내의 index.php에 추가하시기 바랍니다.
다시 한번 말씀드리지만, 님께서 현재 쓰고 있는 테마는 default 테마가 아니라, 님의 워드프레스타이틀 명의나 관리자 명의의 테마일 수 있습니다. 이럴 경우에는 wp-content/themes/default/index.php 파일을 수정하는 것이 아니라, wp-content/themes/your theme/index.php 파일을 수정하셔야 합니다.
2006/03/14 10:29 오전 #998그럴리가요. 그림동화님 설명대로 뭔가가 빠져 있을 겁니다. 출력하고 싶으신 내용은 다음의 코드를 통해서 출력됩니다:
<p class="postmetadata">Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?> <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>
위 코드의 누락여부를 확인하시기 바랍니다. 위 코드가 있는데도 내용이 출력되지 않는다면 위 코드가 워드프레스 루프 안에 들어있는지 확인하시기 바랍니다. 즉,
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>. . .
<p class="postmetadata">Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?> <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>
. . .<?php endwhile; ?>
<?php endif; ?>
위와 같은 식으로 워드프레스 루프 구조 안에 해당 코드가 삽입되어 있어야 제대로 출력됩니다.
그리고, 아마도 님께서 쓰시는 테마는 default 테마가 아니라, 워드프레스 2.0+ 설치시 자동설정되는 님의 워드프레스 타이틀 명의의 테마일 수도 있습니다. 그럴 경우에는 default 테마가 아니라 님께서 현재 활성화하고 있는 테마의 파일을 수정하시기 바랍니다.
-
AuthorPosts