1 messaggio dal 02 agosto 2002
Ciao, ho un problema con l'inserimento dei records in un database.
Infatti se torno indietro con il browser e rinvio il modulo gli stessi dati vengono reinseriti di nuovo.
Vorrei utilizzare una variabile del tipo:
<%
If Session("x") = True Then
'codice che esegue lo script
Session("x") = True
%>
Però non so se sia esatta e soprattutto dove collocarla nello script.
Per connettermi al db uso un SSI
lo script che aggiorna il db è il seguente:

<%
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open "guest", objConn, , adLockOptimistic, adCmdTable


objRS.AddNew
objRS("Data") = Request ("Data")
objRS("Nome") = Request ("Nome")
objRS("Email") = Request ("Email")
objRS("URL") = Request ("URL")
objRS("Testo") = Request ("Testo")
objRS("IP") = Request.ServerVariables("REMOTE_ADDR")
objRS("Gif") = Request ("Gif")
objRS("Logon") = Request.ServerVariables("LOGON_USER")
objRS("Citta") = Request ("Citta")
objRS("Sessionid") = Session.SessionID
objRS.Update
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

%>

Un grazie a tutti per l'aiuto.

20 messaggi dal 03 aprile 2002
allora, il consiglio che ti posso dare io e' questo:
anche io ho a che fare con la possibilita' che l'utente che usa il sito faccia indietro e reimmetta gli stessi dati solo per inkasinare il db, ma ho fatto una funzione controllo() nella pagina che prevede l'inserimento dei dati la quale dopo aver pescato i dati mandati via form con request.form(parametro) fa una interrogazione del tipo:

function controlla(data,corpo,mittente){
var sql = "SELECT count(numero) AS num FROM messaggio WHERE data = #" + data + "#";
sql += " AND testo LIKE '" + corpo + "'";
sql += " AND mittente LIKE '" + mittente + "' GROUP BY cliente";
ris2 = ADOConn.Execute(sql);
}

questa controlla il numero di messaggi con parametri uguali a quelli passati dal form e nella pagina faccio il controllo:

controlla(data,corpo,mittente);
if (ris2.EOF) {
inserisci();
Response.Write("<p>Inserimento effettuato con successo.<BR>");
nome(cliente);
while(!ris.EOF) {
Response.Write("Messaggio per " + ris("nome") + " " + ris("cognome") + " depositato!"); ris.movenext();
}
ris.close();
} else {
Response.Write("<p>Messaggio gia' inserito.</p>");
}

se ris2 e' finito significa che non c'e' nessun messaggio uguale, altrimenti significa che ha trovato qualcosa.
ao io conosco solo sto metodo.
spero di averti aiutato.

ciuz

W la neve freska

W la neve freska
20 messaggi dal 03 aprile 2002
ah scusa la funzione inserisci contiene il codice di inserimento nel database. sicuramente ci eri arrivato :)

W la neve freska

W la neve freska

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.