![]() |
|
|
| Subject:
PHP / Cookies
Category: Computers > Internet Asked by: trimidium-ga List Price: $3.00 |
Posted:
17 Apr 2004 04:30 PDT
Expires: 17 May 2004 04:30 PDT Question ID: 331648 |
Can Somebody rewrite my cookie script below to be simplier, so that
instead of me having to name all my objects image#.jpg i can simply
leave them with full length names and set the theme with the full
image name on the address line... example, currently:
index.php?setTheme=1 want:
index.php?setTheme=thenameof-image-whatever-it-may-be.gif
as an alternate i would be ok if i had to put a number before each
image, and still used the address line as setTheme=1 so long as i
could define completly different names with each image.
current script:
<?php
if (!empty($settheme)) {
$theme = $settheme;
setTheme();
} elseif (!empty($_COOKIE['theme'])) {
$theme = $_COOKIE['theme'];
} elseif (!empty($killcookie)) {
killCookie();
}
function setTheme() {
global $theme;
setcookie('theme',$theme,time()+2678500,'/','thesmartass.info');
}
function getTheme() {
global $theme;
$default_theme = "random.php?pic=random1";
$image_dir = "./images/artwork/"; // trailing slash is important.
$image_path = "images/artwork/"; // here too.
$image_prefix = "image";
$image_suffix = ".jpg";
if (!empty($theme)) {
$imagefile = $image_prefix.$theme.$image_suffix;
if (!file_exists($image_dir.$imagefile)) {
$imagefile = $default_theme;
}
} else {
$imagefile = $default_theme;
}
return $image_path.$imagefile;
}
function killCookie() {
setcookie('theme','',time()-2678500);
}
?> |
|
| There is no answer at this time. |
|
| Subject:
Re: PHP / Cookies
From: okrogius-ga on 18 Apr 2004 17:34 PDT |
Here you go. I also fixed up some security bugs, and made code more portable.
//allowed themes, for security purposes
$allowedThemes = array(
'1.jpg',
'whatever.gif'
);
//remove cookie function
function killThemeCokie() {
setcookie('theme', '', time()-36000, '/' ,'thesmartass.info');
header('Location: '.$_SERVER['PHP_SELF']);
die();
}
//set cookie functiom
function setThemeCookie($name) {
setcookie('theme', $name, time()+2678500, '/', 'thesmartass.info');
header('Location: '.$_SERVER['PHP_SELF']);
die();
}
//do anything?
if ( !empty($_GET['killcookie']) ) {
killCookie();
} elseif ( !empty($_GET['settheme']) && in_array($_GET['settheme',
$allowedThemes) ) {
setThemeCookie($_GET['settheme']);
}
//what theme to use?
if ( !empty($_COOKIE['theme']) && in_array($_COOKIE['theme'],
$allowedThemes) && file_exists('./images/artwork/'.$_COOKIE['theme'])
) {
$theme = 'images/artwork/'.$_COOKIE['theme']; //cokie
} else {
$theme = 'random.php?pic=random1'; //default
}
Note that you need to udpate $allowedThemes with a list of all allowed
themes for purposes of security. |
| Subject:
Re: PHP / Cookies
From: trimidium-ga on 18 Apr 2004 21:34 PDT |
It doesn't work... 1) what is the call function before it was getTheme(); you eliminated that function 2) there are errors on the script that keep it from even masking the code on a website... i set it up as an include on this page: http://www.thesmartass.info/delete.php see for yourself, then go http://www.thesmartass.info/ to get the idea of what i want it to ultimately do, i will need to make 2 different cookie scripts to set 2 different images as backgrounds for the website, they are currently both set to random |
If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you. |
| Search Google Answers for |
| Google Home - Answers FAQ - Terms of Service - Privacy Policy |