죽고 싶어.. 쿠키는 왜 이렇게 어렵졍? (첫번째 질문) 정보
죽고 싶어.. 쿠키는 왜 이렇게 어렵졍? (첫번째 질문)
본문
(조기 아래, 질문 소스 있는 곳까진 세가지 질문의 상단내용이 같아요. 원하는 건 한가지인데 이것저것 다 안돼서 세가지를 각각 공부 중이란 뜻이예요. ^^)
공부중이거든요.. 여러번 질문 했었는데 아직도 해결 못 했어요.
저는 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;
var f = document.searchform;
function search_check(f)
{
var svalue;
svalue=searchform.input.value;
SetCookie('searchtxt', svalue);
}
return true;
}
</script> <= 자바스크립트를 잘 몰라서 소스가 조잡해요..^^;;
{
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>
<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>") ;
?>
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
에서 있는 것처럼 만든 것 같긴한데.......
그리고 쿠키를 구울 때 경로에 유의하세요. 경로가 다르면 브라우저는 쿠키를 전달하지 않습니다.
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이 화면에 출력될것입니다.
더 자세한 내용은 책을 보세요....^^
쿠키(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이 화면에 출력될것입니다.
더 자세한 내용은 책을 보세요....^^
답변 감사합니다.
한번 시도해 볼께요. 고맙습니다~~!!
한번 시도해 볼께요. 고맙습니다~~!!