Avatar billede limemedia Nybegynder
22. december 1999 - 15:17 Der er 27 kommentarer og
1 løsning

Site analyzer med PHP

Jeg vil gerne lave en visitor analyzer til min side. Den jeg har er lidt elendig.

Jeg har brug for oplysninger som ben besøgendes IP, referrer, skærmopløsning samt alt det der... Og det er simpelt at hive dette ud via JS.

Kan det gøres i PHP ? (det skal i en mySQL DB) - Jeg vil ikke parameteroverføre alle oplysninger vha. GET.

Evt. kan jeg med JS fylde informationerne i en form og så submitte den. Virker form.submit() også i ældre browsere.

Point'se indikerer jeg gerne vil have svar ASAP... (Points betyder ikke så meget, hvis du vil have flere...)
Avatar billede lopa Nybegynder
22. december 1999 - 15:38 #1
Der findes en række Environment Variables du umiddelbart kan tilgå:

$HTTP_ACCEPT: En liste med de medie typer klienten kan acceptere
$HTTP_COOKIE: En liste med de cookies der er defineret for den
                          pågældende URL
$HTTP_REFERER: Hvilken URL henviste til dette script (Hvis nogen)
$HTTP_USER_AGENT: Klient browseren
$REMOTE_ADDR: IP adressen klienten kommer fra
$REMOTE_HOST: Klientens hostname
$REMOTE_IDENT: Brugeren der forsøger at tilgå siden
$REMOTE_USER: Den godkendte bruger der  tilgår siden

Dette giver ikke alle informationerne du ønsker, men giver dog en del
oplysninger
Avatar billede lopa Nybegynder
22. december 1999 - 15:49 #2
Det var ment som et svar.

Samt at $REMOTE_IDENT og $REMOTE_USER kun findes hvis klienten
er blevet promptet for et login
Avatar billede limemedia Nybegynder
22. december 1999 - 16:00 #3
hvad med Color Depth ect. Skærmopløsning.
Avatar billede limemedia Nybegynder
22. december 1999 - 16:01 #4
kræver det ikke get_browser() ???

eks. fra Online FAQ
---
<?php
function list_array( $array ) {
  while ( list( $key, $value ) = each( $array ) ) {
      $str .= "<b>$key:</b> $value<br>\n";
  }
  return $str;
}
echo "$HTTP_USER_AGENT<hr>\n";
$browser = get_browser();
echo list_array( (array) $browser );
?>
---
Avatar billede limemedia Nybegynder
22. december 1999 - 16:05 #5
dumt spørgsmål... ignorer sidste kommentar ;o(

Jeg er vist ved at være træt
Avatar billede lopa Nybegynder
22. december 1999 - 16:11 #6
Du kan ikke få farvedybde og skærm opløsning fra PHP, der er du nok nødt til at ty til javascript.

Ok jeg ignorerer det sidste ;-)
Avatar billede limemedia Nybegynder
22. december 1999 - 16:16 #7
kan jeg ikke ligge det i en form og automatisk submitte eller kræver det at jeg sender info som GET ?

Jeg har mange spørgsmål, men der også mange point på spil...

LOPA, du skal nok få dem...
Avatar billede lopa Nybegynder
22. december 1999 - 16:26 #8
Nu er jeg ikke så meget hjemme i javascript, men jeg kan ikke se det skulle
være nødvendigt at benytte get, så en form som automatisk submitter
ville nok være et ganske fornuftigt bud.
Avatar billede limemedia Nybegynder
22. december 1999 - 16:31 #9
Spørgsmålet er om det også virker i andet end MSIE5... Jeg kan se i min statestik, at 133 forskellige browsere eller spiders har besøgt min side.
Avatar billede thkrath Nybegynder
22. december 1999 - 16:31 #10
Jeg tror ikke PHP kan sladre om den besøgendes skærmopløsning, PHP er jo serverside...
Avatar billede lopa Nybegynder
22. december 1999 - 16:36 #11
Problemet er jo også at folk kan slå javascript  fra og så er du lige vidt.

Hvad skal du bruge farvedybde og skærmopløsning til?
Avatar billede limemedia Nybegynder
22. december 1999 - 16:46 #12
så jeg kan optimere mine sider/publikationer til den gennemsnitlige besøgende

Folk slår normalt ikke JS fra - af hvad jeg kender til
Avatar billede razor Nybegynder
22. december 1999 - 18:50 #13
jeg ville bruge webalizer til at undersøge mine logfiler.

http://www.mrunix.net/webalizer/
Avatar billede limemedia Nybegynder
22. december 1999 - 19:39 #14
ja tak... det var jo ikke lige det spørgsmålet gik ud på
Avatar billede razor Nybegynder
22. december 1999 - 20:10 #15
ikke?
Avatar billede limemedia Nybegynder
22. december 1999 - 20:13 #16

Avatar billede razor Nybegynder
22. december 1999 - 20:17 #17
hvis du bare vil have env. variablerne kunne det anbefales at køre en phpinfo();

BTW. hvad er der galt med webalizer?
Avatar billede limemedia Nybegynder
22. december 1999 - 20:21 #18
Der er ikke noget galt... Det skal bare køre på flere forskellige systemer, både lokale servere samt dedikerede leasede servere... Små scripts til kunder, analyse af forskellige områder m.v.
Avatar billede razor Nybegynder
22. december 1999 - 20:28 #19
flere systemer?
-Linux
-Solaris 2.6
-SunOS 4.1
-Digital OSF1/4.0d
-FreeBSD 3.x
-BSDI BSD/OS 3.
-MacOSX
-OS/2
-Win32
kan den køre på?

>små scripts til kunder?

mange isp'er bruge webalizer fordi den er let at håndtere..
Avatar billede chruker Nybegynder
22. december 1999 - 20:30 #20
Jeg har kopieret følgende fra min hjemmeside. Det er den kode som henter tælleren fra http://www.thecounter.com  Så vidt jeg ved så overføre javascriptet mange af de ting som ljweb vil have. Undskyld koden ikke er sat pænt op, men jeg har ikke lige tid.

<!-- Start of TheCounter.com Code -->
<SCRIPT><!--
s="na";c="na";j="na";f=""+escape(document.referrer)
//--></SCRIPT>
<SCRIPT language="javascript1.2"><!--
s=screen.width;v=navigator.appName
if (v != "Netscape") {c=screen.colorDepth}
else {c=screen.pixelDepth}
j=navigator.javaEnabled()
//--></SCRIPT>
<SCRIPT><!--
function pr(n) {document.write(n,"\n");}
NS2Ch=0
if (navigator.appName == "Netscape" &&
navigator.appVersion.charAt(0) == "2") {NS2Ch=1}
if (NS2Ch == 0) {
r="&size="+s+"&colors="+c+"&referer="+f+"&java="+j+""
pr("<A HREF=\"http://www.TheCounter.com\" TARGET=\"_top\"><IMG")
pr("BORDER=0 SRC=\"http://c1.thecounter.com/id=374906"+r+"\"></A>")}
//-->
</SCRIPT>

Jeg kan godt prøve at sætte det ordentlig op, men det bliver ikke lige nu.
Avatar billede limemedia Nybegynder
22. december 1999 - 22:15 #21
umm, det ser ud til at vi er ved at køre af sporet... De to spørgsmål lød:

---
Kan det gøres i PHP ? (det skal i en mySQL DB) - Jeg vil ikke parameteroverføre alle oplysninger vha. GET.

Evt. kan jeg med JS fylde informationerne i en form og så submitte den. Virker form.submit() også i ældre browsere.
---

Indtil nu har jeg delvist fået svar på 1... *hmmm*

Jeg er fuldt klar over hvorledes jeg får mine informationer og har allerede Javascript samt et Perl script der kan håndtere opgaven... Nu var det lige, om PHP kunne også, således jeg nemt kunne få informationerne i en database...

Avatar billede lopa Nybegynder
23. december 1999 - 13:33 #22
Men hvorfor mener du så du kun har fået løst spørgsmålet delvist?

De informationer du ikke kan få fra PHP får du fra javascript, post submitter disse til et php script, smider denne info i DB'en sammen med de informationer du kan få fra Environment variablerne.
Avatar billede limemedia Nybegynder
30. december 1999 - 17:34 #23
kan man eller kan man ikke automatisk submitte en form... så det virker i gængse browsere

derfor!
Avatar billede morten Nybegynder
30. december 1999 - 18:22 #24
PX: PHP Code Exchange (http://px.sklar.com/) har en script til php3 som du nemt kan indsætte i en database. (scriptet er baseret på den kommentar som ljweb indsatte den 22-12-99 16:01:48 - altså Environment Variables).

Du kan bare include scriptet samt include et nyt script som sender oplysningerne ind i databasen. Du include'er selvfølgelig fra den side som du gerne vil lave webanalyse af. (I mit tilfælde har jeg include'et fra en anden include-fil, som indeholder footer-oplysninger.) Er du med? -ellers skriv blot.
Husk blot at 'filen som du vil web analysere' selvfølgelig skal have ekstension *.php

Mht. Skærmopløsning mv. skriver du at du kan hente det via. JS, og hvis det er sandt er det vel lige til.
Jeg har ikke selv rodet så meget med JS, men hvis du har et JS-script der kan dette hører jeg meget gerne.

Jeg er nemlig selv ved at lave min egen webanalyse - og jeg har den ide, at jeg bygger alle mine egne script fra bunden. Det lærer jeg en masse af, men det tager en hulens tid.

Med venlig hilsen
Morten

Principelt har lopa (23-12-99) sådan set givet dig det samme svar som jeg har - har jeg lige opdaget.... Undskyld, men måske kan du bruge mit alligevel.
Avatar billede thkrath Nybegynder
30. december 1999 - 19:26 #25
morten>> Skærmopløsning i JS:

var ss=screen.width+'*'+screen.height;

hvis du printer ss så får du eksemplvis 800*600 hvis brugerens skærm er opløst i 800*600 punkter...
---
Avatar billede limemedia Nybegynder
30. december 1999 - 19:38 #26
morten >> eksempel følger

---

<html>
<head>
<title>Basic Browser Detect</title>
<script language="JavaScript">
<!--begin head script
var browserName = navigator.appName
var browserVersion = navigator.appVersion
var browserVersionNum = parseFloat(browserVersion)
var agt=navigator.userAgent
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'}
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';}
var availheight = "unknown"
var availwidth = "unknown"
var bufferdepth = "unknown"
var colordepth = "unknown"
var height = "unknown"
var width = "unknown"
var javaOK = "unknown"
var cookies = "unknown"
var cpu = "unknown"
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="Yes"}else{javaOK="No"}
//--cookiesEnabled only works in MSIE.
if (browserName=="Microsoft Internet Explorer") {
if (navigator.cookieEnabled==true) {cookiesOK="Yes"
}else{
cookiesOK="No"
}
}
var cpu = navigator.cpuClass
}
//-->
</script>
</head>
<body bgcolor="#cccc99" text"#000000" link="#993333" vlink"#cc9900" alink"#ffffcc">
<blockquote>
<h2>Detecting Browser, OS, Screen and Tech Info</h2>
<p>The JavaScript on this sniffs information from the browser including platform, Java, cookies, screen resolution, color depth, and processor speed. We can also use JavaScript to reflect information back to us asfollows:
<p>
<script language="JavaScript">
document.write("Your browser is <b>" + browserName +"</b><br>")
document.write("Your browser version is <b>" + browserVersion +"</b><br>")
document.write("Your browser version number is <b>" + browserVersionNum +"</b><br>")
document.write("Your platform is <b>" + yourOS +"</b><br>")
document.write("Java Enabled? <b> " + javaOK +"</b><br>")
document.write("Cookies Enabled? <b>"+cookiesOK + "</b><br>")
document.write("Screen resolution: <b>"+width+" </b>x<b> "+height+"</b><br>")
document.write("Color depth: <b>" + colordepth + "</b><br>")
document.write("Available screen width: <b>" + availwidth + "</b><br>")
document.write("Available screen height: <b>" + availheight + "</b><br>")
document.write("CPU: <b>" + cpu + "</b></p>")
</script>
</blockquote>
</body>
</html>
Avatar billede morten Nybegynder
30. december 1999 - 21:48 #27
>> til jer begge

Tak jeg kigger på det...

Med venlig hilsen
Morten
Avatar billede tsocm Nybegynder
15. september 2001 - 15:05 #28
.
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