Script per compleanni

matmilan

Nuovo Utente
27 Nov 2012
17
0
1
ciao a tutti,

ho dei compleanni in un database access (id, nome, cognome, data)

Vorrei far comparire automatcamente in una parte del mio sito gli auguri, nello specifico:

Oggi è il compleanno di: nome/i cognome/i

immagine

Tanti auguri!!

Grazie mille in anticipo!!

P.S. se può essere utile il sito è su un server windows con iis 7.5
 
Ultima modifica:
ciao a tutti,

ho dei compleanni in un database access (id, nome, cognome, data)

Vorrei far comparire automatcamente in una parte del mio sito gli auguri, nello specifico:



Grazie mille in anticipo!!

P.S. se può essere utile il sito è su un server windows con iis 7.5


Ciao,

il campo data del database è in formato testo?

come salvi la data di nascita? 29/11/1999

devi confrontare il giorno e il mese 29/11 con il giorno e il mese corrente, se trova corrispondenza (indifferentemente dall'anno) che puoi utilizzare per far vedere l'età in anni sottraendo l'anno corrente con l'anno nel DB.

Se il giorno e il mese sono uguali es: 29/11 mostra il nome e il cognome, quello che vuoi.

Per visualizzare l'anno sottrai l'anno dal db dall'anno corrente.

Valeria.
 
il campo data è in formato data/ora le date sono del tipo gg/mm/aaaa

conosco veramente poco di asp non saprei scrivere un codice da zero...
 
il campo data è in formato data/ora le date sono del tipo gg/mm/aaaa

conosco veramente poco di asp non saprei scrivere un codice da zero...

Ciao,

cambia il campo data da data/ora in testo, anche se nelle impostazioni predefinite per il formato data non c'è nessuna variabile es Now() o Time(), il formato data/ora si usa per far inserire ad access la data automaticamente all'inserimento dei dati.

Questo è un esempio commentato:

Codice:
<%

Tua connessione al database

dim data_oggi, anno

' giorno e mese corrente 29/11
data_oggi=Day(Date)&"/"&Month(Date)

' anno corrente 2012
anno=Year(Date) 


' sql per recuperare giorno e mese corrente
' confrontato con quello del db

sql = "SELECT * FROM nome_tabella where data LIKE '%"& data_oggi &"%'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3

%>
<font face="verdana" size="-2">Oggi &egrave; il Compleanno di:</font>
<%
do while not rs.eof

dim anno_nascita
' prendo gli ultimi 4 (quattro) caratteri della data dal db
anno_nascita=Right(rs("data"),4)

dim eta

' imposto la variabile eta sottraendo gli anni nel db all'anno corrente
eta = anno - anno_nascita


dim mostra

' assegno i valori da da mostrare a video alla variabile mostra
mostra=" "&rs("nome")&" "&rs("cognome")&" ("&eta&")"


' mostro a video il Nome, il Cognome
' e l'età di chi compie gli anni
response.write ("<font face=""verdana"" size=""-2""><b>"&mostra&"</b></font>")

' scorro tutti i record e chiudo la connessione
' dopo verifiche compleanni
rs.movenext
loop

' se non c'è nessun compleanno mostro un messaggio
if (mostra) = "" then
mostra="Nessun Compleanno Oggi"
response.write ("<font face=""verdana"" size=""-2""><b>"&mostra&"</b></font>")

' se ci sono compleanni mostro immagine
' e messaggio di Auguri

else
response.write ("<br><br><img src=""immagine_auguri.gif"" width=""20"" height=""20"" border=""0""><br><br>")
response.write ("<font face=""verdana"" size=""2"">Tanti Auguri</font>")
end if
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
%>


Valeria.
 
grazie mille!! funziona alla perfezione.

Volevo chiedere un' altra cosa:
Per aggiungere i compleanni del database ho fatto un modulo il problema è che volevo validarlo cioè fare dei controlli:

-campo nome, cognome e data: verificare se sono vuoti e se lo sono aprire una pagina dove per ognuna un errore diverso

-se possibile in automatico quando si compila il modulo la prima lettera del campo nome e cognome si scriva maiuscola

Questi sono i file:

addcompl.asp:
Codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>AGGIUNGI IL TUO COMPLENANNO</title>
<style type="text/css">
body {
    background-color: green;
    background-image: url("compleanno/bg.png");
    background-position: 0 0;
    background-size: 100% auto;
    color: yellow;
    font-family: sans-serif;
    font-size: 20px;
    text-shadow: 2px 2px 4px black;
}

.form {
    background-color: green;
    border-radius: 10px 10px 10px 10px;
	-webkit-border-radius:10px 10px 10px 10px;
	-moz-border-radius:10px 10px 10px 10px; 
    height: 460px;
    padding: 10px;
    width: 650px;
}

input {
    background-image: url("compleanno/bginput.png");
    background-size: 6% auto;
    border: 2px solid black;
    height: 25px;
    margin-bottom: 4px;
    margin-top: 4px;
	border-radius: 20px 20px 20px 20px;
	-webkit-border-radius:20px 2px 20px 20px;
	-moz-border-radius:10px 20px 20px 20px; 
	padding-left: 10px;
    padding-right: 10px;
}
</style>
</head>

<body topmargin="0" leftmargin="0">
<div style="width: 1032px; position: absolute; top: 50%; left: 50%; margin-left: -510px; margin-top: -240px;">
<div class="form">
<img src="compleanno/logo.png">
<div align="center">
<form action="save_compl.asp" method="post">
Il tuo nome:<br>
<input value="" size="80" name="nome" type="text">
<br>
Il tuo cognome:<br>
<input value="" size="80" name="cognome" type="text">
<br>
Quando sei nato?<br>
<input value="" size="80" name="data" type="text">
<br>
<div style="margin-top: 6px;" align="center">
<input value="Salva" style="background-image: none; border: 2px solid black; font-weight: bold; background-color: rgb(0, 151, 201); color: black; height: 30px;" type="submit">
</div>
</form>
</div>
</div>
<div style="width: 325px; float: right; height: 460px; margin-top: -480px;" class="form">
<p style="font-size: 29px; text-align: center;">ISTRUZIONI</p>
<span style="color: white;">CAMPO NOME:</span>
<br>
<span style="color: white; padding-left: 17px; font-size: 16px;">Inserire il proprio nome con la prima lettera</span>
<span style="color: white; padding-left: 17px; font-size: 16px;">maiuscola.</span>
<br>
<br>
<span style="color: white;">CAMPO COGNOME:</span>
<br>
<span style="color: white; padding-left: 17px; font-size: 16px;">Inserire il proprio cognome con la prima</span>

<span style="color: white; padding-left: 17px; font-size: 16px;">lettera maiuscola.</span>
<br>
<br>
<span style="color: white;">CAMPO DATA:</span>
<br>
<span style="color: white; padding-left: 17px; font-size: 16px;">Inserire la propria data di nascita scritta</span>
<span style="color: white; padding-left: 17px; font-size: 16px;">così:
gg/mm/aaaa
</span>
</div>
</div>

</body>
</html>

save_compl.asp:
Codice:
<%
dim strnome
strnome = request.form("nome")

dim strcognome
strcognome = request.form("cognome")

dim strdata
strdata = request.form("data")

Set Conn=Server.CreateObject("ADODB.Connection") 
Conn.open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/fondazione.mdb")

sql = "SELECT * FROM compleanno"

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3

rs.addnew
rs(1) = strnome
rs(2) = strcognome
rs(3) = strdata
rs.update

rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>AGGIUNGI IL TUO COMPLENANNO</title>
<style type="text/css">
body {
    background-color: green;
    background-image: url("compleanno/bg.png");
    background-position: 0 0;
    background-size: 100% auto;
    color: yellow;
    font-family: sans-serif;
    font-size: 20px;
    text-shadow: 2px 2px 4px black;
}

.form {
    background-color: green;
    border-radius: 10px 10px 10px 10px;
	-webkit-border-radius:10px 10px 10px 10px;
	-moz-border-radius:10px 10px 10px 10px; 
    height: 460px;
    left: 50%;
    margin-left: -325px;
    margin-top: -230px;
    padding: 10px;
    position: absolute;
    top: 50%;
    width: 650px;
}

input {
    background-image: url("compleanno/bginput.png");
    background-size: 6% auto;
    border: 2px solid black;
    height: 25px;
    margin-bottom: 4px;
    margin-top: 4px;
	border-radius: 20px 20px 20px 20px;
	-webkit-border-radius:20px 2px 20px 20px;
	-moz-border-radius:10px 20px 20px 20px; 
}
a:link { color: yellow;}
a:hover { color: yellow;}
a:visited { color: yellow;}
</style>
</head>

<body topmargin="0" leftmargin="0">
<div class="form">
<img src="compleanno/logo.png">
<div align="center" style="margin-top: 41px;">
<span style="font-size: 30px;">Modulo compilato correttamente.</span><br><br>
<a style="font-size: 20px;" href="http://www.oratoriopandino.it">Vai all'Home</a><br>
<a style="font-size:20px;" href="addcompl.asp"> Aggiungi un altro compleanno</a>
</div></div>
</body>
</html>
 
Ultima modifica:
Ciao,

controlla e sistema la stringa per la connessione.

Hai assegnato un nome variabile con Set Conn e chiudi il database e liberi le risorse con

conn.Close

set conn = Nothing

Asp non è del tutto case sensitive, puoi scrivere INSERT insert SELECT select Select , ma se usi Set Nome = puoi usare

Nome.Close
Nome.close
set Nome = Nothing
Set Nome = nothing


ma no

nome.close
set nome= Nothing


dove Nome è Conn

Codice:
Set Conn=Server.CreateObject("ADODB.Connection") 
Conn.open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/fondazione.mdb")

cambia con:

Codice:
Set conn=Server.CreateObject("ADODB.Connection") 
conn.open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/fondazione.mdb")

non chiudi la connessione e non liberi le risorse.

Dovrebbe darti errore 500 se il server non ha un sistema di visualizzazione degli errori di IIS personalizzato quando iserisci i dati e li passi alla pagina save_compl.asp


Valeria.
 
Ciao,

controlla e sistema la stringa per la connessione.

Hai assegnato un nome variabile con Set Conn e chiudi il database e liberi le risorse con

conn.Close

set conn = Nothing

Asp non è del tutto case sensitive, puoi scrivere INSERT insert SELECT select Select , ma se usi Set Nome = puoi usare

Nome.Close
Nome.close
set Nome = Nothing
Set Nome = nothing


ma no

nome.close
set nome= Nothing


dove Nome è Conn

Codice:
Set Conn=Server.CreateObject("ADODB.Connection") 
Conn.open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/fondazione.mdb")

cambia con:

Codice:
Set conn=Server.CreateObject("ADODB.Connection") 
conn.open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/fondazione.mdb")

non chiudi la connessione e non liberi le risorse.

Dovrebbe darti errore 500 se il server non ha un sistema di visualizzazione degli errori di IIS personalizzato quando iserisci i dati e li passi alla pagina save_compl.asp


Valeria.

Non ho tanto capito cosa vuoi dire, ho cambiato quello che mi hai detto ma adesso non mi funziona più mi da:

Microsoft JET Database Engine error '80040e09'
Impossibile aggiornare. Database o oggetto di sola lettura.
/save_compl.asp, riga 19

la riga 19 è questa: rs.addnew

Quindi dovrei sitemare quello che mi hai detto per fare tutti i controlli che mi sevono?

P.S. tutti i test li sto facendo in locale
 
non guardare quello che ho scritto sopra avevo sbagliato configurare iis in locale comunque:

Non ho tanto capito cosa vuoi dire, ho cambiato quello che mi hai detto, ma serve per fare i controlli che ho scritto sopra?
dovevo cambiare solo la stringa di connessione quella tra i tag code?
 
non guardare quello che ho scritto sopra avevo sbagliato configurare iis in locale comunque:

Non ho tanto capito cosa vuoi dire, ho cambiato quello che mi hai detto, ma serve per fare i controlli che ho scritto sopra?
dovevo cambiare solo la stringa di connessione quella tra i tag code?

Ciao,

quella modifica non centra niente con i controlli.

Solo per impostare i nomi assegnati alle variabili correttamente.

Se una variabile la chiami Pippo non devi richiamarla con pippo

Per i controlli vediamo.

Valeria.
 
Ciao,

quella modifica non centra niente con i controlli.

Solo per impostare i nomi assegnati alle variabili correttamente.

Se una variabile la chiami Pippo non devi richiamarla con pippo

Per i controlli vediamo.

Valeria.

Riassumo quello che mi interessa perchè qualcosa sono riuscito a fare io:

- controllo dei campi vuoti
- se non è una cosa troppo impegnativa, il controllo se la data esiste (per esempio 32/10/12 non esiste)
 
Riassumo quello che mi interessa perchè qualcosa sono riuscito a fare io:

- controllo dei campi vuoti
- se non è una cosa troppo impegnativa, il controllo se la data esiste (per esempio 32/10/12 non esiste)

Ciao,

non è impegnativo, ma coma da richiesta, vuoi controllare il corretto inserimento della data nel formato 02/12/2012 , ci vuole una RegExp (espressione regolare)

Vuoi i controlli sui campi (questo è semplice ma è bene rispettare alcune regole)

nel campo nome e cognome il primo carattere scritto in Maiuscolo anche questo si può far fare in automatico da asp scrivo tutto maiuscolo, tutto minuscolo o alternato, il primo carattere sara convertito sempre in maiuscolo tutti quelli dopo in minuscolo.

Valeria.
 
Ciao,


Codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>AGGIUNGI IL TUO COMPLENANNO</title>
<style type="text/css">
body {
    background-color: green;
    background-image: url("bg.png");
    background-position: 0 0;
    background-size: 100% auto;
    color: yellow;
    font-family: sans-serif;
    font-size: 20px;
    text-shadow: 2px 2px 4px black;
}

.form {
    background-color: green;
    border-radius: 10px 10px 10px 10px;
	-webkit-border-radius:10px 10px 10px 10px;
	-moz-border-radius:10px 10px 10px 10px; 
    height: 460px;
    left: 50%;
    margin-left: -325px;
    margin-top: -230px;
    padding: 10px;
    position: absolute;
    top: 50%;
    width: 650px;
}

input {
    background-image: url("bginput.png");
    background-size: 6% auto;
    border: 2px solid black;
    height: 25px;
    margin-bottom: 4px;
    margin-top: 4px;
	border-radius: 20px 20px 20px 20px;
	-webkit-border-radius:20px 2px 20px 20px;
	-moz-border-radius:10px 20px 20px 20px; 
}
a:link { color: yellow;}
a:hover { color: yellow;}
a:visited { color: yellow;}
</style>
</head>

<body topmargin="0" leftmargin="0">
<%
' espressione regolare per controllo data
' pattern nel formato gg/mm/aaaa

Function RegExpTest(strng)                                                    
Dim regEx 
Set regEx = New RegExp                                                      
regEx.Pattern =  "^[0-9]{2}[\/][0-9]{2}[\/][0-9]{4}$"
RegExpTest = regEx.Test(strng)                                      
End Function 

dim strnome
strnome = request.form("nome")

dim strcognome
strcognome = request.form("cognome")


dim strdata
strdata = request.form("data")

' replace apice per nome e cognome
' replace caratteri < e >

strnome=replace(strnome,"'","''")
strnome=replace(strnome,"<","&lt;")
strnome=replace(strnome,">","&gt;")
strcognome=replace(strcognome,"'","''")
strcognome=replace(strcognome,"<","&lt;")
strcognome=replace(strcognome,">","&gt;")

' controllo sul campo nome se vuoto
' o primo carattere uno spazio vuoto

if request("nome") = "" or MID(request("nome"),1,1) = " " then 
response.write"<div class=""form""><div align=""center"" style=""margin-top: 10px""><font face=""Verdana"" size=""5""><b>Inserire il Nome!<b/></font><br><br><br>"
response.write"<a href=""javascript:;"" onclick=""javascript:history.back(0)"">Torna indietro e correggi</a><br><br><br><br>"
response.write"<img src=""logo.png"" width=""639"" height=""229"" border=""0""><br></div></div>"& vbCRLF &" "& vbCRLF &""
response.write"</body>"& vbCRLF &"</html>"
response.end
end if

' controllo sul campo nome
' minimo tre caratteri

if Len(request("nome")) < 3  then 
response.write"<div class=""form""><div align=""center"" style=""margin-top: 10px""><font face=""Verdana"" size=""5""><b>Minimo 3 caratteri per il Nome!<b/></font><br><br><br>"
response.write"<a href=""javascript:;"" onclick=""javascript:history.back(0)"">Torna indietro e correggi</a><br><br><br><br>"
response.write"<img src=""logo.png"" width=""639"" height=""229"" border=""0""><br></div></div>"& vbCRLF &" "& vbCRLF &""
response.write"</body>"& vbCRLF &"</html>"
response.end
end if

' inserimento nome con la prima lettera
' inserita automaticamente in maiuscolo nel db
' tutti gli altri caratteri rimangono minuscoli

strnome = UCase(Left(strnome,1)) & LCase(Right(strnome, Len(strnome) - 1))

' controllo sul campo cognome se vuoto
' o primo carattere uno spazio vuoto

if request("cognome") = "" or MID(request("cognome"),1,1) = " " then 
response.write"<div class=""form""><div align=""center"" style=""margin-top: 10px""><font face=""Verdana"" size=""5""><b>Inserire il Cognome!<b/></font><br><br><br>"
response.write"<a href=""javascript:;"" onclick=""javascript:history.back(0)"">Torna indietro e correggi</a><br><br><br><br>"
response.write"<img src=""logo.png"" width=""639"" height=""229"" border=""0""><br></div></div>"& vbCRLF &" "& vbCRLF &""
response.write"</body>"& vbCRLF &"</html>"
response.end
end if

' controllo sul campo cognome
' minimo tre caratteri

if Len(request("cognome")) < 3  then 
response.write"<div class=""form""><div align=""center"" style=""margin-top: 10px""><font face=""Verdana"" size=""5""><b>Minimo 3 caratteri per il Cognome!<b/></font><br><br><br>"
response.write"<a href=""javascript:;"" onclick=""javascript:history.back(0)"">Torna indietro e correggi</a><br><br><br><br>"
response.write"<img src=""logo.png"" width=""639"" height=""229"" border=""0""><br></div></div>"& vbCRLF &" "& vbCRLF &""
response.write"</body>"& vbCRLF &"</html>"
response.end
end if

' inserimento cognome con la prima lettera
' inserita automaticamente in maiuscolo nel db
' tutti gli altri caratteri rimangono minuscoli

strcognome = UCase(Left(strcognome,1)) & LCase(Right(strcognome, Len(strcognome) - 1))

' controllo sul campo data se vuoto

if request("data") = "" then 
response.write"<div class=""form""><div align=""center"" style=""margin-top: 10px""><font face=""Verdana"" size=""5""><b>Inserire la data nel formato gg/mm/aaaa!<b/></font><br><br><br>"
response.write"<a href=""javascript:;"" onclick=""javascript:history.back(0)"">Torna indietro e correggi</a><br><br><br><br>"
response.write"<img src=""logo.png"" width=""639"" height=""229"" border=""0""><br></div></div>"& vbCRLF &" "& vbCRLF &""
response.write"</body>"& vbCRLF &"</html>"
response.end
end if

' controllo i che i valori inseriti
' siano conformi con la regexp
' formato gg/mm/aaaa

data = request.form("data")
if not(RegExpTest(data)) then 
response.write"<div class=""form""><div align=""center"" style=""margin-top: 10px""><font face=""Verdana"" size=""5""><b>Formato Data Errato!<b/></font><br><br><br>"
response.write"<a href=""javascript:;"" onclick=""javascript:history.back(0)"">Torna indietro e correggi</a><br><br><br><br>"
response.write"<img src=""logo.png"" width=""639"" height=""229"" border=""0""><br></div></div>"& vbCRLF &" "& vbCRLF &""
response.write"</body>"& vbCRLF &"</html>"
response.end
end if


Set conn=Server.CreateObject("ADODB.Connection") 
conn.open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("fondazione.mdb")


sql = "SELECT * FROM compleanno"

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3


rs.addnew
rs(1) = strnome
rs(2) = strcognome
rs(3) = strdata
rs.update


rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
%>
<div class="form">
<img src="logo.png">
<div align="center" style="margin-top: 41px;">
<span style="font-size: 30px;">Modulo compilato correttamente.</span><br><br>
<a style="font-size: 20px;" href="http://www.oratoriopandino.it">Vai all'Home</a><br>
<a style="font-size:20px;" href="addcompl.asp"> Aggiungi un altro compleanno</a>
</div></div>

</body>
</html>

esempio on-line


http://www.vale2.org/public/compleanni/


Valeria.
 
Ultima modifica:

Discussioni simili