28 messaggi dal 24 marzo 2001
Caro Albis, chiedo ancora il tuo, sempre risolutivo, aiuto. Ho inserito alune righe (per inviare un? e-mail automatica a chi si registra) in una pagina che processa i dati di login introdotti dall?utente (l?intero login consta ovviamente di molte pagine). Queste righe le troverai facilmente all?interno della pagina che allego interamente (per farti comprendere l?insieme) ma che ovviamente tu dovrai esaminare solo nelle righe dove c?è il CDONTS (prima del lungo select case): se sono esatte e se sono inserite nel punto giusto. Il login funziona online perfettamente ma il messaggio di ringraziamento non è mai arrivato agli iscritti (e non si riceve nemmeno alun segnale di errore). Mi puoi aiutare come hai fatto altre volte? Ti ringrazio molto e ti saluto cordialmente insieme a Daniele.
<%
Option Explicit
Dim sql,rsUser,username,password,passwordconfirm,firstname,surname,email,dob,sex,notfilled(7),badflag,count,passwordLength,calltype,icon,starsign,dobmonth,dobday

'Assign form values to variables
username = Request.Form("username")

'Make sure they've not put any quotation marks in their username
If InStr(username,chr(34)) <> 0 or InStr(username,chr(39)) <> 0 then
errorfunction("invalidchars")
end if

firstname = Request.Form("firstname")
surname = Request.Form("surname")
email = Request.Form("email")
sex = Request.Form("sex")
password = Request.Form("password")
passwordconfirm = Request.Form("passwordconfirm")
dob = Request.Form("birth_day") & "/" & Request.Form("birth_month") & "/" & Request.Form("birth_year")
icon = Request.Form("icon")

'Check everything's been filled in, badflag determines whether error function is called
badflag = 0

'nofilled() is an array that will store the fields which are not filled in

if firstname = "" then
notfilled(0) = "Nome"
badflag = 1
end if
if surname = "" then
notfilled(1) = "Cognome"
badflag = 1
end if
if email = "" then
notfilled(2) = "Email"
badflag = 1
end if
if username = "" then
notfilled(3) = "Username"
badflag = 1
end if
if password = "" then
notfilled(4) = "Password"
badflag = 1
end if
if sex = "" then
notfilled(5) = "Sesso"
badflag = 1
end if
if IsDate(dob) = "False" then
notfilled(6) = "Data di nascita"
badflag = 1
end if
if icon = "" then
notfilled(7) = "La scelta della tua icona"
badflag = 1
end if

if badflag = 1 then
signuperror()
end if

'Check password length is between 5 and 15 characters long
passwordLength = Len(password)
if passwordLength < 5 or passwordLength > 15 then
errorfunction("length")
end if

'Check password and confirmed password are the same
if password <> passwordconfirm then
errorfunction("confirm")
end if

'Open connection and insert user details into the database
%>

<!--#include file="conn.asp"-->


<%

'For a bit of profiling fun, get their star sign
getstarsign()

'Then add it to the database. It's in a seperate function because we need to error trap to see if there's been a duplicate entry. It's not good form to have On Error Resume Next throughout your whole page

UserUpdate()

Function UserUpdate()
On Error Resume Next

Set rsUser = Server.CreateObject("ADODB.Recordset")
rsUser.open "users", conn, 3, 3
rsUser.AddNew
rsUser("username") = username
rsUser("password") = password
rsUser("firstname") = firstname
rsUser("surname") = surname
rsUser("email") = email
rsUser("dob") = dob
rsUser("starsign") = starsign
rsUser("sex") = sex
rsUser("icon") = icon
rsUser.Update

if Err.Number = -2147217887 then
Err.clear
errorfunction("badusername")
else
'Set username cookie to sign them in now
Response.Cookies("username") = username
%>
<%
Set objMail = Server.CreateObject("CDONTS.NewMail")
objMail.From="coleporter@tiscalinet.it"
objMail.To=request.form("email")
objMail.Subject="Grazie"
objMail.Body="Grazie per esserti iscritto a Sitoaperto. Torna a trovarci. Troverai sempre delle novità. A presto!"
objMail.importance=1
objMail.Send
set objMail=nothing
%>

<html>
<head>
<title>Philweb - Free ASP Applications</title>
</head>
<body bgcolor="#FFFFFF" link="#DD0000" vlink="#DD0000" alink="#000000" background="sfondoazz.gif">
<font face="arial,helvetica" size=2>

<p><b>Grazie per esserti iscritto <%=firstname%> <%=surname%></b></p>

<p><b>Hai il soprannome di <%=username%> ed ora sei iscritto!</b></p>

<p><a href="index.asp">Clicca qui per tornare alla pagina login</a><p>

</font>
</td>
</tr>
</table>

</body>
</html>

<%
rsUser.close
set rsUser = nothing
conn.close
set conn = nothing
%>
<%
end if
End Function%>


<%
Function getstarsign()
dobmonth = Request.Form("birth_month")
dobday = Request.Form("birth_day")
Select Case dobmonth
Case 1
if dobday < 21 then
starsign = "Capricorno"
else
starsign = "Acquario"
end if
Case 2
if dobday < 20 then
starsign = "Acquario"
else
starsign = "Pesci"
end if
Case 3
if dobday < 21 then
starsign = "Pesci"
else
starsign = "Ariete"
end if
Case 4
if dobday < 21 then
starsign = "Ariete"
else
starsign = "Toro"
end if
Case 5
if dobday < 22 then
starsign = "Toro"
else
starsign = "Gemelli"
end if
Case 6
if dobday < 22 then
starsign = "Gemelli"
else
starsign = "Cancro"
end if
Case 7
if dobday < 24 then
starsign = "Cancro"
else
starsign = "Leone"
end if
Case 8
if dobday < 24 then
starsign = "Leone"
else
starsign = "Vergine"
end if
Case 9
if dobday < 24 then
starsign = "Vergine"
else
starsign = "Bilancia"
end if
Case 10
if dobday < 24 then
starsign = "Bilancia"
else
starsign = "Scorpione"
end if
Case 11
if dobday < 23 then
starsign = "Scorpione"
else
starsign = "Sagittario"
end if
Case 12
if dobday < 22 then
starsign = "Sagittario"
else
starsign = "Capricorno"
end if
End Select
End Function
%>

<%Function signuperror()%>
<html>
<head>
<title>Philweb - Free ASP Applications</title>
</head>
<body bgcolor="#FFFFFF" link="#DD0000" vlink="#DD0000" alink="#000000" background="sfondoazz.gif">
<font face="arial,helvetica" size=2>

<p><b>Non hai riempito correttamente i seguenti campi:</b></p>

<%for count = 0 to 7%>
<%if notfilled(count) <> "" then%>
<b><%=notfilled(count)%></b><br>
<%end if%>
<%next%>

<p><a href="javascript:self.history.go(-1)">Prova di nuovo</a></p>

</font>
</table>

</body>
</html>
<%Response.end
End Function%>


<%Function errorfunction(calltype)%>
<html>
<head>
<title>Philweb - Free ASP Applications</title>
</head>
<body bgcolor="#FFFFFF" link="#DD0000" vlink="#DD0000" alink="#000000">
<font face="arial,helvetica" size=2>

<%if calltype = "confirm" then%>
<p><b>La password e la conferma della password non corriposndono</b></p>
<p><a href="javascript:self.history.go(-1)">Prova di nuovo</a></p>

</font>
</body>
</html>
<%Response.end%>
<%elseif calltype = "length" then%>
<p><b>La tua password non è compresa tra i 5 e i 15 caratteri di lunghezza</b></p>
<p><a href="javascript:self.history.go(-1)">Prova di nuovo</a></p>

</font>
</body>
</html>
<%Response.end%>
<%elseif calltype = "badusername" then%>
<p><b>Spiacente, il soprannome "<%=username%>" è già stato adottato da altro iscritto.</b></p>
<p><a href="javascript:self.history.go(-1)">Prova di nuovo</a></p>

</font>
</body>
</html>
<%
rsUser.close
set rsUser = nothing
conn.close
set conn = nothing
Response.end
%>
<%elseif calltype = "invalidchars" then%>
<p><b>Spiacente, il tuo soprannome non può contenere alcuni caratteri da te usati.</b></p>
<p><a href="javascript:self.history.go(-1)">Prova di nuovo</a></p>

</font>
</body>
</html>
<%Response.end%>
<%end if
End Function%>
















































coleporter

coleporter
1.605 messaggi dal 06 settembre 2002
Allora su CDONTS non è che io abbia una grossa esperienza
comunque quello che ti posso dire è che quando tu lo utilizzi per inviare uina mail non è il server dove gira il codice che invia la mail
ma invia informazioni ad un server di posta che poi invia la mail.
questo per dire che il tuo server invia un pacchetto e non si può accorgere se tale pacchetto viene processato e quindi inviato.
Per esperienza ti posso dire che pò dipendere dallo scorretto settaggio del servizio SMTP sul server.
a tale proposito ti posso suggerire di leggere questo articolo
http://www.aspitalia.com/articoli/win2000/smtp.asp

altrimenti ci sono vari script sull'invio di mail
prova a vedere se trovi qualcosa di utile

http://www.aspitalia.com/liste/usag/archivio.asp?archivio=ricerca&key=mail&ID=1

mi spiace se non ti posso essere di grosso aiuto ma come ho detto su questo argomento non sono molto ferrato

FORZA LA MAGICA ROMA

FORZA LA MAGICA ROMA
1.605 messaggi dal 06 settembre 2002
scusa non avevo notato un particolare
nella funzione UserUpdate dove invii la mail hai messo
On Error Resume Next
.
.

Function UserUpdate()
On Error Resume Next
.
.
.

tale istruzione permette di oltrepassare le istruzioni che generano errore senza che si interrompa l'esecuzione del codic ne tantomeno venga restituito un errore se non espressamente interrogato un determinato ogetto.

in questo modo se ci fossero stati errori nella sintassi di invio delle mail ma soprattutto nella creazione dell'ogetto NewMail
Set objMail = Server.CreateObject("CDONTS.NewMail")
non tene potresti accorgere.
quindi commenta temporaneamente On Error Resume Next
così
.
.

Function UserUpdate()
'On Error Resume Next
.
.
.


con il carattere apice ' prima dell'istruzione l'istruzione non viene eseguita quindi se si genera errore sarà visibile



FORZA LA MAGICA ROMA

FORZA LA MAGICA ROMA
28 messaggi dal 24 marzo 2001
Grazie Albis, sei sempre molto esauriente e gentile. Se non dovessimo risentirci: BUON NATALE a tutto lo stafft
coleporter

coleporter

coleporter
1.605 messaggi dal 06 settembre 2002
ti ringrazio per l'augurio
Buon natale anche a te
comunque io non faccio parte dello staff

FORZA LA MAGICA ROMA

FORZA LA MAGICA ROMA

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.