Avatar billede nfssister Forsker
06. april 2006 - 11:27 Der er 19 kommentarer og
1 løsning

Hvilken browser bruger brugeren ?

Jeg ved dette spørgsmål har været oppe utallige gange, og jeg har prøvet mange af dem, men jeg kan ikke få dem til at virke :(

Det jeg skal have er et script der kan gå ind i denne: $_SERVER['HTTP_USER_AGENT']

og finde om der er nogle steder står: MSIE, firefox, mac/safari

Jeg skal bare have den til at finde ordet, og skifte det ud med et billede....
Jeg har kigget på disse 2:
http://dk.php.net/manual/en/function.get-browser.php
og
http://dk.php.net/manual/en/function.strcmp.php

Men den skriver intet ud til mig :|.. en der har et bud ?
Avatar billede zappa Nybegynder
06. april 2006 - 11:41 #1
Kan dette bruges?

<?
$client = $_SERVER[HTTP_USER_AGENT];
if(strstr($client,"Firefox"))
  echo "ok";
else
  echo "fail";
?>
Avatar billede showsource Seniormester
06. april 2006 - 11:45 #2
function find_browser() {

$agent = strtolower($_SERVER["HTTP_USER_AGENT"]);
$vars = array("msie", "netscape");

    foreach($vars as $browser) {
        if(false === ($browsernavn = strpos($agent, $browser))) {
        continue;
        }
    return $browser;
    }
}

echo find_browser();
Avatar billede nfssister Forsker
06. april 2006 - 11:46 #3
hvad gør jeg så når den skal tage IE og safari med i den if sætning ?
Avatar billede nfssister Forsker
06. april 2006 - 11:49 #4
showsource... jeg kan ikke lige få dit til at virke....
Avatar billede zappa Nybegynder
06. april 2006 - 11:49 #5
<?
$client = $_SERVER[HTTP_USER_AGENT];
if(strstr($client,"Firefox") OR strstr($client,"safi") etc. )
  echo "ok";
else
  echo "fail";
?>
Avatar billede showsource Seniormester
06. april 2006 - 11:52 #6
Hmm, virker fint her! :O)

Og en lille ændring: (for at vise et billede)

function find_browser() {

$agent = strtolower($_SERVER["HTTP_USER_AGENT"]);
$vars = array("msie", "netscape", "firefox");
$image = "unknown";

    foreach($vars as $browser) {
        if(false === ($browsernavn = strpos($agent, $browser))) {
        continue;
        }
    $image = $browser;
    }

return $image;
}

echo find_browser();
Avatar billede nfssister Forsker
06. april 2006 - 11:53 #7
hmm.. det virker det du skriver der zappa.... men der ser den ikke forskel på firefox og safari (safi i dit tilfælde ;))...
jeg vil have den til at finde ud af hvad browser det er, når den har gjort det skal den se hvad for et resultat der kom ud, f.eks. firefox, så skal den erstatte "ordet" firefox med en billede sti...
Avatar billede nfssister Forsker
06. april 2006 - 11:56 #8
showsource så virkede det... så siger du du har lavet en lille ændring mht til billeder... hvordan sætter jeg op at når det er firefox der kommer ud, så skal den hente sti 1, når det er msie så henter den sti 2 osv.... ? :)
Avatar billede showsource Seniormester
06. april 2006 - 12:01 #9
nåh, ok! :O)
I mit eks. kan du ha' billeder liggende i samme dir, som så har navn efter array'et $vars. D.v.s. du kan
<img src="/dir/". find_browser() .".jpg">

Du har så også et "unknown.jpg" liggende, foruden msie.jpg m.m.
Avatar billede nfssister Forsker
06. april 2006 - 12:07 #10
oki
får den her fejl: Fatal error: Cannot redeclare find_browser() (previously declared in C:\Program Files\xampp\htdocs\navigator.txt:8) in C:\Program Files\xampp\htdocs\main.txt on line 16

hvad mener den med det ?
Avatar billede showsource Seniormester
06. april 2006 - 12:08 #11
at funktionen allerede er defineret tidligere.
Avatar billede nfssister Forsker
06. april 2006 - 12:11 #12
hmm, mit dokument ser sådan her ud:

<b>Du er her:</b> www.blablabla.dk<?php
    $PHPself = $_SERVER["PHP_SELF"];
    $self = str_replace(".php", " ", $PHPself);
    $self2 = str_replace("default", "Forside", $self);
    echo $self2 ?> - <b>Din browser er:</b>
<? function find_browser() {

$agent = strtolower($_SERVER["HTTP_USER_AGENT"]);
$vars = array("msie", "netscape", "firefox");
$image = "unknown";

    foreach($vars as $browser) {
        if(false === ($browsernavn = strpos($agent, $browser))) {
        continue;
        }
    $image = $browser;
    }

return $image;
}

echo find_browser(); ?>

kan ikke se find_browser bliver brugt andre steder end i dit script
Avatar billede nfssister Forsker
06. april 2006 - 12:13 #13
nevermind... prøvede at fjerne scriptet... loade siden og så lægge scriptet ind igen.... nu funker det.... smod svar showsource :) og tak for forsøget zappa
Avatar billede showsource Seniormester
06. april 2006 - 12:13 #14
Prøv at kikke i
C:\Program Files\xampp\htdocs\navigator.txt
Avatar billede showsource Seniormester
06. april 2006 - 12:13 #15
ok
Avatar billede nfssister Forsker
06. april 2006 - 12:17 #16
grrr kan ikke finde ud af dit billede halløj... kan du give en demo af det ?
Avatar billede showsource Seniormester
06. april 2006 - 12:26 #17
<?php
function find_browser() {

$agent = strtolower($_SERVER["HTTP_USER_AGENT"]);
$vars = array("msie", "netscape", "firefox");
$image = "unknown";

    foreach($vars as $browser) {
        if(false === ($browsernavn = strpos($agent, $browser))) {
        continue;
        }
    $image = $browser;
    }

return $image;
}

echo htmlentities("<img src=\"dir/". find_browser() .".jpg\">");
?>
Avatar billede showsource Seniormester
06. april 2006 - 12:29 #18
For at vise billedet, skal alle billeder ligge i samme dir, ( her "dir" )
msie.jpg
netscape.jpg
firefox.jpg
unknown.jpg
Avatar billede nfssister Forsker
06. april 2006 - 12:39 #19
hmm nu skriver den: Din browser er: <img src="browser/msie.jpg">

altså stien er rigtig osv... men den laver ikke selve <img src="browser/msie.jpg"> om til HTML kode selv om du har sat htmlentities på.... hvorfor gør den ikke det... sådan som jeg kan forstå på PHP biblen så laver htmlentities strenge om til html kode (groft sagt)...
Avatar billede showsource Seniormester
06. april 2006 - 12:42 #20
hehe, htmlentities() laver jo netop html om til kode.
Det var ment som eks. for at se om det var korrekt.
Du skal blot bruge

echo "<img src=\"browser/". find_browser() .".jpg\">";
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester