RE: [phplib] Secure File Downloads From: layne <email protected>
Date: 09/19/00

> I need to change the headers that are sent based on the brower and I
> have found, again from the archives, a site the javascript code to
> detect the various browsers. How do I use javascript (which I have
> never used) to control what headers PHPLIB sends?

You could use the javascript to print out links with the browser code
(download.php?browser=ms4) and then send the headers based on a get var, but
I'm not sure that's the best idea. I would suggest querying the USER_AGENT
string on your own. Enclosed is a script I found a year ago that does a few
checks on HTTP_USER_AGENT.

Layne Weathers
Lead Programmer
Ifworld, Inc.

-----------

<?
         /***************************************************************/
         /*Code: PHP 2 */
         /*Author: Leon Atkinson <leon <email protected>> */
         /***************************************************************/

         /* Get the name the browser calls itself and what version */
        $Browser_Name = strtok($HTTP_USER_AGENT, "/");
        $Browser_Version = strtok( " ");

         /* MSIE lies about its name */
        if(ereg( "MSIE", $HTTP_USER_AGENT))

                $Browser_Name = "MSIE";
                $Browser_Version = strtok( "MSIE");
                $Browser_Version = strtok( " ");
                $Browser_Version = strtok( ";");
        }

         /* Opera isn't completely honest, either ... */
         /* Modificaton by Chris Mospaw <mospaw <email protected>> */
        if(ereg( "Opera", $HTTP_USER_AGENT))

                $Browser_Name = "Opera";
                $Browser_Version = strtok( "Opera");
                $Browser_Version = strtok( "/");
                $Browser_Version = strtok( ";");
        }

         /* try to figure out what platform, windows or mac */
        $Browser_Platform = "unknown";
        if(ereg( "Windows",$HTTP_USER_AGENT) ||
                ereg( "WinNT",$HTTP_USER_AGENT) ||
                ereg( "Win95",$HTTP_USER_AGENT))

                $Browser_Platform = "Windows";
        }

        if(ereg( "Mac", $HTTP_USER_AGENT))

                $Browser_Platform = "Macintosh";
        }

         /* set the JavaScript and CSS properties */

         /* JavaScriptOK means that the browser understands JavaScript on */
         /* the same level the Navigator 3 does. Most importantly, it can use */
         /* named images. If a browser doesn't do this (Nav 2 or MSIE 3), then */
         /* we just assume it can't do any JavaScript. Referencing images by */
         /* load order is too hard to maintain. */

         /* CSSOK is kind of sketchy in that Nav 4 and MSIE work differently, */
         /* but they do seem to have most of the functionality. MSIE 4 for the */
         /* Mac has buggy CSS support, so we let it do JavaScript, but no CSS. */

         /* Support for UNIX browser could be useful. */

        $Browser_JavaScriptOK = 0;
        $Browser_CSSOK = 0;

        if(($Browser_Platform == "Windows"))

                if($Browser_Name == "Mozilla")

                        if($Browser_Version >= 3.0)

                                $Browser_JavaScriptOK = 1;
                        }
                        if($Browser_Version >= 4.0)

                                $Browser_CSSOK = 1;
                        }
                }
                else /* must be MSIE */

                        if($Browser_Version >= 4.0)

                                $Browser_JavaScriptOK = 1;
                                $Browser_CSSOK = 1;
                        }
                }
        }
        else /* must be mac */

                if($Browser_Name == "Mozilla")

                        if($Browser_Version >= 3.0)

                                $Browser_JavaScriptOK = 1;
                        }
                        if($Browser_Version >= 4.0)

                                $Browser_CSSOK = 1;
                        }
                }
                else /* must be MSIE */

                        if($Browser_Version >= 4.0)

                                $Browser_JavaScriptOK = 1;
                        }
                }
        }
?>

---------------------------------------------------------------------
To unsubscribe, e-mail: phplib-unsubscribe <email protected>
For additional commands, e-mail: phplib-help <email protected>