Ciao, ho incominciato a guardale l'asp da 2 giorni e quindi sono proprio alle prime armi. Vorrei una mano nello scrivere un comando che non mi funziona. Ho un database al quale voglio mandare delle informazioni prese da un form (e qui tutto Ok) e anche però inviare nello stesso tempo un frase (che dice: grazie riponderemo al più presto) in un altro campo della tabella database (risposta), in modo tale che fino a quando io non rispondo, rimanga, nella pagina che mostra tutte le domande a me giunte dal form, la scritta grazie risponderemo.... Ho provato a scrivere
<%

set conn = Server.CreateObject("ADODB.Connection")
conn.provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(server.mappath("../mdb-database/archivio.mdb"))

set ris = Server.CreateObject("ADODB.Recordset")
ris.open "legale",conn,3,3
'ricezione dati dal form
set nome=request.form("nome")
set email=request.form("email")
set msg=request.form("msg")
'inserimento dati ricevuti
ris.addnew
ris("nome")=nome
ris("email")=email
ris("msg")=msg
response.write("risposta") = "<tr><td>grazie, risponderemo al più presto</td></tr>"
ris.update()
ris.close
conn.close

response.redirect("grazie.asp")

%>
Mi sto improvvisando, quindi non so proprio capire l'errore o gli errori.
Se qualcuno mi da una mano, gli sarò grato.
Maurizio
11.886 messaggi dal 09 febbraio 2002
Contributi
prima di vedere il problema c'è una piccola precisazione:

set nome=request.form("nome")

tutti i dati che provengono dal form sono stringhe (un tipo di variabile come lo sono anche data, numerico, valuta).
Quando valorizzi questi tipi di dati non occorre il set. Bastava fare:
nome = Request.Form("nome")
ris("nome") = nome

oppure, in una riga:
ris("nome") = Request.Form("nome")

Il set lo usi quando devi istanziare degli oggetti come hai fatto giustamente nel caso del recordset:
set ris = Server.CreateObject("ADODB.Recordset")

Tornando al problema, la frase non te la visualizza perchè subito dopo averla inviata al client...
response.write "<tr><td>grazie, risponderemo al più presto</td></tr>"
(non so se era corretta la tua sintassi)

...fai subito un redirect che vanifica tutto quanto avevi scritto con il response.write

response.redirect("grazie.asp")

Ti consiglio di tenere il response.redirect, butta il response.write e in grazie.asp ci metti il messaggio che vuoi far comparire.
ciao

Enjoy learning and just keep making
Ciao, grazie della tua risposta, ho fatto le correzioni che mi hai suggerito ma cliccando sul bottone Invia non mi passa alla pagina grazie. Prima lo faceva, ma adesso non lo fa più. Non intendo con le tue modifiche, il problema me lo ha dato prima, ma sto diventando pazzo a capire il perché e ormai mi sto arrendendo per oggi. Provo allora a veder se mi puoi aiutare. Il form è:

<form action="inserisci.asp" name="messaggio" id="messaggio" method="post">
<div align="center">
<table border="0" width="500" celpadding="2" cellspacing="2">
<tr>
<td>
<div align="center"><font color="#FF9900"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>PONI
UNA DOMANDA AL NOSTRO CONSULENTE LEGALE</b></font><b><font size="3" face="Verdana, Arial, Helvetica, sans-serif">
</font></b></font></div>
</td>
</tr>
<td align="center"><br>
<table width="80%" border="0" celpadding="2" cellspacing="2">
<tr>
<td><font color="#FFCC00" face="Verdana, Arial, Helvetica, sans-serif" size="2">Nome</font></td>
<td>
<INPUT NAME="nome" TYPE="TEXT" size=24 MAXLENGTH=50>
</td>
</tr>
<tr>
<td><font color="#FFCC00" size="2" face="Verdana, Arial, Helvetica, sans-serif">Email</font></td>
<td valign="top">
<INPUT NAME="email" TYPE="TEXT" ALIGN=left size=24 MAXLENGTH=50>
</td>
</tr>
<tr>
<tr>
<td valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFCC00">Domanda</font></td>
<td>
<TEXTAREA NAME="msg" ROWS=7 COLS=40></TEXTAREA>
</td>
</tr>
<tr>
<td valign="middle" align="left"><font color="#FFCC00" face="Verdana, Arial, Helvetica, sans-serif" size="2">Data</font></td>
<td>
<table width="100%" border="0" celpadding="2" cellspacing="2">
<tr>
<td>&nbsp; </td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<table width="50%" border="0" celpadding="6" cellspacing="2">
<tr>
<td>
<div align="right">
<input type="button" onClick="javascript:CheckData();" value="Invia" name="Button">
</div>
</td>
<td align="right">
<div align="left">
<INPUT TYPE="reset" NAME="reset" VALUE="Riscrivi">
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</FORM>

ed ha dei controlli in script:



<SCRIPT>

function CheckData()
{
if (document.messaggio.nome.value.length == 0)
{
alert("ATTENZIONE: Inserisci il nome!");
document.messaggio.nome.focus();
return ;
}


if (document.messaggio.email.value.length == 0)
{
alert("ATTENZIONE: Inserisci l'email!");
document.messaggio.email.focus();
return ;
}

if (document.messaggio.msg.value.length == 0)
{
alert("ATTENZIONE: Inserisci il testo del messaggio!");
document.messaggio.msg.focus();
return ;
}




document.messaggio.submit();
}
function foc(){
document.messaggio.applicazione.focus();
}

</script>


la pagina inserisci che è allo stesso livello:



<%
set conn = Server.CreateObject("ADODB.Connection")
conn.provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(server.mappath("../mdb-database/archivio.mdb"))

set ris = Server.CreateObject("ADODB.Recordset")
ris.open "legale",conn,3,3
'ricezione dati dal form
ris("nome") = Request.Form("nome")
ris("email") = Request.Form("email")
ris("msg") = Request.Form("msg")
'inserimento dati ricevuti
ris.addnew
ris("nome")=nome
ris("email")=email
ris("msg")=msg
ris.update()
ris.close
conn.close

response.redirect("grazie.asp")

%>

COME MAI NON RIESCO A PASSARE ALLA PAGINA grazie.asp e inserire i miei dati nel database???

Grazie ancora!!
Maurizio
3.122 messaggi dal 16 maggio 2002
<%
set conn = Server.CreateObject("ADODB.Connection")
conn.provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(server.mappath("../mdb-database/archivio.mdb"))

set ris = Server.CreateObject("ADODB.Recordset")
ris.open "legale",conn,3,3
'ricezione dati dal form
ris.addnew
ris("nome") = Request.Form("nome")
ris("email") = Request.Form("email")
ris("msg") = Request.Form("msg")
'inserimento dati ricevuti
ris.update()
ris.close
conn.close

response.redirect("grazie.asp")

%>

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
Grazie, ora funziona, ma ho dovuto mandare le pagine sul server per vedere se funzionavano, perché in locale non andavano ancora, benché oggi pomeriggio sul presto tutto funzionava a dovere. Graze ancora!
Scusa ancora, ne approfitto per chiederti una ulteriore cosa: volevo creare un pannello di controllo per accedere e modificare i miei dati, ma vorrei creare una login e password per accedervi, e per accedere alle pagine che non voglio siano facilmente manomesse da altri. Hai degli esempi o mi sai dire dove posso vedere per trovare spiegazioni FACILI?? Grazie!
Maurizio
3.122 messaggi dal 16 maggio 2002
Guarda la guida ASP di base su http://freeasp.html.it e in particolare questo capitolo: http://freeasp.html.it/guide/lezione.asp?id=53.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
Ciao, ho letto la tua indicazione per vedere come si fa per creare una login e password, ma leggendo e dopo aver scaricato gli esempi mi sono venuti dei dubbi:

1) il file global.asa crea il collegamento con il database - a tal proposito ti devo chiedere se va bene sostituire solo le righe

strConn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:/asptutorial/crm.mdb"
Application("dbconn") = strConn

con

set conn = Server.CreateObject("ADODB.Connection")
conn.provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(server.mappath("../mdb-database/archivio.mdb"))

- dicevo, il file global.asa non è presente nel file login.asp. Non dovrebbe essere richiamato? se no come mi collego con il database?

2) nel file login.asp è riportato

strsql = "Select id, login, password FROM tbl_login "
strsql = strsql & "WHERE login ='" & login & "' AND password = '" & password & "'"

ma non dovrebbe essere

strsql = "Select id, login, password FROM tbl_login "
strsql = strsql & "WHERE login1 ='" & login & "' AND password1 = '" & password & "'"

con login1 e password1 visto come è scritto nel database di esempio?

Grazie ancora!

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.