Avatar billede d.kryger Praktikant
06. juli 2005 - 09:58 Der er 20 kommentarer og
1 løsning

Statistik over brugeropløsning

På min side kunne jeg godt tænke mig en statistik over hvilken opløsning mine besøgende har.

Men hvordan henter man det ud?
Kan man ikke noget ligesom $ipadresse = $_SERVER["REMOTE_ADDR"];?

PS. Jeg gider ikke bruge diverse sider på nettet!
Avatar billede jakobdo Ekspert
06. juli 2005 - 10:52 #1
Du kan lave noget i stil med:

<script type="text/javascript">
    document.write('<img src="image.php?w='+screen.width+'&h='+screen.height+'">');
</script>

Og så laver du filen: image.php og inde i den gemmer du info og viser et billede.
Avatar billede d.kryger Praktikant
06. juli 2005 - 10:55 #2
Kan man ikke bare nøjes med at hive width og height ud?
Avatar billede jakobdo Ekspert
06. juli 2005 - 10:56 #3
Det gør du jo også! :o)
Avatar billede jakobdo Ekspert
06. juli 2005 - 10:58 #4
Men det er den eneste måde hvor brugeren ikke skal reloade.
PHP er server-side, javascript er client-side.
Så når php'en afvikles, så kender den ikke din brugers opløsning.
Det gør den når den prøver at hente billedet.
Avatar billede d.kryger Praktikant
06. juli 2005 - 10:58 #5
Ja det kan jeg godt se, men jeg skal ikke have vist et billede... Den skal blot åbne min hjemmeside.
Avatar billede jakobdo Ekspert
06. juli 2005 - 11:03 #6
Jaja!
Men billedet kan du jo "bare" lave som et 1x1 transparent gif...
Så ser ingen det, men du får opløsningen alligevel!
Avatar billede d.kryger Praktikant
06. juli 2005 - 11:20 #7
Ja, det kan jeg godt se nu... SMART...

MEN jeg har så prøvet at lave en lille test, men den finder ikke billedet, når jeg besøger test.php, men hvis jeg besøger image.php, så finder den billedet. Den skriver heller ikke noget ved "Bredde" eller "Højde", hvorfor ikke?

test.php:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Ny side 1</title>
<script type="text/javascript">
    document.write('<img src="image.php?w='+screen.width+'&h='+screen.height+'">');
</script>
</head>

<body>

<?php

    print "<br>";
    print "Bredde: $w.<br>";
    print "Højde: $h.<br>";

?>

</body>

</html>

image.php:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Ny side 1</title>
<script type="text/javascript">
    document.write('<img src="image.php?w='+screen.width+'&h='+screen.height+'">');
</script>
</head>

<body>

<?php

    print "<br>";
    print "Bredde: $w.<br>";
    print "Højde: $h.<br>";

?>

</body>

</html>
Avatar billede jakobdo Ekspert
06. juli 2005 - 11:23 #8
image.php skal evt være sådan her:

<?php
$height = $_GET['h'];
$width = $_GET['w'];
header("Content-type: image/png");
$im = @imagecreate(1, 1) or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 255, 255, 255);
imagepng($im);
imagedestroy($im);
?>
Avatar billede d.kryger Praktikant
06. juli 2005 - 11:29 #9
Hvordan skal test.php så være?
På den vil jeg gerne have udskrevet højde og bredde...
Avatar billede jakobdo Ekspert
06. juli 2005 - 11:37 #10
Sådan evt:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Ny side 1</title>
</head>

<body>

<script type="text/javascript">
    document.write('Bredde: ' + screen.width + '<br>Højde: ' + screen.height + '<br><img src="image.php?w='+screen.width+'&h='+screen.height+'">');
</script>

</body>

</html>
Avatar billede d.kryger Praktikant
06. juli 2005 - 11:39 #11
Tak så virker det...
Avatar billede d.kryger Praktikant
06. juli 2005 - 11:40 #12
Læg et svar for point...
Avatar billede jakobdo Ekspert
06. juli 2005 - 11:55 #13
Svar...
Avatar billede jakobdo Ekspert
06. juli 2005 - 11:57 #14
PS: Husk at hvis du vil gemme højde og bredde for en bruger, så kan du i image.php lave følgende:
<?php
$height = $_GET['h'];
$width = $_GET['w'];

include("connect.php"); //Eller hvad din Database connection fil kaldes...

//Vi gemmer brugerens højde og bredde i databasen.
mysql_query("INSERT INTO statistik(id,height,width) VALUES('','".$height."','".$width."')");

header("Content-type: image/png");
$im = @imagecreate(1, 1) or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 255, 255, 255);
imagepng($im);
imagedestroy($im);
?>
Avatar billede jakobdo Ekspert
06. juli 2005 - 11:57 #15
Tak for point.
Avatar billede d.kryger Praktikant
06. juli 2005 - 12:35 #16
Når jeg sætter min kode fra test.php ind på en side med en baggrundsfil, så kommer der en hvid prik på 1x1 pixel, der hvor jeg har sat koden ind.

Kan man ikke få den til at blive gennemsigtig?
Avatar billede jakobdo Ekspert
06. juli 2005 - 12:37 #17
Det skulle jeg mene jo! :o)
Kigger lige på det!
Avatar billede jakobdo Ekspert
06. juli 2005 - 12:41 #18
Tilføj dette:

$background_color = imagecolorallocate($im, 0, 0, 0);
imagecolortransparent($im,$background_color);
imagepng($im);
Avatar billede d.kryger Praktikant
06. juli 2005 - 13:53 #19
Jeg har nu prøvet at tilføje det så det ser sådan ud, men "prikken" forsvinder ikke:
$height = $_GET['h'];
$width = $_GET['w'];

$result = mysql_query("SELECT * FROM statistik_skaermoploesning WHERE bredde=$width AND hoejde=$height");

if (mysql_num_rows($result)==0)
{
    mysql_query("INSERT INTO statistik_skaermoploesning (bredde, hoejde, antal) VALUES ($width, $height, 1)");
}
else
{
    mysql_query("UPDATE statistik_skaermoploesning SET antal=antal+1 WHERE bredde=$width AND hoejde=$height");
}

header("Content-type: image/png");
$im = @imagecreate(1, 1) or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 255, 255, 255);
imagepng($im);
imagedestroy($im);
$background_color = imagecolorallocate($im, 0, 0, 0);
imagecolortransparent($im,$background_color);
imagepng($im);

Jeg har også prøvet kun at have disse tre linier, men med samme resultat:
$background_color = imagecolorallocate($im, 0, 0, 0);
imagecolortransparent($im,$background_color);
imagepng($im);
Avatar billede d.kryger Praktikant
06. juli 2005 - 13:59 #20
Min fejl... Det virker...
Avatar billede jakobdo Ekspert
06. juli 2005 - 14:04 #21
Top nice!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester