/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Browsercheck spørgsmål
Fra : Mads Pedersen


Dato : 16-06-02 13:35

Hejsa,

Jeg har en hjemmeside hvor det (desværre) er nødvendigt at holde folk med
nogle browsertyper ude. Flg. som includes i alle filer:

<?php
$browser = "bad";
if (eregi("msie 5", $HTTP_USER_AGENT)) {
$browser = "ok";
} elseif (eregi("msie 6", $HTTP_USER_AGENT)) {
$browser = "ok";
}
if (eregi("netscape6", $HTTP_USER_AGENT)) {
$browser = "ok";
}
if (eregi("mozilla/5", $HTTP_USER_AGENT)) {
$browser = "ok";
}
if (eregi("opera", $HTTP_USER_AGENT)) {
$browser = "bad";
}
if (($browser=="bad") AND ($badbrowser != "ignore")) {
if ($function=="setcookie") {
$value = "ignore";
header("Set-Cookie: badbrowser=$value; expires=Friday, 16-Jan-2037
00:00:00 GMT; path=/;");
header("Location: $referer");
} else {
[...]

Her er den side som vises når der bruges en gal browser. Det er bla.
dette link: $PHP_SELF?function=setcookie&referer=".urlencode($REQUEST_URI)
som skal give besøgende mulighed for at prøve at køre sitet alligevel
(sætter en cookie med værdien ignore).

[...]
exit();
}
}
?>

Det virker egl. helt efter hensigten, men jeg tror der er et problem. Hvis
man bruger en browser som ikke står på listen udskrives advarselssiden
efterfulgt af et exit(); for at den side hvorfra checkbrowser scriptet
inkluderes ikke vises bagefter.

Så vidt jeg kan regne ud betyder denne fremgangsmåde imidlertid at f.eks.
søgemaskiner som vil indeksere siden løber panden mod muren og kun ser
fejlsiden.

Er løsningen at lave en liste of over alle de browsere som man IKKE vil give
adgang eller er der en smartere måde at gøre det på?

// Mads


 
 
Peter Brodersen (16-06-2002)
Kommentar
Fra : Peter Brodersen


Dato : 16-06-02 16:00

On Sun, 16 Jun 2002 14:34:38 +0200, Mads Pedersen <mads@imv.au.dk>
wrote:

> header("Set-Cookie: badbrowser=$value; expires=Friday, 16-Jan-2037
>00:00:00 GMT; path=/;");
> header("Location: $referer");

Ikke alle browsere er glade for at få sat en cookie og redirectet i
samme omgang. MSIE har i hvert fald tidligere været en plage hvad det
angår.

--
- Peter Brodersen

Mads Pedersen (16-06-2002)
Kommentar
Fra : Mads Pedersen


Dato : 16-06-02 16:35

> From: Peter Brodersen <usenet@ter.dk>
>> header("Set-Cookie: badbrowser=$value; expires=Friday, 16-Jan-2037
>> 00:00:00 GMT; path=/;");
>> header("Location: $referer");
> Ikke alle browsere er glade for at få sat en cookie og redirectet i
> samme omgang. MSIE har i hvert fald tidligere været en plage hvad det
> angår.

Tak for tippet - det vil jeg se på!

Har du et bud på det oprindelige problem?

// Mads


Mads Pedersen (17-06-2002)
Kommentar
Fra : Mads Pedersen


Dato : 17-06-02 17:01

Snakker vist med mig selv her, men hvis der nu er andre med samme problem
vil jeg lige poste det hack som jeg mener kan løse problemet.

Jeg gentager lige: Alle BROWSERE på nær de som jeg har testet (IE5+, NS6+ og
Mozilla 1) skal være "bad", men søgemaskiner, crawlere og andet skal være
"ok".

Besluttede mig for flg. hack

// Assume browser is allright
$browser = "ok";
// First classify all mozilla browsers as bad!
if (eregi("mozilla/1", $HTTP_USER_AGENT)) {
$browser = "bad";
} elseif (eregi("mozilla/2", $HTTP_USER_AGENT)) {
$browser = "bad";
} elseif (eregi("mozilla/3", $HTTP_USER_AGENT)) {
$browser = "bad";
} elseif (eregi("mozilla/4", $HTTP_USER_AGENT)) {
$browser = "bad";
}
// Then classify relevant browsers ok!
if (eregi("msie 5", $HTTP_USER_AGENT)) {
$browser = "ok";
} elseif (eregi("msie 6", $HTTP_USER_AGENT)) {
$browser = "ok";
}
if (eregi("netscape6", $HTTP_USER_AGENT)) {
$browser = "ok";
}
if (eregi("mozilla/5", $HTTP_USER_AGENT)) {
$browser = "ok";
}

Ok det er grimt, men jeg tror det klarer jobbet!

// Mads


Niels Andersen (17-06-2002)
Kommentar
Fra : Niels Andersen


Dato : 17-06-02 17:34

Mads Pedersen wrote in <B933D448.3CD39%mads@imv.au.dk>:
> Jeg gentager lige: Alle BROWSERE på nær de som jeg har testet (IE5+, NS6+
> og Mozilla 1) skal være "bad", men søgemaskiner, crawlere og andet skal
> være "ok".
> Besluttede mig for flg. hack
[...]
> Ok det er grimt, men jeg tror det klarer jobbet!

Så længe dit HTML er endnu grimmere er det jo nok nødvendigt.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Søg
Reklame
Statistik
Spørgsmål : 177520
Tips : 31968
Nyheder : 719565
Indlæg : 6408661
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste