Avatar billede flim Nybegynder
24. marts 2004 - 10:26 Der er 30 kommentarer og
1 løsning

Hvordan gemmer jeg opløsningen?

Goddag!

Jeg vil gerne lave lidt statistik over mine brugere på mit site. Det er måske en del relateret til Javascript, men mener nu alligevel det hører til her.

Kan jeg ikke finde opløsningen og gemme den i en variabel, som jeg derefter putter i databasen, og laver grafen derfra?

Det jeg er mest i tvivl om er hvordan jeg trækker opløsningen ud og gemmer den i en variabel?

Når jeg først har den der, burde resten være en smal sag.

Håber I kan hjælpe.

Mvh Flim
Avatar billede purecaca Nybegynder
24. marts 2004 - 10:47 #1
en ide til hvordan det kan laves:

<script type="text/javascript" language="JavaScript"><!--

document.write('<img src="counter.php?w=' + screen.width + '&h=' + screen.height + '" width=0 heigh=0>');

//--></script>

så vil counter.php have størelsen i w / h variabler, bare en ide, javascriptet skrevet direkte fra hukommelse, så ikke testet.
Avatar billede purecaca Nybegynder
24. marts 2004 - 10:48 #2
counter.php skal så bare sende et transparent gif billede tilbage
Avatar billede taskmgr Nybegynder
24. marts 2004 - 10:50 #3
Javascript er ikke min stærkeste side, så jeg ved ikke om det er den rigtige måde at gøre det på, men prøv med det her:

<?php
$bredde = "<script language='JavaScript'>
document.write(window.screen.width)
</script>";

$hojde = "<script language='JavaScript'>
document.write(window.screen.height)
</script>";

echo "Bredde: " . $bredde . "<br>";
echo "Højde: " . $hojde . "<br>";
?>

Så har du altså bredden i $bredde og højden i $hojde.

Her virker det:
http://rostved.net/eksperten/resolution.php
Avatar billede flim Nybegynder
24. marts 2004 - 13:04 #4
taskmgr - det var nok din løsning jeg gerne vil have haft til at virke...

Jeg er ikke hjemme lige nu, men tester det omkring kl. 16. Hvis det virker får du dine points :)
Avatar billede flim Nybegynder
24. marts 2004 - 13:08 #5
Nå, jeg kunne jo så lige teste her i pausen. Ser ud til at virke fint. Nu har jeg det i en variabel, og så burde jeg nemt kunne smække det ind i min database :)
Avatar billede purecaca Nybegynder
24. marts 2004 - 13:10 #6
ja bortset fra hans var client side, mit var server side, så du kan stadig ikke få fat i det fra et php script :)
Avatar billede flim Nybegynder
24. marts 2004 - 13:13 #7
Jeg udskriver ellers fra en variabel, og det tal jeg har i den variabel burde jeg vel kunne skrive til databasen...

Well, jeg checker det lige endeligt når jeg engang kommer hjem...
Avatar billede purecaca Nybegynder
24. marts 2004 - 13:15 #8
du har netop ikke et tal i variablen $bredde, den indeholder et javascript ("<script language='JavaScript'>
document.write(window.screen.width)
</script>) der skriver i browseren hvad opløsnignen er;

men det finder du jo sikkert ud af senere når du reelt sætter dig ind i client vs server side kode.
Avatar billede flim Nybegynder
24. marts 2004 - 13:18 #9
Ja sgu da...

Kan jo godt se nu at du har ret :(

Jeg kan lige så godt skrive det hele uden php-kode....

Well, nu er pointe desværre givet.

Dit er måske bedre, da du rent faktisk sender begge tal med til en ny side, og derfra kan de så puttes i databasen. Korrekt?
Avatar billede purecaca Nybegynder
24. marts 2004 - 13:23 #10
nej, det mit kode gør er at lave et billede tag (<img>), der requester en side (counter scriptet her) som så sender et blank gif billede tilbage (kode ikke vist, men simpelt at gøre), i counter.php er der så 2 variabler w + h der indeholder henholdsvis breden/højden hvor du så kan gemme det i en db eller lign.

samme måde chart.dk ovs benytter sig af, der generer de bare et dynamisk billede og sender det tilbage, men princippet er det samme.
Avatar billede flim Nybegynder
24. marts 2004 - 13:28 #11
Aha!

Havde lige overset dit img-tag :)

Well - det er da godt nok pænt bøvlet, men jeg tror rent faktisk at jeg har fattet princippet.

Jeg bliver nødt til at rode lidt med det når jeg kommer hjem, har ikke mere tid nu her. Men jeg skriver lige igen når jeg har brugt et par timer på det...
Avatar billede taskmgr Nybegynder
24. marts 2004 - 13:29 #12
purecaca: På hvilken måde var dit serverside???

Jeg gik ud fra at du ville detecte opløsningen på en bruger, og så f.eks. smide det ind i en db.
Avatar billede taskmgr Nybegynder
24. marts 2004 - 13:30 #13
...hvilket mit eksempel sagtens kan bruges til
Avatar billede purecaca Nybegynder
24. marts 2004 - 13:32 #14
i og med du fra PHP kan se hvad brugesn opløsning er, kan du ikke med dit, såre simpelt.
Avatar billede taskmgr Nybegynder
24. marts 2004 - 13:38 #15
Den eneste forskel er, at du sender opløsningen til et andet dokument, og jeg smider det i to variabler.

Begge kræver at brugeren lander på den side hvor vores koder er. Prøv at køre dit script i command-line, og fortæl mig så igen at det er server-side.
Avatar billede purecaca Nybegynder
24. marts 2004 - 13:38 #16
med mit kan man lave;

<?php
$iW = _REQUEST['w']
$iH = _REQUEST['h']

if ( $iW > 1024 )
{
// Brugens opløsning er større end 1024, lad os da logge det;
$link = mysql_connect("mysql_host", "mysql_user", "mysql_password");
mysql_select_db("my_database");
$query = "INSERT INTO log(w,h) VALUES($iW,$iH)";
mysql_close($link);
}
?>
Avatar billede purecaca Nybegynder
24. marts 2004 - 13:40 #17
>>taskmgr mit kode sender en forespørgsel til en php side der modtager hvad javascriptet siger størelsen er, dit gør nada andet end skrive det i selve browseren, det kan man ikke bruge til at gemme ret meget i en db med.
Avatar billede purecaca Nybegynder
24. marts 2004 - 13:41 #18
$iW = _REQUEST['w']
$iH = _REQUEST['h']

skulle selvf være;
$iW = _REQUEST['w'];
$iH = _REQUEST['h'];
Avatar billede purecaca Nybegynder
24. marts 2004 - 13:42 #19
og mysql_query($query);
doh :)
Avatar billede taskmgr Nybegynder
24. marts 2004 - 13:45 #20
Ok? Jamen så prøv dog med det her...

<?php
$bredde = "<script language='JavaScript'>
document.write(window.screen.width)
</script>";

$hojde = "<script language='JavaScript'>
document.write(window.screen.height)
</script>";

echo "Bredde: " . $bredde . "<br>";
echo "Højde: " . $hojde . "<br>";

// Nu indsætter vi det i databasen

mysql_connect("host","bruger","passwd") or die (mysql_error());
$query = "INSERT INTO resolution (width,height) VALUES ('$bredde', '$hojde')";
mysql_select_db("din_db") or die (mysql_error());
mysql_query($query) or die (mysql_error());

echo "Så blev det sat ind....";
?>
Avatar billede purecaca Nybegynder
24. marts 2004 - 13:46 #21
så vil din database indeholde;

<script language='JavaScript'>
document.write(window.screen.width)
</script>
ikke værdien, men det javascript der, det kan man ikke se meget størelse af, prøv det selv.
Avatar billede taskmgr Nybegynder
24. marts 2004 - 13:46 #22
du mener nok $_REQUEST...
Avatar billede purecaca Nybegynder
24. marts 2004 - 13:48 #23
php er ikke det jeg programmerer i, så ja mangler der også.

(C# i asp.net er det jeg bruger, men princippet er det samme i php hvad angår client/server derfor jeg svarede her, mit princip vil virke, dit vil ikke, prøv at se hvad du får i din db med det script der.)
Avatar billede taskmgr Nybegynder
24. marts 2004 - 13:57 #24
Ja du har ret, jeg beklager.

Men jeg forstår ik' at du holder på at det er server-side...
Avatar billede purecaca Nybegynder
24. marts 2004 - 13:58 #25
er heller ikke javascriptet jeg påstår er server side, men det sender et request til et php script, hvor man så serverside kan se hvad opløsningen er
Avatar billede flim Nybegynder
24. marts 2004 - 14:03 #26
Takker begge to for svar. Og jeg tror faktisk at vi/I blev enige om at taskmgr's desværre ikke kunne bruges, da purecasa så flot sagde at det kun var på klientsiden.

purecasa - du burde have et par point, og hvis du mangler, så skriv et svar i en ny tråd, og jeg giver dig lidt der. På forhånd tak for denne gode diskussion :)
Avatar billede taskmgr Nybegynder
24. marts 2004 - 14:07 #27
Nej jeg giver naturligvis pointene til purecaca :)
http://www.eksperten.dk/spm/481365
Avatar billede purecaca Nybegynder
24. marts 2004 - 14:14 #28
er her ikke for point

http://new.sys-adm.dk/

viser mit kode (godt nok i asp), første gang siden vises, gemmes størelsen fra counter.asp scriptet i en session variabel, næste gang siden reloades skrive indholdet af session'en, tjek kilden før/efter, ikke noget magic i det.
Avatar billede taskmgr Nybegynder
24. marts 2004 - 14:20 #29
Ok. Så lærte vi også noget i dag :)

Måske skulle man læse lidt mere på det dér Javascript...
Avatar billede purecaca Nybegynder
24. marts 2004 - 14:27 #30
det er muligt at få meget mere info om browseren på den her måde, bla hvilke plugins brugere har ovs, på;
http://www.cgi-bin.com/JavaScript/Browser_Info_and_Stats/
kan man se en masse eksempler på javascript der viser info om forskellige ting (ren client side), men kan ses fra serveren via samme princip som scriptet længere oppe på siden.
Avatar billede flim Nybegynder
24. marts 2004 - 16:24 #31
Fanme jo - nu virker skidtet. På min counter-side smækker jeg dem bare i databasen osv...

Så dem der nu tilgår siden mærker intet, da de hurtig bliver viderestillet til en side for at hente et tomt billede :)

Takker mange gange for hjælp :)
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

IT-JOB

IT Forum Gruppen

Senior Sales Manager hos ITF

Capgemini Danmark A/S

Open Application (Denmark)

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger IT-supporter til lokal IT Korsør

Capgemini Danmark A/S

Strategy & Transformation Consultant

Everllence

R&D Data Scientist