Browsercheck geht nicht (Synthax)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Browsercheck geht nicht (Synthax)

    Hallo liebe Leute,
    ich versuche zu prüfen, ob man mit etwas anderem als iExplorer die Seite aufruft, aber irgentwas mit dem Synthax funzt nicht:

    PHP-Code:
    <?php
    if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') == TRUE//wenn iExplorer
    {
    session_start();
    if (
    $_SERVER['REQUEST_METHOD'] == 'POST') {
     
    $username $_POST['username'];
    $password $_POST['password'];
    $hostname $_SERVER['HTTP_HOST'];
    $path dirname($_SERVER['PHP_SELF']);
     
     
    if ( 
    (
    $username=="ABC" AND $password=="DEF")
      )
     
     
     
     
    {
    $_SESSION['user'] = $_POST['username']; 
    if (
    $_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
    if (
    php_sapi_name() == 'cgi') {
    header('Status: 303 See Other');
    }
    else {
    header('Location: http://'.$hostname.($path == '/' '' $path).'/index2.php');
    }
    }
    header('Location: http://'.$hostname.($path == '/' '' $path).'/content/menue.php');
    exit;
    }
    }
    ?>
    Der Seiteninhalt
    <?
    }
    ?>
    <?
    else
    {
    echo 'Bitte benutzen Sie Internet Explorer.';
    }
    ?>

  • #2
    aber irgentwas mit dem Synthax funzt nicht
    Und was funzt net? Ich habe meine Glaskugel lieder zu Hause gelassen.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Errormeldung

      Parse error: syntax error, unexpected $end in C:\xampp\htdocs\xampp\tool\index.php on line 156

      Kommentar


      • #4
        Und wie sieht deine Zeile 156 aus? Das ist aus deinem Code nicht zu entnehmen.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Das ist die leere Zeile nach dem letzen PHP Ausdruck! Das steht gar nichts...

          Kommentar


          • #6
            hey

            Ich tippe mal darauf, dass du beim letzten else die vorangegengene geschweifte Klammer von diesem trennst. Weiß jetzt aber nicht genau, ob dies immer zusammengehören muss...

            Kommentar


            • #7
              Hallo,

              du benutzt unten Short-Open-Tags (<?), musst aber vermutlich die PI-Tags (<?php) verwenden.

              Gruß,

              Amica
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                ich will ja einfach nur sagen:

                wenn man mit iexplorer arbeiter --> dann soll man auf die index.php
                ansonsten -->meldung:nutzen sie den iexplorer

                Zitat von AmicaNoctis Beitrag anzeigen
                Hallo,

                du benutzt unten Short-Open-Tags (<?), musst aber vermutlich die PI-Tags (<?php) verwenden.

                Gruß,

                Amica
                daran liegts leider auch net habs schon versucht...
                ich verzweifel...
                Zuletzt geändert von unset; 18.05.2010, 15:33. Grund: doppelpost

                Kommentar


                • #9
                  In vernünftig eingerücktem Code findet man Klammerfehler sofort

                  Warum unterbrichst du eigentlich den PHP-Block vor dem else?
                  Zuletzt geändert von AmicaNoctis; 18.05.2010, 15:38.
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    Zitat von tinasharma18hh Beitrag anzeigen
                    daran liegts leider auch net habs schon versucht...
                    Wie schon JohnSwitters sagte, fehlt wahrscheinlich irgendwo eine schließende geschweifte Klammer. Das findet du am Besten heraus, wenn du den Code tiptop formatierst.

                    Peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      du verlässt den php bereich
                      PHP-Code:
                      ?>
                      <?
                      zwischen dem if und dem else:

                      PHP-Code:
                      <?php 
                      if ($foo=="bar"
                      {
                          
                      do_something();

                      ?>

                      <?php 
                      else 
                      {
                          
                      do_nothing();
                      };
                      ?> 
                      ^^ so ist es falsch
                      was a in Deinem fall keinen Sinn machen würde, wenn es b denn erlaubt wäre...

                      AmicaNoctis hatte Dir schon die richtige Frage gestellt
                      Zuletzt geändert von ; 19.05.2010, 00:33.

                      Kommentar


                      • #12
                        Zitat von tinasharma18hh Beitrag anzeigen
                        ich will ja einfach nur sagen:

                        wenn man mit iexplorer arbeiter --> dann soll man auf die index.php
                        ansonsten -->meldung:nutzen sie den iexplorer
                        Ich will aber nicht umgeleitet werden, nur weil mein Opera sich manchmal als MSIE tarnt ...
                        ... und nu?

                        Wenn schon Umleitung, dann eine, auf die auch wirklich nur der echte Internet Explorer reagiert.

                        daran liegts leider auch net habs schon versucht...
                        ich verzweifel...
                        Die Fehlermeldung sagt doch klar, WO der Fehler liegt, und WAS falsch gemacht wurde.

                        Benutze eine Editor mit Syntax-Highlighting und lerne, Quellcode richtig einzurücken. Dann fällt dir der Fehler sofort ins Auge.

                        Das Mischen von PHP-Script-Code und HTML-Ausgaben mit diesen schrecklichen "?>"- und "<?php"-Tags ist schlechter Stil und führt immer wieder zu Problemen. Gewöhne dir das lieber ab. Programmlogik und Text-Ausgaben sollten besser getrennt sein.

                        Du solltest dich ebenfalls nocheinmal mit (Daten-)Typen und Rückgabewerten von Funktionen in PHP beschäftigen. Deine If-Bedingung, die strpos() nutzt, ist zwar sehr kreativ, funktioniert aber nur, weil die User-Agent-Kennung in der Praxis nicht mit den Zeichen "MSIE" beginnt und weil PHP beim Vergleichen mit "==" vor dem Vergleich die Datentypen heimlich umwandelt. Strpos() gibt im Erfolgsfall immer eine Ganzzahl (Integer) zurück, niemals TRUE.

                        Was ich nicht verstehe: Wieso schließt du Benutzer anderer Browser aus? Die können auch mit Sessions umgehen.


                        PHP-Code:
                        <?php
                        // ich habe den if- und den else-Teil vertauscht, 
                        // so erscheint mir das Script uebersichtlicher

                        if (!is_int(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE'))) {
                        ?>
                        Bitte benutzen sie das Schrottteil von MSFT
                        <?php
                            
                        exit();
                        }
                        else {
                            
                        //wenn iExplorer
                            
                        session_start();
                            if (
                        $_SERVER['REQUEST_METHOD'] == 'POST') {

                                
                        $username $_POST['username'];
                                
                        $password $_POST['password'];
                                
                        $hostname $_SERVER['HTTP_HOST'];
                                
                        $path dirname($_SERVER['PHP_SELF']);

                                if (
                        $username=="ABC" AND $password=="DEF") {
                                    
                        $_SESSION['user'] = $_POST['username'];
                                    if (
                        $_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
                                        if (
                        php_sapi_name() == 'cgi') {
                                            
                        header('Status: 303 See Other');
                                        }
                                        else {
                                            
                        header('Location: http://'.$hostname.($path == '/' '' $path).'/index2.php');
                                        }
                                    }
                                    
                        header('Location: http://'.$hostname.($path == '/' '' $path).'/content/menue.php');
                                    exit;
                                }
                            }
                        }
                        ?>
                        Der Seiteninhalt

                        <?php
                        // weiterer PHP-Kram
                        ?>
                        Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                        Kommentar

                        Lädt...
                        X