PHP cookie and dynamic insertion

3 replies
Hello,

I'm trying set cookies for dynamic features. I've been able to get the on page code right that allows me to insert all dynamic features using a custom url string.

i.e.
http://mysites.com/dynamicpage.php?RA_kw=Keyword-
keyword&RA_survey_id=survey_id&RA_id=123&RA_img=im gname

As long as ALL variables are present in the incoming url cookie for each variable sets fine. Upon return visits, user is shown all dynamic cookied features.

Problem 1: If ALL the php variables are NOT present in the url, cookie doesn't set on individual basis.

i.e.

http://mysites.com/dynamicpage.php?RA_kw=Keyword-keyword

Here's the php code:

PHP Code:
<?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
    
}
?>
#cookie #dynamic #insertion #php
  • Profile picture of the author Big Squid
    Not certain what you want to happen. The reason the variables are not being set is because you are referencing something that isn't there.

    How can the code $_GET['RA_kw'] from the url when it doesn't exist?
    {{ DiscussionBoard.errors[5987063].message }}
  • Profile picture of the author Earnie Boyd
    If the data is missing you will need a custom 404 page and let the user know the link cannot be processed as given.
    Signature
    {{ DiscussionBoard.errors[5988876].message }}
    • Profile picture of the author chinny
      I think we are missing the point. The problem is that it should set some of the variables if they exist.

      Try showing error/notices and put a die/exit to see the message. It maybe after checking one variable the code crashes.
      {{ DiscussionBoard.errors[6005589].message }}

Trending Topics