phpbar.de logo

Mailinglisten-Archive

[php] Apache + PHP = Probleme

[php] Apache + PHP = Probleme

Thomas Feyrer Dante_(at)_altmuehlnet.de
Thu, 01 Jul 1999 22:27:07 +0200


Hi Liste,
ich hab mir als normaler User auf einem Linux-Server MySQL
(3.22.16a-gamma), Apache (v1.3.6) und PHP (v3.0.9) installiert (PHP als
Modul in den Apache kompiliert und Apache auf nem anderen Port gestellt),
läuft soweit eigentlich ohne Probleme... dachte ich jedenfalls...

Es sind irgendwie sehr eigenartige Phänomene die da auftreten...
auf dem Server läuft ja Standartmäßig auch Apache+PHP, allerdings in den
Versionen 1.3.3 und 3.0.5 (S.u.S.E 6.0 Standart-RPM)

wenn ich nun mein auswert.php3-script auf den beiden laufen lasse, bekomme
ich unterschiedliche ergebnisse, die mir teilweise sehr abstrakt vorkommen...

Hier das Skript:
<?php
$header = getallheaders();
$ua = $header['User-Agent'];
list( $browser, $ua ) = split( "/", $ua, 2 );
list( $version, $ua ) = split( " ", $ua, 2 );

if( $browser == "Mozilla" ) {
    $moz_browser = true;
    $browser = "Netscape";
    $moz_ver = $version;
    if( ereg( "\[([a-z]{2})\]", $ua, $language ) ) $language = $language[1];
    if( eregi( "MSIE", $ua ) ) {
        $browser = "Internet Explorer";
        eregi( "MSIE ([0-9]\..+);", $ua, $version );
        $version = $version[1];
    }
    if( eregi( "Opera", $ua, $version ) ) {
        $browser = "Opera";
        eregi( "Opera[/ ]([0-9]\..+);", $ua, $version );
        $version = $version[1];
    }
    if( eregi( "Win {0,1}(nt|[0-9]{1,2})", $ua, $win_ver ) ) $win_ver =
$win_ver[1];
    if( eregi( "Windows {0,1}(nt|[0-9]{1,2})", $ua, $win_ver ) ) $win_ver =
$win_ver[1];
    if( $win_ver ) $win_ver = trim( $win_ver );
    if( $win_ver == "95" ) $win[95]++;
        elseif( $win_ver == "98" ) $win[98]++;
        elseif( $win_ver == "16" || ereg( "^3\.", $win_ver ) ) $win[16]++;
        elseif( eregi( "nt", $win_ver ) || ereg( "4\..+", $win_ver ) )
$win[nt]++;
}

echo( "Mozilla-Browser? " );
if( $moz_browser ) echo( "Ja\n<br>" );
echo( "Mozilla-Version: $moz_ver<br>
Sprache: $language<br>
Browser: $browser<br>
Browser-Version: $version<br>
Windows-Version: $win_ver<br><br>
" );
?>

Ich rufe es mit dem IE auf und bekomme auf dem "normalen" Server als Output:
Mozilla-Browser? Ja 
Mozilla-Version: 4.0
Sprache: 
Browser: Internet Explorer
Browser-Version: 4.01
Windows-Version: 98

Bei meiner Installation bekomme ich allerdings:
Mozilla-Browser? Ja 
Mozilla-Version: 4.0
Sprache: 
Browser: Netscape
Browser-Version: 4.0
Windows-Version: 

Die Header, die ich da bekomme sind aber in Ordnung, wenn ich sie per:
for( reset( $header ); $key = key( $header ); next( $header ) )
    echo( "\$header[$key] = $header[$key]\n<br>" );
ausgeben lasse, sind sie identisch...

Ich weiß echt nichtmehr weiter, wiso beim parsen des User-Agents solche
Probleme auftreten... Bitte helft mir...

Bye & Thanks
  Dante



php::bar PHP Wiki   -   Listenarchive