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          
76761 Visitors up to today!
Today 51 hit, Yesterday 73 hit
[폭주기관차, 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
Name
Password
Homepage
Secret
[폭주기관차, 2008/10/08 14:25, [Operating System]/Linux / Unix]

리눅스에서 하위 디렉토리까지 전체를 압축하고 싶을때가 있을 것이다.
그것도 권한까지 모두 포함해서!!!

사실 아주 간단하다 압축할때 옵션으로 'c'만 더 추가하면 된다.

즉,

[압축]
tar cvfzp filename.tar.gz public_html/

이렇게 하면 public_html 폴더 하위는 전체 압축(권한 포함) 된다.

이제 압축을 했으니 해제도 해야겠다.

[압축풀기]
tar xvfzp filename.tar.gz public_html/

이렇게 하면 public_html 폴더 안에 압축이 쫘악 풀리게 된다.
권한도 포함해서!!

Trackback Address :: http://kongmks.cafe24.com/trackback/300
Name
Password
Homepage
Secret
[폭주기관차, 2008/09/08 13:39, [Interest]/오늘을 살아가는 나...]
물감을 아끼면 그림을 못 그리듯

           꿈을 아끼면 성공을 그리지 못한다.



신문에서 우연히 보고 마음에 들어서 옮겨 적어봄
Trackback Address :: http://kongmks.cafe24.com/trackback/299
| 2008/09/18 16:29 | PERMALINK | EDIT/DEL | REPLY
관리자만 볼 수 있는 댓글입니다.
^_^ | 2009/01/09 21:25 | PERMALINK | EDIT/DEL | REPLY
정말 오랬만에 오게 되었네요. 저에게 지금 필요한 말이네요..
조금 늦었지만 폭주기관차님 새해 복 많이 받으세요. ^^
Name
Password
Homepage
Secret
[폭주기관차, 2008/09/01 09:17, [Interest]/오늘을 살아가는 나...]

꿈에 그리던 VIP

옥션 이용한지 어언 6년째 되어간다..

사용자 삽입 이미지

옥션 등급은 이렇게 있다.



도달할 수 없을거라 생각했지만 그동안 친구들에게 강매하고
제발 함 도와달라고 애걸복걸해서 전부 내 아이디로 구매하게끔한 결과 드디어 VIP에 도달~~~ ㅋㅋ

사용자 삽입 이미지

옥션 VIP 모습


정말 다시 이런 등급에 도달할 수 있을까 모르겠네 ㅋㅋㅋ
Trackback Address :: http://kongmks.cafe24.com/trackback/298
Name
Password
Homepage
Secret
[폭주기관차, 2008/08/26 11:26, [Programming]/PHP]
SQL 자체에서도 날짜 계산이 가능하지만
간단하게 PHP안에서 날짜 계산하는 방법

date.php파일에 아래의 코드를 삽입해보자

echo "오늘로부터 1년뒤 : ".date('Y-m-d',strtotime("+1 year"));
echo "오늘로부터 1달뒤 : ".date('Y-m-d',strtotime("+1 month"));
echo "오늘로부터 1일뒤 : ".date('Y-m-d',strtotime("+1 day"));


아주 간단하다 ㅋㅋ

참고 : PHP 스쿨의 그마음만은한결같기를...♡님의 답변

Trackback Address :: http://kongmks.cafe24.com/trackback/297
Name
Password
Homepage
Secret
[폭주기관차, 2008/08/13 15:38, [Programming]/PHP]

웹프로그램인 PHP개발로 접어든지 벌써 6개월정도 되어간다.

일반 응용 프로그램을 만들던 시절에만 해도 아주 어렵게 생각했던 엑셀파일로
저장하는 게 PHP에서는 의외로 간단하게 할 수 있다는 것을 알았다.

간단하게 예를 들어서

a  |  b  |  sum
----------------
1  |  2  |  3
2  |  4  |  6
3  |  5  |  8

이런 테이블이 있다고 하면 이 것을 엑셀로 저장하는 PHP 코드는 아래와 같다.

<?
header( "Content-type: application/vnd.ms-excel" );
header( "Content-Disposition: attachment; filename=test.xls" );
header( "Content-Description: PHP4 Generated Data" );

$a   = array("1","2","3");
$b   = array("2","4","5");
$sum = array("3","6","8");

echo "
    <table>
    <tr>
        <td>a</td>
        <td>b</td>
        <td>sum</td>
    </tr>
    "
;

for($i=0; $i<3; $i++) {
        echo "<tr><td>$a[$i]</td><td>$b[$i]</td><td>$sum[$i]</td></tr>";
}

echo "
    </table>
    "
;
?>

위의 코드를 test.php로 저장한 후 한번 실행해보라.
바로 xls파일로 만들준다. 그리고 저장할꺼냐고 물어본다.
열어보면 열린다.

오호 신기하다. 거럼 이제 mySQL같은 DB에 저장되어있는것도
엑셀로 바꿀 수 있겠죠??? ㅋㅋ

참, 참고로 엑셀로 저장될 파일명은 두번째 header지정하는 부분에 filename=요부분에서 설정해주면된다~

출처 : 네이버 지식iN crackerx님의 답변
Trackback Address :: http://kongmks.cafe24.com/trackback/296
Name
Password
Homepage
Secret
[폭주기관차, 2008/07/02 14:35, [Programming]/JavaScript]
홈페이지를 보면 두개의 이미지가 부드럽게 바뀌는 것을 자주 볼 게 된다.

엄청 어려운 기술로만 생각을 했는데 자바스크립트에서 단 몇 줄만 넣으면
부드럽게 바뀌는 이미지가 만들어진다는 것에 난 당혹감을 감추지 못하였다.....;; 헐;;

소스코드는 아래와 같다.

<html>
<head>
<script>
function startTrans(){
    faceoff.filters.blendTrans.Apply();
    faceoff.src="face_2.gif"
    faceoff.filters.blendTrans.play();
}
</script>
</head>

<body onLoad=startTrans()>
잠시 기다리시면...<br>
효과를 보실수 있습니다. 잠시만 기다려 주세요.<br>
<img src="face_1.gif" id=faceoff style="filter:blendTrans(duration=10)">
</body>
</html>


첨부된 아래의 예제 파일을 받고 실행 해보라... 놀랍다.

script183.zip

스무스 이미지 변경 예제



간단하게 소수 분석을 하자면 IMG 태그에서 style옵션에 duration=10은 10초동안
두개의 이미지가 변경되는 것을 의미하는 것이다.

    faceoff.filters.blendTrans.Apply();

    
은 현재 faceoff라는 IMG에 있는 이미지를 고정시키고 있다가

    faceoff.src="face_2.gif"

    
이미지를 face_2.gif로 변경하고

    faceoff.filters.blendTrans.play();

    
이제 Apply함수 수행했을때 이미지랑 최근에 바뀐 이미지로 변환하는 것을
시작하라(play)는 명령이다.    

이런 좋은 소스를 무료로 제공해주신 분께 최소한의 예의로 아래에 출처와
소스코드의 변수명을 변경하지 않고 그대로 올렸습니다~

출처 : http://cbkim.wkhc.ac.kr/
        며루치님의 블로그글

Trackback Address :: http://kongmks.cafe24.com/trackback/295
Name
Password
Homepage
Secret
*1 *2 *3 *4 *5 ... *40