BenCC: Browsererkennung funkt immer noch nicht

Beitrag lesen

Hallo Leute,

ich habe ein PHP-Script (auswertung.php), welches den Browsertyp ermitteln und das Ergebnis auch grafisch darstellen soll. Leider wird z.B. bei IE5.0 und Opera6.0 der gleiche grafische Balken verändert, obwohl ich unterschiedliche UserAgents benutzt habe. Das gleiche trifft auch auf den NN4.7x. Hier ändert sich der Balken, welcher andere Browser darstellen soll. Hier das Script:

<html>
<head>
<title>Browserstatistik</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="white">
<p>Folgende Ergebnisse wurden ermittelt:</p>
<?php
$user = $_SERVER['HTTP_USER_AGENT'];
$datei="ergebnis.txt";
$zeiger=fopen($datei,"r");
$umfrage=fread($zeiger,filesize($datei));
fclose($zeiger);
$werte=explode(",",$umfrage);

if(preg_match('/Mozilla/3.0\ (.*/',$user)) { $werte[0]++; }
elseif(preg_match('/Mozilla/4.0\ (.*/',$user)) { $werte[1]++; }
elseif(preg_match('/Mozilla/4.5\ (.*/',$user)) { $werte[2]++; }
elseif(preg_match('/Mozilla/4.7\ (.*/',$user)) { $werte[3]++; }
elseif(preg_match('/Mozilla/5.0\ (.*/',$user)) { $werte[4]++; }
elseif(preg_match('/Opera/ (.*/',$user)) { $werte[5]++; }
else { $werte[6]++; }

// Gesamtzahl aller Wahlvorgänge
$gesamt=$werte[0]+$werte[1]+$werte[2]+$werte[3]+$werte[4]+$werte[5]+$werte[6];
// Höchstlänge der Balken angeben
$laenge=400;
// Anteil von Balken 1 (Indexwert NS30!)
$laengeNS30=($werte[0]/$gesamt)*$laenge;
// Anteil von Balken 2 (Indexwert NS40!)
$laengeNS40=($werte[1]/$gesamt)*$laenge;
// Anteil von Balken 3 (Indexwert NS45!)
$laengeNS45=($werte[2]/$gesamt)*$laenge;
// Anteil von Balken 4 (Indexwert NS47!)
$laengeNS47=($werte[3]/$gesamt)*$laenge;
// Anteil von Balken 5 (Indexwert NS50!)
$laengeNS50=($werte[4]/$gesamt)*$laenge;
// Anteil von Balken 6 (Indexwert OPER!)
$laengeOPER=($werte[5]/$gesamt)*$laenge;
// Anteil von Balken 7 (Indexwert OTHER!)
$laengeOTHER=($werte[6]/$gesamt)*$laenge;
// Werte auf ganze Zahlen runden
$laengeNS30=round($laengeNS30,0);
$laengeNS40=round($laengeNS40,0);
$laengeNS45=round($laengeNS45,0);
$laengeNS47=round($laengeNS47,0);
$laengeNS50=round($laengeNS50,0);
$laengeOPER=round($laengeOPER,0);
$laengeOTHER=round($laengeOTHER,0);

$neuerinhalt= implode(",",$werte);
$schreiben=fopen($datei,"w");
fwrite($schreiben,$neuerinhalt);
fclose($schreiben);
?>
<p>Bisher haben <?php echo $gesamt; ?> Teilnehmer</i> abgestimmt.<br>
So sieht das Ergebnis aus:</p>
<table border="0">
<tr>
<td><b>Netscape3.0</b></td>
<td> </td><td width="<?php echo $laengeNS30; ?>px" bgcolor="red"> </td>
<td> <?php echo $werte[0];?></i></td>
</tr></table><table>
<tr>
<td><b>Netscape4.0</b></td>
<td> </td><td width="<?php echo $laengeNS40; ?>px" bgcolor="yellow"> </td>
<td> <?php echo $werte[1];?></i></td>
</tr></table><table>
<tr>
<td><b>Netscape4.5</b></td>
<td> </td><td width="<?php echo $laengeNS45; ?>px" bgcolor="green"> </td>
<td> <?php echo $werte[2];?></i></td>
</tr></table><table>
<tr>
<td><b>Netscape4.7</b></td>
<td> </td><td width="<?php echo $laengeNS47; ?>px" bgcolor="blue"> </td>
<td> <?php echo $werte[3];?></i></td>
</tr></table><table>
<tr>
<td><b>Netscape5.0</b></td>
<td> </td><td width="<?php echo $laengeNS50; ?>px" bgcolor="black"> </td>
<td> <?php echo $werte[4];?></i></td>
</tr></table><table>
<tr>
<td><b>Opera</b></td>
<td> </td><td width="<?php echo $laengeOPER; ?>px" bgcolor="blue"> </td>
<td> <?php echo $werte[5];?></i></td>
</tr></table><table>
<tr>
<td><b>Andere Browser</b></td>
<td> </td><td width="<?php echo $laengeOTHER; ?>px" bgcolor="magenta"> </td>
<td> <?php echo $werte[6];?></i></td>
</tr>
</table>
</body>
</html>

Hat jemend einen Tipp für mich, wie ich das ändere?
Danke im Voraus.

PS: Die datei ergebnis.txt beinhaltet 7x den Wert 0 durch Komma getrennt.

mfg
BenCC