11 messaggi dal 09 giugno 2001
Durante le mie esercitazioni in asp mi sono trovato ad affrontare la seguente problematica: Realizzare un guestbook con l'ausilio di un database scritto in access. Questi ultimi risiede in db/E-Mail.mdb ed è composto da una tabella UTENTI con i campi: IDUtente, Nome, Cognome ed Email.

Per realizzare questo progetto ho creato i file INSERISCI.HTM, ELIMINA.HTM e RICERCA.HTM, i quali mediante un apposito form inviano i dati ai file INSERIMENTO1B.ASP, ELIMINADATI1B.ASP e VISUALIZZADATI1B.ASP.

Ecco i loro listati:

INSERISCI.HTM
-------------
<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<title>INSERIMENTO DI DATI IN UN DATABASE</title>

</head>

<body style="font-family: verdana; font-size: 10pt">

<h2 align="center">INSERIMENTO DI DATI IN UN DATABASE</h2>

<p>Questo esempio consente di inserire i dati un database.</p>

<form method="POST" action="Inserimento1b.asp">

<p>Nome: <input type="text" name="nome" size="20"></p>

<p>Cognome: <input type="text" name="cognome" size="20"></p>

<p>Email: <input type="text" name="email" size="20"></p>

<p><input type="submit" value="Salva i dati nel database"></p>

</form>

</body>

</html>


INSERIMENTO1B.ASP
-----------------
<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<title>INSERIMENTO DI DATI IN UN DATABASE</title>

</head>

<body style="font-family: verdana; font-size: 10pt">

<h2 align="center">INSERIMENTO DI DATI IN UN DATABASE</h2>

<p>Questo esempio consente di inserire i dati un database.</p>

<%

on error resume next

nome = Request.form("nome")

cognome = Request.form("cognome")

email = Request.form("email")

dim conn

dim rs

set conn = Server.CreateObject("ADODB.Connection")

set rs = Server.CreateObject("ADODB.Recordset")

conn.Open "driver={Microsoft Access Driver (*.mdb)}; dbq="& Server.MapPath("db/E-mail.mdb")

SQL = "INSERT INTO utenti (nome, cognome, email) "

SQL = SQL & "VALUES ('" & nome & "','" & cognome & "','" & email & "')"

rs.Open SQL, conn

'errori
if err.number>0 then

response.write("<p> - ATTENZIONE: I dati inseriti non sono corretti, controllare se i campi obbligatori sono stati compilati.</p>")

Else

response.write("<P> OK: i dati sono stati registrati correttamente!!!")

End If

conn.Close

%>

<hr>

<p>

<%

Response.Write("<a href="""&Request.ServerVariables("HTTP_REFERER")&""">Torna alla pagina precedente</a>")

%>

</p>

</body>

</html>

1. La fase di inserimento dei dati funziona correttamente, però ci sono dei bug, ovvero se inserisco dei campi vuoti registro un campo vuoto, posso registrare più volte uno stesso record. Come posso evitare tutto ciò?


Sulla falsa riga di INSERISCI.HTM sono i file ELIMINA.HTM e RICERCA.HTM quindi mi limiterò solo a trascrivere i file ASP associati, in quando cambia solo la destinazione delle rispettive informazioni.

ELIMINADATI1B.ASP
-----------------
<html>

<head>

<title> CANCELLAZIONE DI DATI DA UN DATABASE </title>

</head>

<body style="font-family: verdana; font-size:10pt">

<h2 align="center">CANCELLAZIONE DI DATI DA UN DATABASE</h2>

<p>Questo esempio consente di cancellare dati da un database.</p>

<%


on error resume next
nome = Request.Form("nome")
email = Request.Form("email")

dim conn
dim rs

set conn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
conn.Open "driver={Microsoft Access Driver (*.mdb)}; dbq="& Server.MapPath("db/E-mail.mdb")


SQL = "DELETE FROM utenti "
SQL = SQL & "WHERE nome='" & nome &"' and email='" & email &"'"

rs.Open SQL, conn


If err.number>0 then
response.write "<p>Attenzione!</P>"
response.write "<p>Riempire tutti i campi nella form d'inserimento!!!</P>"

Else

response.write "<p>Ok, i dati sono stati cancellati correttamente!!!!</p>"

End if

conn.Close


%>

<hr>

<p>

<%

Response.Write("<a href="""&Request.ServerVariables("HTTP_REFERER")&""">Torna alla pagina precedente</a>")

%>

</p>

</body>

</html>


2. Anche in questo caso se inserisco tutti campi vuoti viene effettuata la query, inoltre la query viene effettuata anche se il record da cercare non è presente nel database.

2.1 Ho saputo da un amico che si può utilizzare anche Rs.Delete per camcellare un record mi potete dare un esempio confrontandolo con il programma soprastante?

3. Perquanto riguarda VISUALIZZADATI1B.ASP non fornisco il listato perchè in realtà non sono riuscito nel mio intento, ovvero volevo realizzare due sottopunti cioè:

3.1 realizzare una query che mi visualizzasse tutta la tabella
3.2 realizzare una queri che mi visualizzasse solo i campi che hanno informazioni uguali a quelle fornite dai campi del file RICERCA.HTM

4. Infine vorrei realizzare una query per modificare il contenuto dei campi del database. A tal punto anche la mia fantasia si è fermata e chiedo un Vs. aiuto.

PS: Se è possibile quando fornite i listati datemeli con i commenti ve ne sarà grato.

Giuseppe Specchio

Giuseppe Specchio
19 messaggi dal 04 gennaio 2002
Ciao, se vuoi un guestbook facilmente configurabile e di elevata personalizzazione prova ad andare al sito http://www.spidy2portal.com e ad entrare nell'area clienti

Ciao, spero di esserti stato utile

725 messaggi dal 31 agosto 2001
Esistono numerosi siti che ospitano script, forum, guestbook etc... etc... Vai su http://www.google.com e digita la parola chiave ASP. Internet contiene un mare di informazioni utili.

Ciao Luca

<% Tutto è complesso prima di essere semplice %>

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.