2012-03-09 3 views
0

동적 기능을 위해 쿠키를 설정하려고합니다. 나는 사용자 정의 URL 문자열을 사용하여 모든 동적 기능을 삽입 할 수 있도록 페이지 코드를 올바르게 가져올 수있었습니다.PHP 쿠키 및 동적 삽입 문제

http://mysite.com/dynamicpage.php?RA_kw=Keyword- 
keyword&RA_survey_id=survey_id&RA_id=123&RA_img=imgname 

은 긴 ALL 변수 수신 URL에 존재하는 바와 같이, 각각의 변수에 대한 쿠키를 잘 설정한다. 재 방문시, 사용자는 모든 동적 쿠키 기능을 표시합니다. 좋은.

문제점 : 모든 PHP 변수가 URL에 존재하지 않으면 쿠키가 개별적으로 설정되지 않습니다.

<?php 
/*kw = (Keywords) 
survey_id=survey_id (this variable doesn't change) 
id= (survey number id) 
img = (name of image to be pulled from php include.)*/ 

$kw = null; 
$survey_id = null; 
$id = null; 
$img = null; 

if (isset($_COOKIE['RA_kw']) 
    && isset($_COOKIE['RA_survey_id']) 
    && isset($_COOKIE['RA_id']) 
    && isset($_COOKIE['RA_img'])) 
{ 
    //if cookie variables are already set 

    //To Do Here: maybe redirect 
    $kw = $_COOKIE['RA_kw']; 
    $survey_id = $_COOKIE['RA_survey_id']; 
    $id = $_COOKIE['RA_id']; 
    $img = $_COOKIE['RA_img']; 
    $_GET['RA_kw'] = $kw; 
    $_GET['RA_survey_id'] = $survey_id; 
    $_GET['RA_id'] = $id; 
    $_GET['RA_img'] = $img; 
} 
else 
{ 
    //if cookie varialbes are not set yet 

    //set Cookies 
    if (isset($_GET['RA_kw'])){ 
     //kw parameter is set 
     setcookie('RA_kw', $_GET['RA_kw'], time() + 60*60*24*30); //expires in 30 days. 
     $kw = $_GET['RA_kw']; 
    } 
    if (isset($_GET['RA_survey_id'])){ 
     //survey_id parameter is set 
     setcookie('RA_survey_id', $_GET['RA_survey_id'], time() + 60*60*24*30); //expires in 30 days. 
     $survey_id = $_GET['RA_survey_id']; 
    } 
    if (isset($_GET['RA_id'])){ 
     //id parameter is set 
     setcookie('RA_id', $_GET['RA_id'], time() + 60*60*24*30); //expires in 30 days. 
     $id = $_GET['RA_id']; 
    } 
    if (isset($_GET['RA_img'])){ 
     //img parameter is set 
     setcookie('RA_img', $_GET['RA_img'], time() + 60*60*24*30); //expires in 30 days. 
     $img = $_GET['RA_img']; 
    } 

    //To Do Here: default page 
} 
?> 
+0

만큼 여기 즉

http://mysite.com/dynamicpage.php?RA_kw=Keyword-keyword http://mysite.com/dynamicpage.php?RA_id=123 

은 PHP 코드의 @ user973254가 옳다면 변수를 정의하기 전에 각각의 '쿠키'조건을 확인해야합니다. $ _COOKIE [ 'RA_ID']'가 정해진 것이 아니라면'$ id = $ _COOKIE [ 'RA_ID'];'를 실행하는 것은 "훌륭합니다". –

답변

2

변경이 : 이것

if (isset($_COOKIE['RA_kw']) 
    && isset($_COOKIE['RA_survey_id']) 
    && isset($_COOKIE['RA_id']) 
    && isset($_COOKIE['RA_img'])) 

:

if (isset($_COOKIE['RA_kw']) 
    || isset($_COOKIE['RA_survey_id']) 
    || isset($_COOKIE['RA_id']) 
    || isset($_COOKIE['RA_img'])) 
+0

고마워요, 그 속임수를했습니다. 이 문제가 해결 된 또 다른 문제는 내가 생각하지 못했던 것입니다. 방문을 다시 방문하십시오. 사용자가 다른 동적 URL을 통해 반환하는 경우 어떻게 이전의 쿠키 변수를 덮어 씁니까? 즉 dynamicpage.php? RA_kw = 키워드 dynamicpage.php? RA_kw = New0Keyword 또는 dynamicpage.php? RA_id = 123 dynamicpage.php? RA_id = 당신이 경우, 이전 및 새 값을 비교해야 할 129 – Jay

+0

그들은 다릅니다 - var 값을 변경하십시오. – user973254

+0

감사합니다. @ user973254 - 배열을 어떻게 처리할까요? – Jay