|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Napoli
Messaggi: 355
|
PROBLEMA NEGOZIO ONLINE IN ASP!!!
Salve a tutti
ho un problema riguardante un conflitto tra due database per la gestione di un negozio online. vi faccio vedere le due coppie di pagine (quelle sia .html che .asp) riguardanti il login e la registrazione che effettua un utente: pagina login.html: Codice:
<HTML>
<HEAD>
<TITLE> </TITLE>
<style>
fieldset {
font-size:100%;
border:1px solid #000000;
background-color:skyblue;
color:#000000;
padding:3px;
}
</style>
</HEAD>
<BODY bgcolor="lightgreen">
<CENTER> <FONT color="lightred"> <H1> EFFETUA IL LOGIN </H1> </FONT> </CENTER>
<HR>
<P> <BR> <BR> <BR>
<CENTER>
<FORM method="post" action="login.asp">
<BLOCKQUOTE><BLOCKQUOTE>
<FIELDSET><LEGEND><B>Login</B></LEGEND>
<P>
<TABLE>
<TR>
<TD><B>USERNAME:</B></TD>
<TD> <input name="nick" size="20" value="">
</TR>
<TR>
<TD><B>PASSWORD:</B></TD>
<TD> <input type="password" name="pass" size="20" value="">
</TR>
</TABLE>
<BR>
<INPUT type="submit" size="20" value="INVIA">
<INPUT type="reset" size="20" value="ANNULLA">
<P>
</FIELDSET>
</BLOCKQUOTE></BLOCKQUOTE>
</FORM>
</CENTER>
</BODY>
</HTML>
Codice:
<%@ LANGUAGE = VBScript %>
<%
'prelievo delle stringhe del'username e della password
StringNick = request.Form("nick")
StringPass = request.Form("pass")
'stringa di connessione al database
strconn="Provider = Microsoft.Jet.OLEDB.4.0;Data Source="
strconn=strconn+Server.MapPath("Utente.mdb")
'istanze degli oggetti Connection e Recordset
set conn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
'apertura connessione
conn.Open strconn
'apertura recordset
rs.Open "TabUtente", conn
%>
<HTML>
<body text="" bgcolor="lightgreen">
<CENTER> <FONT color="lightred"> <H1> EFFETUA IL LOGIN </H1> </FONT> </CENTER>
<HR>
<P> <BR> <BR> <BR>
<%
comodo=0
rs.MoveFirst
Do While Not rs.EOF
IF (Ucase(rs("NickName"))=Ucase(StringNick)) AND (Ucase(rs("Password"))=Ucase(StringPass)) THEN%>
<BR><BR><BR><CENTER><H2>SEI REGISTRATO!</H2></CENTER>
<ALIGN='JUSTIFY'>BENVENUTO/A <B><%=StringNick%></B> : I TUOI DATI SONO REGISTRATI. VAI NELLA SEZIONE ACQUISTA PER ORDINARE I PRODOTTI CHE PREFERISCI.</ALIGN>
<%comodo=1
END IF
rs.MoveNext
Loop
if (comodo=0) then
Response.Write "<BR><BR><BR><CENTER><H2>NON SEI REGISTRATO!</H2></CENTER>"
Response.Write "<CENTER>ATTENZIONE! PRIMA DI EFFETTUARE IL LOGIN AL SITO, DEVI REGISTRARTI!</CENTER>"
End if
'chiusura del data base e della connesione
rs.Close
conn.Close
Set rs=nothing
Set conn=nothing
%>
</BODY>
</HTML>
ecco invece le due pagine della registrazione RegistrazioneCliente.html: Codice:
<html>
<head>
<title>Inserimento dati in un data base</title>
<style>
fieldset {
font-size:100%;
border:1px solid #000000;
background-color:skyblue;
color:#000000;
padding:3px;
}
</style>
</head>
<BODY text="" bgcolor="lightgreen">
<CENTER> <FONT color="lightred"> <H1> REGISTRATI NEL NOSTRO DATABASE: </H1> </FONT> </CENTER>
<HR>
<P>
<BR>
<CENTER>
<form method=post action="RegistrazioneCliente.asp">
<BLOCKQUOTE><BLOCKQUOTE>
<FIELDSET><LEGEND><B>Registrazione</B></LEGEND>
<P>
<table>
<tr>
<td align=right><B>NICKNAME:</B></td>
<td align=left><input name="txtnickname"> (min 6 caratteri, max 16 caratteri) </td>
</tr>
<tr>
<td align=right><B>PASSWORD:</B></td>
<td align=left><input type="PASSWORD" name="txtpassword"> (min 6 caratteri, max 16 caratteri) </td>
</tr>
<tr>
<td align=right><B>E-MAIL:</B></td>
<td align=left><input name="txtemail"></td>
</tr>
<tr>
<td align=right><B>NOME:</B></td>
<td align=left><input name="txtnome"> </td>
</tr>
<tr>
<td align=right><B>COGNOME:</B></td>
<td align=left><input name="txtcognome"> </td>
</tr>
</table>
<BR>
<input type="reset" value="CANCELLA"> <input type="submit" value="INVIA">
<P>
</FIELDSET>
</BLOCKQUOTE></BLOCKQUOTE>
</form>
</CENTER>
</body>
</html>
Codice:
<%@ language="VBScript" %>
<% option explicit %>
<!--il tag metadata è usato per importare costanti di tipo libreria nella pagina-->
<!--METADATA TYPE="TypeLib" FILE="C:\Programmi\File comuni\System\ado\msado15.dll"-->
<%
'La linea di codice sottostante esegue un controllo sulla creazione degli errori di inserimento dati
on error resume next
'La variabile objconn è usata per effettuare la connessione al database
dim objConn
'viene generata un'istanza dell'oggetto ADODB.Connection
set objConn = Server.CreateObject("ADODB.Connection")
'con ConnectionString viene definito il tipo di driver utilizzato per il database e il suo percorso fisico
objConn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\Inetpub\wwwroot\NegozioOnLine\db_utenti.mdb"
'viene aperto e scritto il database
objConn.Open
dim objRs
set objRs = Server.CreateObject("ADODB.Recordset")
'La stringa di codice riportata sotto apre la tabella "utenti" tramite la connessione
(objConn) creata nel file "RegistrazioneCliente.asp", specificando
che si tratta di una tabella permanente (adCmdTable), una delle tabelle che compongono
il data base, da aprire in modo ottimistico (adLockOptimistic), cioè in scrittura.
objRs.Open "utenti", objConn, , adLockOptimistic, adCmdTable
objRs.AddNew
objRs("NickName")=Request.Form("txtnickname")
objRs("Password")=Request.Form("txtpassword")
objRs("Email")=Request.Form("txtemail")
objRs("Nome")=Request.Form("txtnome")
objRs("Cognome")=Request.Form("txtcognome")
'viene aggiornato il database
objRs.Update
'il database viene chiuso con il metodo close e settato a zero con il parametro nothing
objRs.Close
Set objRs=Nothing
objConn.Close
Set objConn=Nothing
%>
<html>
<head>
<title>Inserimento dati</title>
</head>
<BODY text="lightred" bgcolor="lightgreen">
<%
'viene effettuto un controllo inerente la possibile generazione di errori durante l'inserimento di dati
If err.number>0 then
response.write "<BR><BR><BR><BR><BR><BR><BR><BR><BR><CENTER><H1> ERRORE NELL'INSERIMENTO, RIPROVA </H1></CENTER>"
Else
response.write "<BR><BR><BR><BR><BR><BR><BR><BR><BR><CENTER><H1> I DATI SONO STATI INSERITI CORRETTAMENTE </H1></CENTER>"
End if
%>
</body>
</html>
invece vorrei farlo funzionare con uno solo. il problema è che se cambio quello del login e metto il database della registrazione mi dice (quando effettuo il login) NON SEI REGISTRATO!. se invece metto il database del login al posto di quello della registrazione mi dà poi l'errore nella registrazione. Eppure i database sono identici con le stesse chivi primarie (NickName e Password). Come posso risolvere questo problema??? ringrazio anticipatamente. ps:spero di avere delle risposte entro oggi graize mille. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:28.



















