Difference between revisions of "Visitor Logger (Web/Basic)"

From Second Life Wiki
Jump to navigation Jump to search
Line 86: Line 86:
         for (i = 0; i < num; i++)
         for (i = 0; i < num; i++)
         {
         {
             string name = llDetectedName(0);
             string name = llDetectedName(i);
             if (name != last_visitor)
             if (name != last_visitor)
             {
             {
                 llHTTPRequest("http://www.YOURSITE.URL/get_data.php?"+"name="+ name  
                 string url = "http://www.YOURSITE.URL/get_data.php?";
                url += "name=" + llEscapeURL(name);
                url += "&key=" + llEscapeURL((string)llDetectedKey(i));
                url += "&object=" + llEscapeURL(llGetObjectName());


+"&key="+(string)llDetectedKey(i)+"&object="+llGetObjectName() ,[HTTP_METHOD,"GET"],"");
                llHTTPRequest(url ,[HTTP_METHOD,"GET"],"");
                 last_visitor = name;
                 last_visitor = name;
             }
             }

Revision as of 18:05, 16 March 2008

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!");
    }
}