Zur Navigation

Bildschirmauflösung übergeben

1 Marcel (Gast)

So, ich bin's nochmal. Habe gleich noch 'ne Frage.

Für meinen Besuchercounter möchte ich außer der IP, dem Referer und dem Browser auch noch die Bildschirmauflösung auslesen. Dafür habe ich mal ein bisschen gegoogelt und oft gelesen, dass so etwas mit PHP nicht möglich. Als Alternative wurde JavaScript geboten. Allerdings habe ich keine Ahnung von JavaScript und im Internet leider auch nichts Passendes gefunden:

Ich möchte gerne die entsprechende Auflösung auslesen (Breite sowie Höhe) und diese in die MySQL Datenbank schreiben. Wie kann ich sowas verwirklichen?

01.07.2006 21:05

2 Rudy

PHP kann das natürlich nicht, weil es eine serverseitige Sprache ist und somit vom Benutzer-PC/Mac keine Ahnung hat. Javascript läuft auf Client-seite, damit geht es.

Die Breite kannst Du auslesen mit screen.width, die Höhe mit screen.height.

Irgendwie musst Du nun noch diese Daten vom Client auf den Server bekommen. Das geht wie immer entweder über Post-, Cookie- oder Get-Daten. Da Du mit Javascript auch Cookies setzen kannst, bietet sich dieser Weg an.

Diese Cookie-Funktion hier ist ergoogelt:
function set_cookie( name, value, expires, path, domain, secure ) 
{
// set time, it's in milliseconds
var today = new Date();
today.setTime( today.getTime() );

/*
if the expires variable is set, make the correct 
expires time, the current script below will set 
it for x number of days, to make it for hours, 
delete * 24, for minutes, delete * 60 * 24
*/
if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );

document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
( ( path ) ? ";path=" + path : "" ) + 
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}

So könntest Du z.B. das Cookie mit Javascript unter Benutzung obiger Funktion setzen:

set_cookie( 'screen_res', screen.width+'x'+screen.height, '', '/', '', '' );

in einem späteren Moment, also nach Setzen des Cookies durch Javascript, liest Du dann am Server mit PHP das Cookie aus:

$screenres = $_COOKIE['screen_res'];

Und machst dann mit den Daten was Dir beliebt.

01.07.2006 21:25

3 Marcel (Gast)

Danke. Aber wäre das nicht auch noch irgendwie leichter möglich?

01.07.2006 21:30

4 Rudy

Aber wäre das nicht auch noch irgendwie leichter möglich?

Na ja...

- Wenn Du einen Login hast, könntest Du das direkt dort in einem Hidden-Field unterbringen und die Daten per Post übertragen. Das geht aber nur, wenn der Nutzer einen Post ausführt.

- Du könntest einen Redirect mit Javascript document.location.href auf der Index-Seite einbringen, und die Daten mit Get auslesen. Der Benutzer sieht das aber und kann die Daten durch URL-Eingabe verfälschen.

01.07.2006 21:35

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]