죽고 싶어.. 쿠키는 왜 이렇게 어렵졍? (첫번째 질문) > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

죽고 싶어.. 쿠키는 왜 이렇게 어렵졍? (첫번째 질문) 정보

죽고 싶어.. 쿠키는 왜 이렇게 어렵졍? (첫번째 질문)

본문

(조기 아래, 질문 소스 있는 곳까진 세가지 질문의 상단내용이 같아요. 원하는 건 한가지인데 이것저것 다 안돼서 세가지를 각각 공부 중이란 뜻이예요. ^^)
 
공부중이거든요.. 여러번 질문 했었는데 아직도 해결 못 했어요.
 
저는 php의 SetCookie(); 명령을 이용해서 검색시 입력된 단어를 쿠키로 구워서 사용해 왔거든요... 다른 페이지에서도 불러다 쓸려구요...
 
그런데 php로 쿠키를 구우니 나쁜 점은,
쿠키를 굽고 바로 쓸 수가 없어서 여러번 다른 페이지로 넘겨야 한다는 거죠.
이래서 아래의 순서처럼 정신없이 사용하고 있어요.
<이렇게....
A페이지에서 검색어를 입력했을 때 action=" "으로 B페이지로 넘기고 이때 B페이지에서 쿠키를 구운 다음에 C페이지로 보내고,
C페이지에서 그 쿠키값으로 처리를 하면 location.href=" "로 D페이지에서 결과페이지가 나오죠.>
 
이거 너무 정신 없어서 지금은 A페이지에서 바로 쿠키 굽고 바로 C페이지에서 처리한 후 D로 가도록 하고 싶은데요...
그래서 세가지를 해 봤어요.
 
 
지금부터 첫번째 질문 -------------------------------------------------------
 
 
자바스크립트로 쿠키를 구우면 php처럼 꼭 리로딩 하지 않아도 된다고 해서 해 본 거거든요...
자바스크립트로 구운 쿠키의 값을 php에서 불러 올 수 있는 거 맞죠?
 
<head>에서
<script language='Javascript'>
    var f = document.searchform;
    function search_check(f)
    {
  var svalue;
  svalue=searchform.input.value;
SetCookie('searchtxt', svalue);
            }
        return true;
    }
</script>                                     <= 자바스크립트를 잘 몰라서 소스가 조잡해요..^^;;
이렇게 했어요.
 
그리고 폼에서
<form name=searchform method=post action='../search/search.php' enctype='multipart/form-data' onsubmit='return search_check(this);'>
<input type=text name=input>
<input name=btnsubmit type=image src='../images/ok.gif' class='linkover' alt='확인' border=0>
</form>
이렇게 하고요,
 
처리하는 C페이지에서는 쿠키값을 이렇게 받죠....
<?
echo ("<script> location.href = \"./search.php?kword=$HTTP_COOKIE_VARS[searchtxt]\" </script>") ;
?>
 
 
고수님들, 제가 무얼 잘못한 걸까요?
이것저것 해보고, 많은 시간을 찾아 헤맸는데 배울 수가 없네요.
도움 부탁드려요...ㅜ.ㅜ
 
  • 복사

댓글 전체

php(서버)에서는 header를 통해서 쿠키를 구으라고 브라우저에게 보냅니다.

php로 구울 때는 php 스크립트 실행 순서에서 가장 위에 있어야 합니다.


SetCookie('searchtxt', svalue); 이것이 자바스크립트 함수인지 모르겠네요.
http://blog.naver.com/espreson?Redirect=Log&logNo=120015201170
에서 있는 것처럼 만든 것 같긴한데.......

그리고 쿠키를 구울 때 경로에 유의하세요. 경로가 다르면 브라우저는 쿠키를 전달하지 않습니다.
어떤책에서 발췌한것입니다.^^

쿠키(Cookie)를 사용해 보자

setcookie(이름, 값, 폐기시간, 경로, 도메인, 보안)

이름 : 쿠키의 이름을 말합니다.
값    : 쿠키의 값을 말합니다.
폐기시간 : 쿠키의 폐기시간을 말합니다.

뒤의 3가지 인수(경로, 도메인, 보안)는 생략이 가능하며 많이 사용되지 않습니다.


실제적인예

<? setcookie("imjoon","goodman"); ?>

여기서 imjoon은 쿠키이름이고, goodman은 쿠키값입니다. php에서는 변수이름 앞에 $를 붙이지만
쿠키변수는 예외로 $를 붙이지 않습니다.

위 내용을 cookie.php 라는 이름으로 웹에 저장한뒤 불러오면 쿠키이름이 imjoon이고 값이 goodman인
쿠키(파일)가 사용자 컴퓨터의 [temporary internet Files]폴더에 생겼습니다.

그러나 확인해 보면 쿠키파일이 보이지 않습니다.
세번째 인수인 "폐기시간"을 입력하지 않았기 때문입니다.

이런경우는 쿠키가 파일로 저장되지 않고, 메모리에 남아있다가 브라우저가 종료될때 사라지기 때문입니다.

그러므로 cookie.php파일을 열고 '폐기시간'을 time() +60 로 추가한 후 다시 저장하도록 합니다.

<? setcookie("imjoon","goodman", time() +60); ?>

다시 실행해본뒤 확인하면 쿠키가 있을것입니다.
내용을 보면 알수없는 번호들이 쫙 나와있고 맨앞에 보면 imjoon 과 goodman 도 나와 있습니다.


그다음 이 쿠키파일에 심어져 있는 값을 읽어오는 것은

단순히 echo $imjoon 을 수행하여 읽어 올 수도 있지만, 일반변수와 혼동 될수도 있으므로 환경변수인
HTTP_COOKIE_VARS[쿠키이름]을 사용하게 됩니다.

<? echo $HTTP_COOKIE_VARS[imjoon]; ?>을 작성한 뒤

맨위의 파일을 실행하고 1분이 지나기전에 실행시키면 쿠키값인 goodman이 화면에 출력될것입니다.

더 자세한 내용은 책을 보세요....^^
© SIRSOFT
현재 페이지 제일 처음으로