#!/usr/bin/python
#Script in Python per la Registrazione dei visitatori
#Importa i moduli necessari
import cgi
import smtplib
import sys
import traceback
#Funzione per la verifica dell'assenza del carattere di tabulazione
def tabulazione(campo):
for contatore in range(len(campo)):
carattere = campo[contatore]
if carattere == "\t":
Errore_tab
= "\t"
return
Errore_tab
sys.stderr = sys.stdout
print "Content-Type: text/html\n\n"
print
for prova in range(1):
#Valori iniziali per le variabili dei campi
nome = ""
cognome = ""
indirizzo = ""
residenza = ""
cap = ""
nazionalita = ""
eta = ""
telefono_casa = ""
telefono_ufficio = ""
cellulare = ""
e_mail = ""
nome_utente = ""
password = ""
conferma_password = ""
#Ottiene i valori dai dai campi del form della pagina
html.
campi_html = "" #cgi.fieldStorage()
nome = "Federica" #(campi_html.has_key("nome")
cognome = "Cipollini" #(campi_html.has_key("cognome")
indirizzo = "" #(campi_html.has_key("indirizzo")
residenza = "Vicenza" #(campi_html.has_key("residenza")
cap = "" #(campi_html.has_key("cap")
nazionalita = "Italia" #(campi_html.has_key("nazionalita")
eta = "30" #(campi_html.has_key("eta")
telefono_casa = "" #(campi_html.has_key("telefono-casa")
telefono_ufficio = "" #(campi_html.has_key("telefono-ufficio")
cellulare = "" #(campi_html.has_key("cellulare")
e_mail = "[email protected]" #(campi_html.has_key("e-mail")
nome_utente = "cipollini2" #(campi_html.has_key("nome-utente")
password = "1e23st" #(campi_html.has_key("password")
conferma_password = "1e23st" #(campi_html.has_key("conferma-password")
#Valori iniziali per gli errori
errore_tabul = ""
errore_nome = ""
errore_cognome = ""
errore_e_mail = ""
errore_nome_utente = ""
errore_password = ""
errore_conf_passw = ""
#Verifica la presenza di testo ed eventuale correttezza
nei campi obbligatori.
cond1 = (nome == "")
if cond1:
errore_nome = "Errore: Non è
stato inserito un Nome nell'apposito campo.<br>\n\n"
cond2 = (cognome == "")
if cond2:
errore_cognome = "Errore: Non
è stato inserito un Cognome nell'apposito campo.<br>\n\n"
cond3 = (e_mail == "")
if cond3:
errore_e_mail = "Errore: Non è
stato inserito un Indirizzo E-mail nell'apposito campo.<br>\n\n"
#Apertura e lettura del file contenente i visitatori registrati.
visit_regist = open(".......","r+t")
#Legge quanti visitatori sono registrati
for cont_rig_reg in range(2):
tot_visit_reg = ""
rig_tot_visit = visit_regist.readline()
tot_visit_reg = rig_tot_visit.split("\t")[1]
tot_visit_reg = int(tot_visit_reg)
#Verifica che non vi siano nomi utente registrati equvalenti
a quello immesso
for cont_rig_reg in range(tot_visit_reg+1):
rig = visit_regist.readline()
nome_presente = ""
try:
nome_presente
= rig.split("\t")[12]
except:
no_visit
= "Non sono registrati visitatori"
cond4 = (nome_utente == "" or
nome_utente == nome_presente)
if cond4:
errore_nome_utente
= "Errore: Non è stato inserito un Nome utente nell'apposito campo<br>\n
o è stato già registrato da altri, prova a cambiarlo.<br>\n\n"
break
cond5 = (password == "")
if cond5:
errore_password = "Errore: Non
è stata inserita una Password nell'apposito campo<br>\n\n"
cond6 = (conferma_password == "" or conferma_password
!= password)
if cond6:
errore_conf_passw = "Errore: Non
è stata inserita la Password di conferma nell'apposito campo<br>\n
o la stessa non è stata digitata in modo equvalente alla Password
iniziale<br>\n\n\n\n"
err_tab = "Errore: Non è possibile inserire
caratteri di tabulazione nei campi.<br>\n\n"
campi = [nome,cognome,indirizzo,residenza,cap,nazionalita,eta,telefono_casa,telefono_ufficio,cellulare,e_mail,nome_utente,password,conferma_password]
num_campi = len(campi)
for cont_campi in range(num_campi):
nome_campo = campi[cont_campi]
tabul = tabulazione(nome_campo)
cond7 = (tabul == "\t")
if cond7:
errore_tabul
= err_tab
break
# Se almeno una condizione d'errore è verificata
stampa a video tutti gli errori.
if (cond1 or cond2 or cond3 or cond4 or cond5 or cond6
or cond7):
visit_regist.close()
pag_orig = open(".......","r+t")
let_pag_orig = pag_orig.read()
pag_err = errore_tabul + errore_nome
+ errore_cognome + errore_e_mail + errore_nome_utente + errore_password +
errore_conf_passw + let_pag_orig
print pag_err
# Se non vi sono errori registra i dati del nuovo visitatore
in un file
else:
indice = str(tot_visit_reg + 1)
v = "\t"
visit_regist.write(indice+v+nome+v+cognome+v+indirizzo+v+residenza+v+cap+v+nazionalita+v+eta+v+telefono_casa+v+telefono_ufficio+v+cellulare+v+e_mail+v+nome_utente+v+password+"\n")
visit_regist.seek(0)
rig_reg = visit_regist.readline()
posizione2 = len(rig_reg)
rig_reg = visit_regist.readline()
posizione3 = len(rig_reg.split("\t")[0])
+ 1
posizione = posizione2 + posizione3
visit_regist.seek(posizione)
visit_regist.write(indice)
visit_regist.close()
#Indirizzi E-mail del mittente
mittente = "[email protected]"