franz: javascript variable in php variable speichern

Hallo zusammen,

ich würde gerne die Besucher die auf meine Seite gehen statistisch festhalten.

dabei interessiert mich folgendes:

  • ip  (per php herausfindbar)
  • zeitpunkt (per php herausfindbar)
  • browser (per js und php herausfindbar)
  • betriebssystem (per js herausfindbar)
  • auflösung (per js herausfindbar)

ich habe folgendes javascript um das betriebssystem, den browser sowie die auflösung heraus zu finden:

----------------------------------

<script language="JavaScript">
   //-- First we need some basic information about the client's browser.
   var browserName = navigator.appName
   var browserVersion = navigator.appVersion
   var browserVersionNum = parseFloat(browserVersion)
   var agt=navigator.userAgent

//-- Get platform information and store in yourOS.
   var yourOS="unknown"
   if ((agt.indexOf("Win95")!=-1)||(agt.indexOf("Windows 95")!=-1))
      {yourOS='Windows 95'}
   if ((agt.indexOf("Win98")!=-1)||(agt.indexOf("Windows 98")!=-1))
      {yourOS='Windows 98'}
   if ((agt.indexOf("WinNT")!=-1)||(agt.indexOf("Windows NT")!=-1))
      {yourOS='Windows NT/XP'}
   if ((agt.indexOf("Win16")!=-1)||(agt.indexOf("Windows 3.1")!=-1))
      {yourOS='Windows 3.<i>x</i>'}
   if (agt.indexOf("Macintosh")!=-1) {
      if (agt.indexOf("PC)")!=-1) {yourOS='Mac PPC'} else {yourOS='Mac 68K'}
   }
   if (agt.indexOf("SunOS")!=-1) {yourOS='Unix Sun'}
   if (agt.indexOf("IRIX")!=-1) {yourOS='Unix SGI'}
   if (agt.indexOf("HP-UX")!=-1) {yourOS='Unix HP'}
   if (agt.indexOf("AIX")!=-1) {yourOS='Unix IBM'; }

//-- Assign initial values for browser settings to global variables.
   var availheight="unknown"
   var availwidth="unknown"
   var bufferdepth="unknown"
   var colordepth="unknown"
   var height="unknown"
   var width="unknown"
   var javaOK = "unknown"
   var cookiesOK = "unknown"
   var minorVers = "unknown"
   var cpu = "unknown"
   var browsLang = "unknown"

//-- If browser is version 4 or better we can take a deeper look.
   if (browserVersionNum >= 4) {
     var availheight=screen.availHeight
     var availwidth=screen.availWidth
     var colordepth=screen.colorDepth + " bit"
     var height=screen.height
     var width=screen.width
     if (navigator.javaEnabled()==true){javaOK="ja"}else{javaOK="nein"}
     //-- cookieEnabled only works in MSIE.
     if (browserName=="Microsoft Internet Explorer") {
       if (navigator.cookieEnabled==true) {
         cookiesOK="Yes"
       }else{
         cookiesOK="No"
       }
     }
     //-- These all end up as unknowns in Navigator 4.05.
     var minorVers = navigator.appMinorVersion
     var cpu = navigator.cpuClass
     var browsLang = navigator.browserLanguage
   }
   </script>

<script language="JavaScript">
     //-- Now we can write global variables into the screen.
     document.write("Dein Betriebssystem: <b>"+ yourOS +"</b><br>")
     document.write("Java installiert: <b> "+ javaOK + "</b><br>")
     document.write("Cookies annehmbar: <b> "+ cookiesOK + "</b><br>")
     document.write("Browser Sprache:<b> "+ browsLang + "</b><br>")
     document.write("Browser Version: <b>"+ minorVers + "</b><br>")
     document.write("Bildschirmauflösung: <b>"+width+" </b>x<b> "+height+"</b><br>")
     document.write("Farbtiefe: <b>" + colordepth + "</b><br>")
     </script>

-----------------------------------------------------------

diese daten möchte ich nun in eine mysql-datenbank speichern - soweit alles kein problem kann alle werte eintragen, außer diese die per javascript ermittelt wurden.

wie kann ich die werte (browser, auflösung, betriebssystem) die ich per javascript ausfindig gemacht habe in php variablen speichern um diese in die mysql-datenbank zu speichern.

kann mir einer helfen?

gruß franz

  1. Hallov franz,

    wie kann ich die werte (browser, auflösung, betriebssystem) die ich per javascript ausfindig gemacht habe in php variablen speichern um diese in die mysql-datenbank zu speichern.

    Du mußt sie im Request übergeben. Das ist erst ab dem nächsten Seitenaufruf möglich. Dann müssten allerdings die Links auch mit JS geschrieben/sein, weil ja die Übergabewerte erst beim Client ermittelt werden und dann in den Link geschrieben werden. Wenn Du ein Formular verwendest, kannst Du per JS ein hidden-Field füllen.

    Außerdem könntest Du mit JS automatisch eine Seite (statistik.php) in einem anderen (unsichtbaren) Frame aufrufen. Dazu sollte auch schon ein iFrame genügen.

    Gruß, Andreas

    --
    SELFFORUM - hier werden Sie geholfen,
    auch in Fragen zu richtiges Deutsch
    1. Servus,

      Du mußt sie im Request übergeben. Das ist erst ab dem nächsten Seitenaufruf möglich. chao RRW

      das bedeutet, wenn die besucher auf meine index.php kommen müsste ich noch eine weiterleitung einbauen auf eine andere seite (nehmen wir mal statistik.php= und auf dieser z.b. bei Betriebssystem

      $_REQUEST['yourOS']

      eingeben wenn vorher auf der index.php yourOS so definiert wurde

      ---------------

      <script language="JavaScript">
         //-- First we need some basic information about the client's browser.
         var browserName = navigator.appName
         var browserVersion = navigator.appVersion
         var browserVersionNum = parseFloat(browserVersion)
         var agt=navigator.userAgent

      //-- Get platform information and store in yourOS.
         var yourOS="unknown"
         if ((agt.indexOf("Win95")!=-1)||(agt.indexOf("Windows 95")!=-1))
            {yourOS='Windows 95'}
         if ((agt.indexOf("Win98")!=-1)||(agt.indexOf("Windows 98")!=-1))
            {yourOS='Windows 98'}
         if ((agt.indexOf("WinNT")!=-1)||(agt.indexOf("Windows NT")!=-1))
            {yourOS='Windows NT/XP'}
         if ((agt.indexOf("Win16")!=-1)||(agt.indexOf("Windows 3.1")!=-1))
            {yourOS='Windows 3.<i>x</i>'}
         if (agt.indexOf("Macintosh")!=-1) {
            if (agt.indexOf("PC)")!=-1) {yourOS='Mac PPC'} else {yourOS='Mac 68K'}
         }
         if (agt.indexOf("SunOS")!=-1) {yourOS='Unix Sun'}
         if (agt.indexOf("IRIX")!=-1) {yourOS='Unix SGI'}
         if (agt.indexOf("HP-UX")!=-1) {yourOS='Unix HP'}
         if (agt.indexOf("AIX")!=-1) {yourOS='Unix IBM'; }

      //-- Assign initial values for browser settings to global variables.
         var availheight="unknown"
         var availwidth="unknown"
         var bufferdepth="unknown"
         var colordepth="unknown"
         var height="unknown"
         var width="unknown"
         var javaOK = "unknown"
         var cookiesOK = "unknown"
         var minorVers = "unknown"
         var cpu = "unknown"
         var browsLang = "unknown"

      //-- If browser is version 4 or better we can take a deeper look.
         if (browserVersionNum >= 4) {
           var availheight=screen.availHeight
           var availwidth=screen.availWidth
           var colordepth=screen.colorDepth + " bit"
           var height=screen.height
           var width=screen.width
           if (navigator.javaEnabled()==true){javaOK="ja"}else{javaOK="nein"}
           //-- cookieEnabled only works in MSIE.
           if (browserName=="Microsoft Internet Explorer") {
             if (navigator.cookieEnabled==true) {
               cookiesOK="Yes"
             }else{
               cookiesOK="No"
             }
           }
           //-- These all end up as unknowns in Navigator 4.05.
           var minorVers = navigator.appMinorVersion
           var cpu = navigator.cpuClass
           var browsLang = navigator.browserLanguage
         }
         </script>

      -------------------------

      ist das richtig?

      chao franz

      1. Huhu franz

        das bedeutet, wenn die besucher auf meine index.php kommen müsste ich noch eine weiterleitung einbauen auf eine andere seite (nehmen wir mal statistik.php=

        ist das richtig?

        So könnte man das machen, geht aber auch viel einfacher wenn Du per JavaScript ein Bildchen (1x1 Pixel) lädst.
        Das Pixel-Gif wird von einem PHP-Skript ausgeliefert dem Du alle
        ermittelten Parameter über die URL als GET-Parameter übergibst.

        Also z.B. so

        dummy = new Image();
        dummy.src='http:://deinhost.de/getpixel.php?x=' + x + '&y=' + y;

        Viele Grüße

        lulu

        --
        bythewaythewebsuxgoofflineandenjoytheday
        1. hi lulu und andreas!

          So könnte man das machen,

          ich habe es eben so gemacht, habe eine index.php in welcher im head bereich das javascript liegt. der wert steht in der javascript-variablen "yourOS". ich habe dann per <meta refresh> auf die seite main.php verwiesen und per $_REQUEST['yourOS'] den Wert der Variablen in die Datenbank einzutragen allerdings ohne erfolg ;-(

          was habe ich denn falsch gemacht?

          dann noch eine frage zu der möglichkeit von lulu:

          dummy = new Image();
          dummy.src='http:://deinhost.de/getpixel.php?x=' + x + '&y=' + y;

          dass ist doch php oder nicht (über der zeile). oder ist das javascript?

          wenn es javascript ist dann reicht es doch

          <script language="javascript">
           dummy = new Image();
           dummy.src='http:://deinhost.de/getpixel.php?x=' + x + '&y=' + y;
          </script>

          zu schreiben oder?

          aber wie lese ich dann die werte aus und übetrage sie in php variablen?

          chao franz

          1. <script language="javascript">
            dummy = new Image();
            dummy.src='http:://deinhost.de/getpixel.php?x=' + x + '&y=' + y;
            </script>
            aber wie lese ich dann die werte aus und übetrage sie in php variablen?

            <?php
              echo $_GET['x'];
            ?>