#####################################################################
## Script in perl "segnala_sito v.1.2 ita" ##
## Per server con sistemi linux e unix ##
## ##
## © Copyright Marco Allegretti "shishii". ##
## Ciao, puoi usare questo script gratuitamente. ##
## ##
## Se vuoi utilizzarlo devi lasciare intatti i link presenti nello ##
## script e nella pagina html in cui vi è il form. ##
## ##
## Non puoi venderlo o cederlo in cambio di qualcosa senza il mio ##
## consenso scritto preventivo. ##
## ##
## Puoi contattarmi presso shishii@tiscalinet.it ##
## Il mio sito è www.shishii.com ##
## Ciao! ##
#####################################################################
## La versione 1.2 differisce dalla 1.1 esclusivamente per ##
## l'ottimizzazione del codice. Se hai già istallato la 1.1 e vuoi ##
## effettuare l'upgrade è sufficiente che sovrascrivi il file ##
## segnala_sito.cgi che trovi nello zip a quello precedente. ##
#####################################################################
I files che troverai nel file compresso sono:
1) segnala_sito.cgi
2) segnala_sito.html
3) segnalalog.html
4) contatore.txt
5) readme.html
#####################################################################
segnala_sito.cgi
Si tratta di uno script in perl funzionante su server con sitema operativo LINUX o UNIX
che consente di fare inviare, ad un visitatore, una email di segnalazione del tuo sito
ad un suo conoscente. Rispetto a molti script di questo tipo "segnala_sito v. 1.1 ita"
si distingue per essere scritto in lingua italiana e dotato di molte opzioni aggiuntive.
Alcune di queste attengono alla sicurezza. Infatti senza di queste potrebbe verificarsi
che il tuo script, residente sul tuo server, venga utilizzato per scopi illeciti, come
ad es. spamming, diffamazione, ingiurie, ecc.
Quindi è possibile impedire che lo script venga usato abusivamente da altri siti,
è possibile monitorare l'attività dei suoi utilizzatori facendoti inviare una email di
controllo automatica.
E' possibile registrare i dati di chi lo usa. In un file di log vengono registrati:
- IP del provider usato dall'utilizzatore
- IP dell'utilizzatore
- Dati sull'username di colui che ha autenticato gli script, se il server supporta questa
funzione
- Dati sul browser e il sistema operativo dell'utilizzatore
- Indirizzo email e nome del mittente
- Indirizzo email del destinatario
- Data di invio (orario del server su cui è il tuo sito)
A causa della quantità di dati loggati il relativo file dopo 100 utilizzi pesa 30Kb,
quindi se lo script fosse utilizzato da un sito di successo dopo un pò di tempo il file
segnalalog.html acquisterebbe dimensioni eccessive. Per cui è possibile utilizzare
una procedura di svuotamento ed archiviazione automatica tramite email.
Altre opzioni sono di comodità.
Puoi decidere se, dopo l'invio dell'email, reindirizzare il visitatore ad una
tua pagina di ringraziamento, oppure utilizzare la pagina di ringraziamento generata
automaticamente dallo script.
In questo secondo caso puoi settare il font, il suo colore, la dimensione, il colore o
un'immagine di sfondo, l'inserimento o meno su questa pagina di un link ad una di
uscita.
Ho deciso di non fare effettuare il controllo dei campi del form allo script, per non
appesantirlo troppo, a tal fine nel file allegato "segnala_sito.html" troverai già
settato un JavaScript di validazione che svolge la stessa funzione.
Vediamo adesso come configurare e istallare lo script.
###########################################################################
Configurazione (quelli riportati sono esempi):
Per modificare lo script ricordati di usare un editor che non inserisca caratteri di
formattazione particolari e che salvi con estensione .txt, come ad esempio blocco note
di windows. Ovviamente puoi anche usare editor specifici per il perl.
---------------------------------------------------------------------------------------
Per prima cosa devi settare l'indirizzo dell'interprete di perl del tuo server
in genere è:
#!/usr/local/bin/perl
oppure
#!/usr/bin/perl
se non lo conosci devi chiederlo all'amministratore del tuo server.
---------------------------------------------------------------------------------------
Devi poi settare le seguenti variabili:
$mailprog
Qui devi inserire il path del programma di invio posta del tuo server
in genere è:
$mailprog = '/usr/lib/sendmail';
se non lo conosci devi chiederlo all'amministratore del tuo server.
$avviso = 'shishii@tiscalinet.it';
Qui devi inserire il tuo indirizzo email
---------------------------------------------------------------------------------------
$redirection = 0;
Se dopo che il messaggio è stato inviato vuoi ringraziare l'autore
inviandolo direttamente ad una tua pagina html già pronta setta la
variabile $redirection a 1, se invece la setti a 0 verrà generata
una pagina di ringraziamento standard. Nel primo caso devi indicare
nella variabile $redirectionurl l'indirizzo completo web della tua
pagina di ringraziamento, ad es:
$redirectionurl = "http://www.shishii.com/uscitaform.html";
---------------------------------------------------------------------------------------
$bgcolor = "#ffff80";
$background = "http://www.shishii.com/form_file/sfondo3sa.gif";
$font = "Comic sans MS";
$size = "5";
$color= "#0000ff";
$ritorno = 0;
$url_rit = "http://www.shishii.com/entrataform.html";
Nel caso tu abbia deciso di utilizzare la pagina di
ringraziamento standard settando la variabile $redirection=0
la puoi in parte personalizzare:
- regolando il colore dello sfondo con il codice dei colori web
esadecimale ad es: "#xxxxxx".
- inserendo un'immagine di background, ricordati di fornire l'url completo.
- il font che preferisci, nel caso ne voglia inserire più di uno ricordati
di separarli così "arial,courier".
- la dimensione del font.
- il colore del font.
- puoi inserire un link ad una pagina successiva settando $ritorno=1, ed
indicando in $url_rit il suo url completo. Se invece setti $ritorno=0 il
visitatore dovrà usare il tasto back del browser.
------------------------------------------------------------------------------------------
$uselog = 1;
$segnalalog = "/usr/home/shishii/www/segnalalog.html";
$canclog = 1;
$contatore = "/usr/home/shishii/www/contatore.txt";
$insert = 10;
Se vuoi monitorare per motivi di sicurezza, l'attività effettuata
tramite questo script setta la variabile $uselog a 1. Altrimenti
settala a 0.
Nel primo caso lo script scrive nel file "segnalalog.html" ad ogni
invio di messaggio i dati dell'utilizzatore, l'orario e la data.
Questo file è da te consultabile on-line ad es: all'indirizzo web
www.tuosito.com/segnalalog.html, se tu lo inserisci nella directory
principale.
Nel caso in cui scegli 1 devi indicare nella variabile $segnalalog
il path di sistema del file segnalalog.html.
Se setti a 1 la variabile $canclog il file segnalalog.html viene
automaticamente svuotato ogni volta che viene raggiunto un numero di
utilizzatori pari alla variabile $insert.
I dati non vengono perduti perchè lo script te li invia automaticamente
per email prima di cancellarli.
E' necessario inserire il path di sistema del file contatore.txt che è
il database in cui viene memorizzato il numero di utilizzi.
------------------------------------------------------------------------------------------
$mail = 1;
ATTENZIONE MOLTO IMPORTANTE!!!
Se setti ad 1 la variabile $mail riceverai una copia del messaggio
inviato tramite il tuo script, se la setti a 0 questa seconda email
non sarà generata.
Se scegli la prima possibilità per la legge italiana sei obbligato
ad avvisare il visitatore tramite la pagina html di invio del
messaggio, in quanto leggerai la sua corrispondenza indirizzata ad
altra persona e ciò senza il suo consenso è reato. Nel caso tu desideri
ricevere l'email di avviso devi indicare nella variabile $avviso il tuo
indirizzo.
------------------------------------------------------------------------------------------
$url_sito = "www.shishii.com";
Questa variabile serve ad inserire automaticamente l'url del tuo sito
nell'email che viene inviata.
-------------------------------------------------------------------------------------------
@autorizzati = ('www.shishii.com','216.121.175.21');
Questo array serve ad evitare che qualcuno utilizzi questo
script senza autorizzazione da un altro sito.
Devi inserire l'url o l'indirizzo IP dei siti autorizzati ad
utilizzare lo script istallato sul tuo server.
-------------------------------------------------------------------------------------------
$flock = "si";
Impedisce che chiamate multiple corrompano i files di log.
Se il tuo server non dovesse supportare la funzione di "file
locking" (flock) allora settala a "no", altrimenti è caldamente
raccomandato non toccare il settaggio "si".
##############################################################
Istallazione:
-------------------------------------------------------------------------------------------
Dopo che hai settato correttamente le variabili devi trasferire lo
script sul tuo server.
Va inserito in genere nella cartella cgi-bin o cgi-tuonome.
ricordati di fare l'upload con un programma di trasferimento files "FTP" in modalità
ASCII, altrimenti il sistema genererà un "error 500".
Devi attribuirgli chmod 755.
###############################################################
segnala_sito.html
Si tratta della pagina html che contiene il form di invio.
Contiene inoltre due funzioni JavaScript:
setfocus;
Validate;
La prima serve a fare posizionare il cursore del mouse nella prima casella
del form e viene evocata dal gestore degli eventi "onLoad" contenuto nel tag
.
La seconda serve a verificare, in certi limiti, la correttezza formale e la presenza
dei campi obbligatori che sono:
mailto: indirizzo del destinatario;
mailfrom: indirizzo del mittente;
fromname: nome del mittente;
viene attivata dal gestore degli eventi "onSubmit" contenuto dal tag