ho una pagina di login, che come da tradizione ha il suo username e password, nonchè la possibilità di creare il prorpio account tramite la registrazione.
Accedendo alla suddetta pagina abbiamo un form con i relativi campi di inserimento dati , dati che poi saranno trasferiti al database.
La lettura del database avviene senza problemi, ma non riesco a salvare i dati immessi nel form dopo il submit.
lo script è il seguente (generato da dreamweaver ultradev 4.0)
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/conn_datab_utenti.asp" -->
<%
' *** Edit Operations: declare variables
MM_editAction = CStr(Request("URL"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Request.QueryString
End If
' boolean to abort record edit
MM_abortEdit = false
' query string to execute
MM_editQuery = ""
%>
<%
' *** Insert Record: set variables
If (CStr(Request("MM_insert")) <> "") Then
MM_editConnection = MM_conn_datab_utenti_STRING
MM_editTable = "utenti"
MM_editRedirectUrl = "benvenuto.asp"
MM_fieldsStr = "Nome|value|Cognome|value|Telefono|value|email|value|username|value|password|value"
MM_columnsStr = "[nome utente]|',none,''|[cognome utente]|',none,''|[num telefono]|none,none,NULL|e-mail|',none,''|username|',none,''|password|',none,''"
' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")
' set the form values
For i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(i+1) = CStr(Request.Form(MM_fields(i)))
Next
' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If
End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it
If (CStr(Request("MM_insert")) <> "") Then
' create the sql insert statement
MM_tableValues = ""
MM_dbValues = ""
For i = LBound(MM_fields) To UBound(MM_fields) Step 2
FormVal = MM_fields(i+1)
MM_typeArray = Split(MM_columns(i+1),",")
Delim = MM_typeArray(0)
If (Delim = "none") Then Delim = ""
AltVal = MM_typeArray(1)
If (AltVal = "none") Then AltVal = ""
EmptyVal = MM_typeArray(2)
If (EmptyVal = "none") Then EmptyVal = ""
If (FormVal = "") Then
FormVal = EmptyVal
Else
If (AltVal <> "") Then
FormVal = AltVal
ElseIf (Delim = "'") Then ' escape quotes
FormVal = "'" & Replace(FormVal,"'","''") & "'"
Else
FormVal = Delim + FormVal + Delim
End If
End If
If (i <> LBound(MM_fields)) Then
MM_tableValues = MM_tableValues & ","
MM_dbValues = MM_dbValues & ","
End if
MM_tableValues = MM_tableValues & MM_columns(i)
MM_dbValues = MM_dbValues & FormVal
Next
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"
If (Not MM_abortEdit) Then
' execute the insert
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close
If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If
End If
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Benvenuto, qui potrai effettuare la tua iscrizione alla nostra comunità:</p>
<form ACTION="<%=MM_editAction%>" METHOD="POST" name="form_registrazione">
<p align="center">Nome:
<input type="text" name="Nome">
</p>
<p align="center"> Cognome:
<input type="text" name="Cognome">
</p>
<p align="center"> Numero di telefono:
<input type="text" name="Telefono">
</p>
<p align="center"> Email:
<input type="text" name="email">
</p>
<p align="center"> Username:
<input type="text" name="username">
</p>
<p align="center"> Password:
<input type="text" name="password">
</p>
<p align="center">
<input type="submit" name="Submit" value="Iscrivimi">
<input type="reset" name="resetta" value="Cancella">
</p>
<input type="hidden" name="MM_insert" value="true">
</form>
<p align="center"> </p>
</body>
</html>
l'errore fornito è il seguente:
Microsoft OLE DB Provider for ODBC Drivers errore "80040e14"
[Microsoft][Driver ODBC Microsoft Access] Errore di sintassi nell'istruzione INSERT INTO.
/internettiamo/registrazione.asp, riga 90
e la parte a cui fa riferimento è la seguente:
85 If (Not MM_abortEdit) Then
86 ' execute the insert
87 Set MM_editCmd = Server.CreateObject("ADODB.Command")
88 MM_editCmd.ActiveConnection = MM_editConnection
89 MM_editCmd.CommandText = MM_editQuery
90 MM_editCmd.Execute
91 MM_editCmd.ActiveConnection.Close
premetto che il database fatto in access 2000 ha solo una tabela contenente i dati, niente quesry, maschere ecc ed è il lettura/scrittura
ciao
Valerio