묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
자바스크립트 함수 호출하여 PHP로 쿠키를 구울때.. 가능하지...
2003.02.24 14:33
자바스트립트와 PHP를 같이 사용하여 쿠키를 구울려고 합니다..
팝업이 뜨는 페이지인데.. 처음 쿠키를 굽는거는 웹브라우저를 닫았을경우
쿠키가 삭제 되는거구요..
팝업창에서 하루동안 페이지를열지 않기를 클릭했을때
현재 페이지 가장 아래부분처럼 쿠키를 굽게 됩니다..
이것처럼 자바스크립트 함수를 호출하여 PHP로 쿠키를 사용할수 있는지..
고수님들 답변 부탁 드립니다.
현재 상태는 자바스크립트 안에 쿠키가 함수 자바스크립트 함수 호출도 않했는데
그냥 구워집니다.
문제 해결좀 부탁 드립니다...
--------------------- 팝업을 불러오는 페이지 ------------------------
<?
########### 전체팝업관리 ###########
ob_start(); // 쿠키생성시 에러나오지 않게함..
$Popup_Url = "http://localhost/test/popup.html"; // 팝업페이지 경로
$Width = "400"; // 팝업의 넓이
$Height = "500"; // 팝업의 높이
$Top = "50"; // 팝업상단위치
$Left = "50"; // 팝업왼쪽위치
$Scrollbars = "no"; // 스크롤바 유무
$PopStart_year = "2003"; // 팝업실행년도
$PopStart_month = "2"; // 팝업실행월
$PopStart_day = "10"; // 팝업실행일
$PopEnd_year = "2003"; // 팝업종료년도
$PopEnd_month = "2"; // 팝업종료월
$PopEnd_day = "25"; // 팝업종료일
// 팝업시작시간과 끝나는 시간을 mktime함수로 정의
$PopStart_date = mktime(0,0,0,$PopStart_month,$PopStart_day,$PopStart_year); // 시작시간
$PopEnd_date = mktime(23,59,59,$PopEnd_month,$PopEnd_day,$PopEnd_year); // 끝나는 시간
$PopThis_date = time(); // 현재시간
$PopLife_time = 3600; // 일정시간동안 팝업 열지 않는 시간
$Popup_date=date("Ymd"); // 쿠키변수명
// 팝업이 오는가 확인
if($PopStart_date < $PopThis_date && $PopEnd_date > $PopThis_date){
// 현재페이지에 처음 연경우 파일을 연경우 팝업을 띄우고 쿠키를 군다
if(!$PopUp_Check){
echo ("
<SCRIPT LANGUAGE='JavaScript'>
window.open('$Popup_Url','','width=$Width, height=$Height, toolbar=no, resizeable=no, scrolling=no, scrollbars=$Scrollbars, top=$Top, left=$Left');
</SCRIPT>
");
setcookie("PopUp_Check",$Popup_date,0); // 다시 현재페이지로 돌아왔을때 팝업이 다시 열리지 않도록 쿠키를 군다
}
}
// "일정시간 팝업을 열지 않음" 을 클릭 하였을경우
echo (" <SCRIPT LANGUAGE='JavaScript'> function Today_nopopup(){ ");
setcookie('PopUp_Check',$Popup_date,$PopThis_date+$PopLife_time);
echo (" }</SCRIPT>");
?>
------------------------ 팝업페이지 ------------------------
오늘은 현재페이지 열지 않기<input type="checkbox" onclick="javascript:opener.Today_nopopup(); self.close();">
팝업이 뜨는 페이지인데.. 처음 쿠키를 굽는거는 웹브라우저를 닫았을경우
쿠키가 삭제 되는거구요..
팝업창에서 하루동안 페이지를열지 않기를 클릭했을때
현재 페이지 가장 아래부분처럼 쿠키를 굽게 됩니다..
이것처럼 자바스크립트 함수를 호출하여 PHP로 쿠키를 사용할수 있는지..
고수님들 답변 부탁 드립니다.
현재 상태는 자바스크립트 안에 쿠키가 함수 자바스크립트 함수 호출도 않했는데
그냥 구워집니다.
문제 해결좀 부탁 드립니다...
--------------------- 팝업을 불러오는 페이지 ------------------------
<?
########### 전체팝업관리 ###########
ob_start(); // 쿠키생성시 에러나오지 않게함..
$Popup_Url = "http://localhost/test/popup.html"; // 팝업페이지 경로
$Width = "400"; // 팝업의 넓이
$Height = "500"; // 팝업의 높이
$Top = "50"; // 팝업상단위치
$Left = "50"; // 팝업왼쪽위치
$Scrollbars = "no"; // 스크롤바 유무
$PopStart_year = "2003"; // 팝업실행년도
$PopStart_month = "2"; // 팝업실행월
$PopStart_day = "10"; // 팝업실행일
$PopEnd_year = "2003"; // 팝업종료년도
$PopEnd_month = "2"; // 팝업종료월
$PopEnd_day = "25"; // 팝업종료일
// 팝업시작시간과 끝나는 시간을 mktime함수로 정의
$PopStart_date = mktime(0,0,0,$PopStart_month,$PopStart_day,$PopStart_year); // 시작시간
$PopEnd_date = mktime(23,59,59,$PopEnd_month,$PopEnd_day,$PopEnd_year); // 끝나는 시간
$PopThis_date = time(); // 현재시간
$PopLife_time = 3600; // 일정시간동안 팝업 열지 않는 시간
$Popup_date=date("Ymd"); // 쿠키변수명
// 팝업이 오는가 확인
if($PopStart_date < $PopThis_date && $PopEnd_date > $PopThis_date){
// 현재페이지에 처음 연경우 파일을 연경우 팝업을 띄우고 쿠키를 군다
if(!$PopUp_Check){
echo ("
<SCRIPT LANGUAGE='JavaScript'>
window.open('$Popup_Url','','width=$Width, height=$Height, toolbar=no, resizeable=no, scrolling=no, scrollbars=$Scrollbars, top=$Top, left=$Left');
</SCRIPT>
");
setcookie("PopUp_Check",$Popup_date,0); // 다시 현재페이지로 돌아왔을때 팝업이 다시 열리지 않도록 쿠키를 군다
}
}
// "일정시간 팝업을 열지 않음" 을 클릭 하였을경우
echo (" <SCRIPT LANGUAGE='JavaScript'> function Today_nopopup(){ ");
setcookie('PopUp_Check',$Popup_date,$PopThis_date+$PopLife_time);
echo (" }</SCRIPT>");
?>
------------------------ 팝업페이지 ------------------------
오늘은 현재페이지 열지 않기<input type="checkbox" onclick="javascript:opener.Today_nopopup(); self.close();">
echo (" <SCRIPT LANGUAGE='JavaScript'> function Today_nopopup(){ ");
setcookie('PopUp_Check',$Popup_date,$PopThis_date+$PopLife_time);
echo (" }</SCRIPT>");
이부분이 아예 잘못되었습니다.
체크 이벤트로 쿠키가 구워지게 하려고 하신것 같은데 저런식으로 사용은 완전히 불가능합니다;;
소스보기를 하면 알수있듯이 HTML로는
<SCRIPT LANGUAGE='JavaScript'> function Today_nopopup(){ "); }</SCRIPT>
이것만 나오고, setcookie는 완전히 별도로 작동하는겁니다.
// "일정시간 팝업을 열지 않음" 을 클릭 하였을경우
echo (" <SCRIPT LANGUAGE='JavaScript'> function Today_nopopup(){ ");
echo (" }</SCRIPT>");
setcookie('PopUp_Check',$Popup_date,$PopThis_date+$PopLife_time);
이것과 매한가지죠.
체크하면 바로 쿠키를 굽고싶을때는 자바스크립트로 쿠키를 다뤄줘야 합니다.
자바스크립트 강의 게시판에서 쿠키로 검색하시면 방법이 나올겁니다.
조언 하나 드리자면, 그 문제를 해결해도 저 방법은 바람직하지 못합니다..
체크만 하면 쿠키가 생성되므로, 체크했다가 나중에 체크를 지워도 쿠키는 이미 생성되버리니까요.
그래서 "닫기"버튼을 클릭했을때 체크여부를 확인해서 쿠키를 굽거나 "페이지 열지 않기"를 아예 체크 대신 창닫기까지 겸용으로 사용하는것이 일반적입니다.