On Sun, Feb 07, 2010 at 11:20:18PM -0500, David Mehler wrote:

> Hello,
> I'm trying to set up a web site. This site has multiple stylesheets,
> one default stylesheet that should be used if the other is not chosen.
> The second is a high contrast stylesheet and can be selected by user's
> who need it. I'm also thinking of adding two more for smaller and
> larger font selections. My issue is I want the high contrast sheet to
> be used on all subsequent pages and on subsequent visits to the site
> by user's who have selected it. I thought of using php with this and
> cookies. I'm using php5 and would appreciate any suggestions, googling
> has shown some examples, but none are working.
> Thanks.
> Dave.

There are two main PHP-centric solutions to this. First is cookies (as
you described) and the second is using the $_SESSION global array.

Doing this is relatively straightforward, so if it's not working for
you, I see two possibilities: 1) You're not actually doing it right. 2)
The users isn't pressing the "Reload" button after selecting the
stylesheet. (My experience has been that simply redisplaying a page will
not clear the cached CSS styles for that page. You must hit the "Reload"
button. In fact, in some cases, like offices with caching webservers or
proxies, an admin will have to be called in to clear the cache on the
proxy/server as well.)

You should be able to do something like this (I'm using SESSION
variables because cookies are more complicated):

// Top of page

if ($_SESSION['stylesheet'] == 'enlarged_print')
        $css = 'enlarged_print.css';

<link href="<?php echo $css; ?>" rel="stylesheet" type="text/css"/>


Paul M. Foster

PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to