Premetto che sono alle prime armi, quindi il mio problema potrebbe essere molto banale, anche se mi sta facendo perdere un sacco di tempo.
Ho creato, con dremweaver mx, una pagina per l'accesso tramite password, collegandola con un database access. Provando la pagina in locale, quindi mettendo un percorso assoluto nella connessione al database, va tutto bene; mentre i problemi nascono quando utilizzo il metodo server.MapPath per testarla on line.
L'errore che mi da è questo:
ADODB.Recordset error '800a0bb9'
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/login.asp, line 14
Posto il codice.
login.asp ha questo:
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/Conn_utenti.asp" -->
<%
// *** Validate request to log in to this site.
var MM_LoginAction = Request.ServerVariables("URL");
if (Request.QueryString!="") MM_LoginAction += "?" + Request.QueryString;
var MM_valUsername=String(Request.Form("nome"));
if (MM_valUsername != "undefined") {
var MM_fldUserAuthorization="";
var MM_redirectLoginSuccess="accesso.asp";
var MM_redirectLoginFailed="errore.asp";
var MM_flag="ADODB.Recordset";
var MM_rsUser = Server.CreateObject(MM_flag);
MM_rsUser.ActiveConnection = MM_Conn_utenti_STRING;
MM_rsUser.Source = "SELECT Nome, Password";
if (MM_fldUserAuthorization != "") MM_rsUser.Source += "," + MM_fldUserAuthorization;
MM_rsUser.Source += " FROM Utenti WHERE Nome='" + MM_valUsername.replace(/'/g, "''") + "' AND Password='" + String(Request.Form("password")).replace(/'/g, "''") + "'";
MM_rsUser.CursorType = 0;
MM_rsUser.CursorLocation = 2;
MM_rsUser.LockType = 3;
MM_rsUser.Open();
if (!MM_rsUser.EOF || !MM_rsUser.BOF) {
// username and password match - this is a valid user
Session("MM_Username") = MM_valUsername;
if (MM_fldUserAuthorization != "") {
Session("MM_UserAuthorization") = String(MM_rsUser.Fields.Item(MM_fldUserAuthorization).Value);
} else {
Session("MM_UserAuthorization") = "";
}
if (String(Request.QueryString("accessdenied")) != "undefined" && false) {
MM_redirectLoginSuccess = Request.QueryString("accessdenied");
}
MM_rsUser.Close();
Response.Redirect(MM_redirectLoginSuccess);
}
MM_rsUser.Close();
Response.Redirect(MM_redirectLoginFailed);
}
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form1" method="POST" action="<%=MM_LoginAction%>">
<table width="100%" border="0">
<tr>
<td width="23%">nome</td>
<td width="77%"><input name="nome" type="text" id="nome"></td>
</tr>
<tr>
<td>password</td>
<td><input name="password" type="text" id="password"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="entra"></td>
</tr>
</table>
</form>
</body>
</html>
mentre conn_utenti.asp, nella cartella connections, questo:
<%
// FileName="Connection_ado_conn_string.htm"
// Type="ADO"
// DesigntimeType="ADO"
// HTTP="true"
// Catalog=""
// Schema=""
var MM_Conn_utenti_STRING = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.Mappath("/mdb-database/utenti.mdb")
%>
Il file .mdb, è nella cartella mdb-database.
Non riesco a capire dov'è l'errore
Qualcuno può aiutarmi?
Ringrazio anticipatamente