PHP: Browsererkennung Hilfe

SSL ist deaktiviert! Aktivieren Sie SSL für diese Sitzung, um eine sichere Verbindung herzustellen.

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Patschi.

    PHP: Browsererkennung Hilfe

    PHP-Quellcode

    1. <?php
    2. $agent = (strstr($_SERVER["HTTP_USER_AGENT"], "Gecko") ? "Mozilla" : "");
    3. $agent .= (strstr($_SERVER["HTTP_USER_AGENT"], "Firefox") ? "Firefox" : "");
    4. $agent .= (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE") ? "MSIE" : "");
    5. $agent .= (strstr($_SERVER["HTTP_USER_AGENT"], "Avant") ? "Avant" : "");
    6. $agent .= (strstr($_SERVER["HTTP_USER_AGENT"], "Opera") ? "Opera" : "");
    7. $agent .= (strstr($_SERVER["HTTP_USER_AGENT"], "AppleWebKit") ? "AppleWebKit" : "");
    8. $agent .= (strstr($_SERVER["HTTP_USER_AGENT"], "Safari") ? "Safari" : "");
    9. $agent .= (strstr($_SERVER["HTTP_USER_AGENT"], "Konqueror") ? "Konqueror" : "");
    10. $agent .= (strstr($_SERVER["HTTP_USER_AGENT"], "Chrome") ? "Chrome" : "");
    11. switch ($agent) {
    12. case "MSIE":
    13. echo "Internet Explorer";
    14. break;
    15. case "MSIEAvant":
    16. echo "Avant";
    17. break;
    18. case "MozillaFirefox":
    19. echo "Mozilla Firefox";
    20. break;
    21. case "Opera":
    22. echo "Opera";
    23. break;
    24. case "MozillaAppleWebKitSafari":
    25. echo "Safari";
    26. break;
    27. case "MozillaKonqueror":
    28. echo "Konqueror";
    29. break;
    30. case "MozillaAppleWebKitSafariChrome":
    31. echo "Google Chrome";
    32. break;
    33. default:
    34. echo $_SERVER["HTTP_USER_AGENT"];
    35. }
    36. ?>


    Ich hab folgenden Code im Internet gefunden und funktioniert perfekt, doch
    möchte ich wenn die Ausgabe nicht "Mozilla Firefox" oder "Google Chrome" ist,
    soll er ein Popup öffnen.
    Meine neue Homepage: pkern.at
    Wetter bei mir zu Haus:
    Also der code ist mehr als nur schlecht!

    PHP-Quellcode

    1. $agent = $_SERVER['HTTP_USER_AGENT'];
    2. switch (true) {
    3. case strstr($agent, "MSIE"):
    4. echo "Internet Explorer";
    5. break;
    6. case strstr($agent, "Firefox"):
    7. echo "Mozilla Firefox";
    8. break;
    9. case strstr($agent, "Opera"):
    10. echo "Opera";
    11. break;
    12. case strstr($agent, "Safari"):
    13. echo "Safari";
    14. break;
    15. case strstr($agent, "Konqueror"):
    16. echo "Konqueror";
    17. break;
    18. case strstr($agent, "Chrome"):
    19. echo "Google Chrome";
    20. break;
    21. default:
    22. echo $_SERVER["HTTP_USER_AGENT"];
    23. }


    So erstmal der vorige Code. Wegen Popup

    PHP-Quellcode

    1. <?php
    2. $agent = $_SERVER['HTTP_USER_AGENT'];
    3. if(!strstr($agent, "Firefox") And !strstr($agent, "Chrome")) {
    4. ?>
    5. <scrip language="javascript" type="text/javascript">
    6. <!--
    7. var popup = window.open("url_des_popups.html", "popup");
    8. popup.focus();
    9. //-->
    10. </script>
    11. <?php
    12. }
    13. ?>


    Das script natürlich an die Stelle wo es hingehört, also im HEAD bereich oder im BODY
    KEINE VB-FRAGEN ÜBER PN STELLEN!

    Wenn du einem Hungernden einen Fisch schenkst, wird er morgen wieder hungrig sein, bringst du ihm das Fischen bei, wird er nie wieder hungrig sein.

    Alle Copy & Paste Geber und Forderer, nehmt euch dies zu Herzen!
    Dein Code funktioniert überhaupt nicht ;(

    So sieht meine index.php zurzeit aus:

    PHP-Quellcode

    1. <?php
    2. $fp = @fsockopen("xxxx", xxxx, $errno, $errstr, 1);
    3. if($fp >= 1){
    4. include("c.php");
    5. ?>
    6. <script language="JavaScript">
    7. location.href="home.php?page=0"
    8. </script>
    9. <?
    10. }
    11. else{
    12. include("error.php");
    13. }
    14. ?>


    Nur der Code den ich gefunden habe (Der lange) funktioniert, der gibt "Google Chrome" aus (Was richtig ist), aber
    dein Code gibt "Safari" aus.

    Ich brauch also jetzt nur:
    Wenn er User kein Firefox oder Google Chrome hat,
    soll er anzeigen das die Seite nicht richtig angezeigt wird.

    @wsl:
    Dein Code ist zwar sehr interessant, aber ich blick den nicht (ganz) durch *g*
    Meine neue Homepage: pkern.at
    Wetter bei mir zu Haus:
    Das ist eine Klasse zur Browsererkennung. Die Verwendung ist ganz unten im Code:

    PHP-Quellcode

    1. echo("<pre>"); // Nur damit die Ausgabe von print_r besser aussieht
    2. $foobar = new browser($_SERVER['HTTP_USER_AGENT'], $_SERVER['HTTP_ACCEPT_LANGUAGE']); // Erstellen einer neuen Instanz
    3. $daten = $foobar->getBrowser(); // Erhalten der Rückgabewerte der Klasse
    4. print_r($daten); // Ausgabe
    Error: Parse error: syntax error, unexpected T_ELSE in XXX/index.php on line 55

    Zeile 55: else { (Mit * makiert)

    Code:

    PHP-Quellcode

    1. <?php
    2. $fp = @fsockopen("XXXX", XXXX, $errno, $errstr, 1);
    3. if($fp >= 1){
    4. include("c.php");
    5. $agent = (strstr($_SERVER["HTTP_USER_AGENT"], "Gecko") ? "Mozilla" : "");
    6. $agent .= (strstr($_SERVER["HTTP_USER_AGENT"], "Firefox") ? "Firefox" : "");
    7. $agent .= (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE") ? "MSIE" : "");
    8. $agent .= (strstr($_SERVER["HTTP_USER_AGENT"], "Avant") ? "Avant" : "");
    9. $agent .= (strstr($_SERVER["HTTP_USER_AGENT"], "Opera") ? "Opera" : "");
    10. $agent .= (strstr($_SERVER["HTTP_USER_AGENT"], "AppleWebKit") ? "AppleWebKit" : "");
    11. $agent .= (strstr($_SERVER["HTTP_USER_AGENT"], "Safari") ? "Safari" : "");
    12. $agent .= (strstr($_SERVER["HTTP_USER_AGENT"], "Konqueror") ? "Konqueror" : "");
    13. $agent .= (strstr($_SERVER["HTTP_USER_AGENT"], "Chrome") ? "Chrome" : "");
    14. switch ($agent) {
    15. case "MSIE":
    16. $browser = "Internet Explorer";
    17. break;
    18. case "MSIEAvant":
    19. $browser = "Avant";
    20. break;
    21. case "MozillaFirefox":
    22. $browser = "Mozilla Firefox";
    23. break;
    24. case "Opera":
    25. $browser = "Opera";
    26. break;
    27. case "MozillaAppleWebKitSafari":
    28. $browser = "Safari";
    29. break;
    30. case "MozillaKonqueror":
    31. $browser = "Konqueror";
    32. break;
    33. case "MozillaAppleWebKitSafariChrome":
    34. $browser = "Google Chrome";
    35. break;
    36. default:
    37. $browser = $_SERVER["HTTP_USER_AGENT"];
    38. }
    39. if (strstr($agent, "Chrome") OR strstr($agent, "Firefox")) {
    40. ?>
    41. <script language="JavaScript">
    42. location.href="home.php?page=0"
    43. </script>
    44. <?
    45. }
    46. else {
    47. ?>
    48. <h2>Information:</h2>
    49. Du benötigst "Firefox" oder "Google Chrome" um die Seite richtig anzuzeigen zu lassen. <br>
    50. Wenn die Seite auch bei anderen Browser funktioniert, bitte ich Sie, mich zu informieren. (info[at]patschi95[dot]de) <br>
    51. <br>
    52. <a href="home.php?page=0">Trotzdem weiter...</a><br>
    53. <?
    54. }
    55. else { *
    56. ?>
    57. <script language="JavaScript">
    58. location.href="error.php"
    59. </script>
    60. <?
    61. }
    62. ?>


    Hat wer eine Lösung? *g*
    Meine neue Homepage: pkern.at
    Wetter bei mir zu Haus:
    Problem gelöst!

    Bei der Problem Zeile:

    PHP-Quellcode

    1. else {

    einfach zu

    PHP-Quellcode

    1. }} else {
    ändern.
    Meine neue Homepage: pkern.at
    Wetter bei mir zu Haus: