Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP nach JS ausführen

Einklappen

Neue Werbung 2019

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

  • PHP nach JS ausführen

    Hi,

    ich baue grad am Counter drum (chCounter)
    Um die Besucher zu tracken kann man ein JS ODER ein PHP Script einsetzen.

    Da ich gern wissen möchte, wieviele JS deaktiviert haben, nutze ich die JS Variante.

    Leider wird dann der Besucher nicht gezählt. Packe ich nun die PHP Variante rein, wird jeder Besucher gezählt... aber halt ohne JS-Statistik.

    Bei JS gibt es ja den <noscript> Bereich.
    Leider wird ein dort reingepackter PHP Befehl sofort ausgeführt. Der Grund ist mir auch klar... PHP wird ja Serverseitig ausgeführt... und JS erst nach dem Server auf Kundenseite.

    Habe ich nun eine Möglichkeit, beides irgendwie einzubinden ?
    Sprich: Den PHP Befehl in <noscript> Bereich irgendwie umschreiben ?


    PHP-Code:
    <script type="text/javascript">
    // <![CDATA[
    // chCounter
    // settings:
    cstatus = "active";
    visible = "0";
    page_title = "";
    url_of_counter_file = "http://<?php echo $_SERVER['HTTP_HOST']; ?>/expcounter/counter.php";

    ////////////////
    page_url = unescape( location.href );
    referrer = ( document.referrer ) ? document.referrer : "";
    page_title = ( page_title.length == 0 ) ? document.title : page_title;
    document.write( "<script type=\"text/javascript\" src=\"" );
    document.write( url_of_counter_file + "?chCounter_mode=js&amp;jscode_version=3.1.3&amp;status=" + cstatus + "&amp;visible=" + visible + "&amp;page_title=" + encodeURIComponent( page_title ) );
    document.write( "&amp;page_url=" + encodeURIComponent( page_url ) + "&amp;referrer=" + encodeURIComponent( referrer ) + "&amp;res_width=" + screen.width + "&amp;res_height=" + screen.height + "\"><" + "/script>" );
    // ]]>
    </script>
    <noscript>
     <object data="http://<?php echo $_SERVER['HTTP_HOST']; ?>/expcounter/counter.php?chCounter_mode=noscript" type="text/html"></object>
     <?php
    $chCounter_visible 
    1;
    $chCounter_status 'active';
    include( 
    '/expcounter/counter.php' );
    ?>
    </noscript>

  • #2
    belass es bei PHP und bau nen Browser-Identifier ein.

    http://de.php.net/manual/de/function.get-browser.php

    Kommentar


    • #3
      Habe ich ncoh andere Möglichkeiten ?
      Denn das kenne ich bereits und habe darüber auch mal ne kleine mini Statistik über fast 1/2 Jahr geführt.

      Sprich: Von welchen User bekomme ich über diesen Befehl Daten. Vielviel und wleche Daten war mir da erstmal egal. Wenn ich mich recht erinnere, waren es unter 10%. Und das dann als Statistik ranzuziehen ist wohl eher überflüssig.

      Hab es selbst jetzt nochmal ausprobiert. Mein gemietete Paket klappt nicht... und auf mein eigenen auch nicht. Wobei letzteres selbst Schuld bin.
      Aber anscheind macht sich kein Webhoster die Arbeit eine solche Datei einzubinden/zu pflegen.

      Hinweis:

      Damit es richtig funktioniert, muss die browscap-Einstellung Ihrer php.ini auf die richtige browscap.ini-Datei Ihres Systems zeigen.

      browscap.ini ist nicht Bestandteil von PHP, aber eine aktuelle » php_browscap.ini bekommen Sie hier.

      Da die browscap.ini Informationen zu vielen Browsern enthält, obliegt es dem Skript-Schreiber, diese Datei auf dem Laufenden zu halten. Das Format dieser Datei sollte selbsterklärend sein.

      Kommentar


      • #4
        @browscap.ini

        Es ist nicht ultra schwer die datei "automatisch" in gewissen zeitabständen per PHP abzuholen.. unzwar die aktuellste. ini_set() auf die jeweils fürs script relevante php_browscap.ini und jut is. Gilt dann nur fürs aktuell ausgeführte Script, setzt aber voraus das der Provider ini_set() zulässt, bzw. diesen INI-Therm nicht geschützt hat..

        Was den rest anbelangt, 100% sicheres identifizieren von Javascript ist zwar mit ach und krach ( sowie mit hilfe von inline-frames und anderem schickschnack schnell und elegant lösbar ) aber ob der so hoch granulierte aufwand dafür lohnt.. ?

        Kommentar


        • #5
          soweit ich mich erinnere zählt der chCounter mit, ob JS aktiviert ist, oder nicht (via L_JAVASCRIPT_ACTIVATED flag, ich benutze die PHP include Variante).

          Kommentar


          • #6
            Du könntest einfach JS-seitig nen Cookie setzen. PHP - JS = Wunschwert; reines Nachdenken.

            Kommentar


            • #7
              Cookies gesperrt, java ist an und nu ?

              Kommentar


              • #8
                ahja... okay. Browsercap mal runtergeladen und aufgerufen.

                Nunja... es kommen tatsächlich Daten. Nur faglich, ob diese korrekt sind.

                PHP-Code:
                require NMT_ROOT '/Browscap.php';
                $bc= new Browscap(NMT_ROOT '/test');
                $browserinfo $bc->getBrowser();

                echo 
                '<pre>';
                print_r($browserinfo);
                echo 
                '</pre>'
                Opera => JavaScript ausgeschalten. Browser geschlossen und neu aufgerufen
                Code:
                 [browser_name] => Opera/9.80 (Windows NT 6.1; U; de) Presto/2.7.62 Version/11.00
                    [browser_name_regex] => ^opera/9\.80 \(windows nt 6\.1; u; .*\) presto/2\.7\..* version/11\.0.*$
                    [browser_name_pattern] => Opera/9.80 (Windows NT 6.1; U; *) Presto/2.7.* Version/11.0*
                    [Parent] => Opera 11.00
                    [Browser] => Opera
                    [Platform] => Win7
                    [Version] => 11.00
                    [MajorVer] => 11
                    [Win32] => 1
                    [Frames] => 1
                    [IFrames] => 1
                    [Tables] => 1
                    [Cookies] => 1
                    [JavaApplets] => 1
                    [JavaScript] => 1
                    [CssVersion] => 3
                    [supportsCSS] => 1
                    [MinorVer] => 0
                    [Alpha] => 
                    [Beta] => 
                    [Win16] => 
                    [Win64] => 
                    [BackgroundSounds] => 
                    [CDF] => 
                    [VBScript] => 
                    [ActiveXControls] => 
                    [isBanned] => 
                    [isMobileDevice] => 
                    [isSyndicationReader] => 
                    [Crawler] => 
                    [AOL] => 
                    [aolVersion] => 0
                )
                Dann kann man das aber auch vergessen. Klappt anscheind garnicht

                Kommentar

                Lädt...
                X