Difference between revisions of "Visitor Logger (Web/Basic)"
Line 86: | Line 86: | ||
for (i = 0; i < num; i++) | for (i = 0; i < num; i++) | ||
{ | { | ||
string name = llDetectedName( | string name = llDetectedName(i); | ||
if (name != last_visitor) | if (name != last_visitor) | ||
{ | { | ||
string url = "http://www.YOURSITE.URL/get_data.php?"; | |||
url += "name=" + llEscapeURL(name); | |||
url += "&key=" + llEscapeURL((string)llDetectedKey(i)); | |||
url += "&object=" + llEscapeURL(llGetObjectName()); | |||
llHTTPRequest(url ,[HTTP_METHOD,"GET"],""); | |||
last_visitor = name; | last_visitor = name; | ||
} | } |
Revision as of 18:05, 16 March 2008
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Notes
I was asked to log visitors for a two-day event a while ago, and then asked if the scripts I used could be given to original users. Being very simple scripts, I didn't want to charge for these, and so I've decided to make them public.
Licence info
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You can obtain a copy of the GNU General Public License from here: [1].
The software is copyright (c) Daniel Livingstone 2008
Use:
Upload the server side script to your web server, and place the LSL script a phantom prim in SL - the script will turn the prim invisible if it is not already. Ideal placement may be a small prim at waist height at a telehub, or at floor level covering a large area where users might walk through. You will need to edit the LSL script with the appropriate URL for your server.
Serverside script:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Simple Visitor Logger</TITLE> </HEAD> <BODY LINK="#0000FF" VLINK="#800080"> <?php $name = htmlspecialchars($_GET['name']); $object = htmlspecialchars($_GET['object']); $key = htmlspecialchars($_GET['key']); $ip = $_SERVER['REMOTE_ADDR']; $ref = $_SERVER['HTTP_REFERER']; $dtime = date('r'); if($ref == ""){ $ref = "None"; } if($name == ""){ $name = "anon"; } ?> Hello <?php echo $name ?>. thank you for visiting. <?php $entry_line = "$dtime - IP: $ip | name: $name | object: $object\n"; $fp = fopen("visitors.txt", "a"); fputs($fp, $entry_line); fclose($fp); ?> </BODY> </HTML>
LSL script:
// Copyright (c) Daniel Livingstone 2008 // Released under GNU Public License GPL 3.0 string last_visitor = ""; default { state_entry() { llSetAlpha(0,ALL_SIDES); llVolumeDetect(TRUE); } collision_start(integer num) { integer i; for (i = 0; i < num; i++) { string name = llDetectedName(i); if (name != last_visitor) { string url = "http://www.YOURSITE.URL/get_data.php?"; url += "name=" + llEscapeURL(name); url += "&key=" + llEscapeURL((string)llDetectedKey(i)); url += "&object=" + llEscapeURL(llGetObjectName()); llHTTPRequest(url ,[HTTP_METHOD,"GET"],""); last_visitor = name; } } } http_response(key id,integer status, list data, string body) { //llOwnerSay(body); //llOwnerSay("here!"); } }