PHP und Javascript

Hallo zusammen.

Ich möchte mittels PHP und Javascript eine Benutzerstatistik über die Leute erstellen, die auf meiner Webseite surfen, sprich alle möglichen Daten in eine MySQL-Tabelle.

Hier mein JavaScript…

document.write("AppCodeName: " + navigator.appCodeName + "\<br/\>");
document.write("AppName: " + navigator.appName + "\<br/\>");
document.write("AppVersion: " + navigator.appVersion.substring(0, 1) + "\<br/\>");
document.write("CookiesEnabled: " + navigator.cookieEnabled + "\<br/\>");
document.write("AppLanguage: " + navigator.language + "\<br/\>");
document.write("AppPlatform: " + navigator.platform + "\<br/\>");
document.write("AppUserAgent: " + navigator.userAgent + "\<br/\>");
document.write("JavaEnabled: " + navigator.javaEnabled() + "\<br/\>");
document.write("Bildschirm-Weite: " + screen.width + "\<br/\>");
document.write("Bildschirm-Weite: " + screen.height + "\<br/\>");
document.write("ABildschirm-Weite: " + screen.availwidth + "\<br/\>");
document.write("ABildschirm-Weite: " + screen.availheight + "\<br/\>");
document.write("Farbtiefe: " + screen.colordepth + "\<br/\>");
document.write("Pixeltiefe: " + screen.pixeldepth + "\<br/\>");

Mit PHP lese ich dann die IP und den Hostnamen aus… REMOTE_ADDR… usw.

Jedoch, wie bekomme ich nun die Daten des Javascripts in die Datenbank, ohne Submit, sprich, der User kommt auf die Seite und dann sollen alle Daten rein in die MySQL-Tabelle… ?? :smile:
Vielleicht mit location.href = stat.php?id=2&appName=Mozilla&… und lies die $_GET[]-Variablen aus und schreib sie in die Tabelle… Ist das klug, oder geht es auch einfacher??

Vorab danke für die Antworten.

Grüsse und schönen Tag.
Sebastian

du musst die gesamelten daten dann mit ajax an den server schicken

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

du musst die gesamelten daten dann mit ajax an den server
schicken

bitte? Ajax schon gehört, noch nie verwendet… Wie würde dieses funktionieren?

also der besucher ruft deine seite auf
dann werden die daten gesamelt und mit js + ajax an den server geschickt
dort können sie dann mit php in einer db gespeichert werden

oder verstehe ich das gerade falsch…?

du musst die gesamelten daten dann mit ajax an den server
schicken

bitte? Ajax schon gehört, noch nie verwendet… Wie würde
dieses funktionieren?

also der besucher ruft deine seite auf
dann werden die daten gesamelt und mit js + ajax an den server
geschickt
dort können sie dann mit php in einer db gespeichert werden

oder verstehe ich das gerade falsch…?

Du hast recht, so, wie du gesagt hast, würde / müsste es gehen, jedoch ohne Ansatz / Kenntnisse in Ajax, werde ich das nicht hinbekommen… Wie würde dies gehen??

du musst die gesamelten daten dann mit ajax an den server
schicken

bitte? Ajax schon gehört, noch nie verwendet… Wie würde
dieses funktionieren?

Mit http://www.modernmethod.com/sajax :

<?php include("sajax.php");<br />
function save\_data($appName,$appVersion,....) { ... };

sajax\_init();
sajax\_export("save\_data");
sajax\_handle\_client\_request();
?\>
...

...

Ich möchte mittels PHP und Javascript eine Benutzerstatistik
über die Leute erstellen, die auf meiner Webseite surfen,
sprich alle möglichen Daten in eine MySQL-Tabelle.

Mit PHP lese ich dann die IP und den Hostnamen aus…
REMOTE_ADDR… usw.

Jedoch, wie bekomme ich nun die Daten des Javascripts in die
Datenbank, ohne Submit,

ajax nur dafuer faende ich uebertrieben.
wird eigentlich schon immer mit pixelgifs machen und laesst sich so auch gut filtern.
http://forum.de.selfhtml.org/archiv/2005/2/t101416/

Hi dog.je!!

ajax nur dafuer faende ich uebertrieben.
wird eigentlich schon immer mit pixelgifs machen und laesst
sich so auch gut filtern.
http://forum.de.selfhtml.org/archiv/2005/2/t101416/

Anhand dieses Links, weiss ich jetzt schon mal wie es gehen würde.
Hab bezüglich dieser Thematik noch ein bisschen gegoogelt und folgendes gefunden: http://www.webwork-community.net/posting3081_23_0.html
Dieser Link, beschreibt so ziemlicht was ich benötige, werde mich nochmals melden, ob es geklappt hat oder nicht… Danke dir!!

Grüsse,
Sebastian

Ich poste jetzt hier mal meine Lösung:
In der index.php hab ich im folgende Zeilen:

 var urlString = "AppCodeName=" + navigator.appCodeName + "&" + "AppName=" + navigator.appName + "&" + "AppVersion=" + navigator.appVersion.substring(0, 1) + "&" + "CookiesEnabled=" + navigator.cookieEnabled + "&" + "AppLanguage=" + navigator.language + "&" + "AppPlatform=" + navigator.platform + "&" + "AppUserAgent=" + navigator.userAgent + "&" + "JavaEnabled=" + navigator.javaEnabled() + "&" + "BildschirmWeite=" + window.screen.width + "&" + "BildschirmHoehe=" + window.screen.height + "&" + "ABildschirmWeite=" + window.screen.availwidth + "&" + "ABildschirmHoehe=" + window.screen.availheight + "&" + "Farbtiefe=" + window.screen.colordepth + "&" + "Pixeltiefe=" + window.screen.pixeldepth;
 var file = "stat/stat.php?";
 var full = file + urlString;
 document.write("\<img src='"+full+"' border='0' width='1' height='1' class='no'/\>");

Bei mir wird Folgendes ausgegeben:

Die stat.php im Ordner stat sieht so aus:

<?php include('config-stat.php');<br />include('db\_connect.php');
$AppCodeName = $HTTP\_GET\_VARS['AppCodeName']; 
$AppName = $HTTP\_GET\_VARS['AppName']; 
$AppVersion = $HTTP\_GET\_VARS['AppVersion'];
$CookiesEnabled = $HTTP\_GET\_VARS['CookiesEnabled']; 
$AppLanguage = $HTTP\_GET\_VARS['AppLanguage']; 
$AppPlatform = $HTTP\_GET\_VARS['AppPlatform']; 
$AppUserAgent = $HTTP\_GET\_VARS['AppUserAgent']; 
$JavaEnabled = $HTTP\_GET\_VARS['JavaEnabled']; 
$AppPlatform = $HTTP\_GET\_VARS['AppPlatform']; 
$AppUserAgent = $HTTP\_GET\_VARS['AppUserAgent']; 
$JavaEnabled= $HTTP\_GET\_VARS['JavaEnabled']; 
$BildschirmWeite = $HTTP\_GET\_VARS['BildschirmWeite']; 
$BildschirmHoehe = $HTTP\_GET\_VARS['BildschirmHoehe'];
$ABildschirmWeite = $HTTP\_GET\_VARS['ABildschirmWeite']; 
$ABildschirmHoehe = $HTTP\_GET\_VARS['ABildschirmHoehe'];
$Farbtiefe = $HTTP\_GET\_VARS['Farbtiefe']; 
$Pixeltiefe = $HTTP\_GET\_VARS['Pixeltiefe'];
$ip = getenv(REMOTE\_ADDR);
$host = gethostbyaddr($ip);
mysql\_query("INSERT INTO $db\_table (appcodename, appname, appversion, cookiesenabled, applanguage, appplatform ,appuseragent, javaenabled, swidth, sheight, aswidth, asheight, cdepth, pdepth, ip, host) VALUES('$AppCodeName','$AppName','$AppVersion','$CookiesEnabled','$AppLanguage','$AppPlatform','$AppUserAgent','$JavaEnabled','$BildschirmWeite','$BildschirmHoehe','$ABildschirmWeite','$ABildschirmHoehe','$Farbtiefe','$Pixeltiefe','$ip','$host')") OR DIE(mysql\_error());

include('db\_close.php');
?\>

Anhand der index.php und stat.php kann ich nun alle Infos, die JavaScript hergibt, auslesen und in die Datenbank speichern!! Wenn JavaScript deaktiviert ist, natürlich nicht…siehe was passieren würde, wenn JavaScript deaktiviet ist…

So dies, wird euch bestimmt weiterhelfen.

Grüsse und besten dank an dog.je für den Lösungsansatz!!

Schönen Tag.
Sebastian

Ich poste jetzt hier mal meine Lösung:
In der index.php hab ich im
folgende Zeilen:

var urlString = „AppCodeName=“ + navigator.appCodeName +
„&“ + „AppName=“ + navigator.appName + „&“ + „AppVersion=“ +

„ABildschirmWeite=“ + window.screen.availwidth + „&“ +
„ABildschirmHoehe=“ + window.screen.availheight + „&“ +
„Farbtiefe=“ + window.screen.colordepth + „&“ + „Pixeltiefe=“

  • window.screen.pixeldepth;
    var file = „stat/stat.php?“;
    var full = file + urlString;
    document.write("<img src=’"+full+"’ border=‚0‘
    width=‚1‘ height=‚1‘ class=‚no‘/>");

Bei mir wird Folgendes ausgegeben:

Die stat.php im Ordner stat sieht so aus:

<?php :include('config-stat.php');
include('db\_connect.php'); $AppCodeName = $HTTP\_GET\_VARS['AppCodeName'];

$Farbtiefe = $HTTP_GET_VARS[‚Farbtiefe‘];
$Pixeltiefe = $HTTP_GET_VARS[‚Pixeltiefe‘];
$ip = getenv(REMOTE_ADDR);
$host = gethostbyaddr($ip);
mysql_query("INSERT INTO $db_table
(appcodename, appname, appversion,
cookiesenabled,

sheight, aswidth, asheight, cdepth, pdepth, ip, host)
VALUES(’$AppCodeName’,’$AppName’…,’$Farbtiefe’,’$Pixeltiefe’,’$ip’,’$host’)")
OR DIE(mysql_error());

include(‚db_close.php‘);
?>

Anhand der index.php und stat.php kann ich nun alle Infos, die
JavaScript hergibt, auslesen und in die Datenbank speichern!!
Wenn JavaScript deaktiviert ist, natürlich nicht…siehe
was passieren würde, wenn
JavaScript deaktiviet ist…

So dies, wird euch bestimmt weiterhelfen.

ist seit ~ 100 jahren usus so zu tun, hat also genau 0 neuigkeitswert und wird damit genau niemandem weiterhelfen.

Grüsse und besten dank an dog.je für den Lösungsansatz!!

sag nicht das obige waere mein loesungsansatz.

ich habe nicht gesagt, du sollst wild nicht vorhandene js-objekte abfragen.

ich habe nicht gesagt, du sollst url-parameter nicht escapen.

ich nicht gesagt du sollst alte sprachelemente (HTTP_???_VARS http://de2.php.net/manual/de/reserved.variables.php) nutzen

ich habe nicht gesagt du sollst user-zeit verschwenden, indem du sachen $ip = getenv(REMOTE_ADDR); $host = gethostbyaddr($ip);
abfragst, die nicht schon in $_SERVER stuenden.

ich habe nicht gesagt, du sollst userinput nicht filtern.

ich habe nicht gesagt, du sollst keinen datenbank abstraktionslayer nutzen.

1 Like