- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- Dove ho sbagliato?
-
Dove ho sbagliato?
Prima del restyling funzionava tutto, ora non riesco più ad accedere alle pagine riservate.
Questi i dati inseriti:
Caratteristiche del db:
Login.mdbTabella: utenti
Campi: UserID e Password
- Il form è situato in pagina index non protetta *
[HTML]<td style="width: 265px;" class="style56">UserID:<br />
<input name="txtUserID" style="width: 190px;" type="UserID" /><br />
</td>
</tr>
<tr><td style="width: 265px;" class="style56">
Password:
<input name="txtPassword" maxlength="4" style="width: 187px;" type="Password" />
</td>
</tr>
<tr>
<td style="width: 265px;" class="style57">
input name="Submit" value="Invia" style="width: 91px;" type="submit" />
</td>
[/HTML]Logon.asp
<% Dim UserID Dim Password UserID = Replace(Request.Form("UserID"), "'", "''") Password = Replace(Request.Form("Password"), "'", "''") Dim cn Set cn = Server.CreateObject("ADODB.Connection") cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("login.mdb/utenti")&""; Dim sql sql = "SELECT ID FROM utenti WHERE UserID LIKE'" &UserID& "' AND Password='" &Password& "'" Dim rs Set rs = cn.Execute(sqlstmt, rowsupdated) Dim autenticato if rs.eof then autenticato = false else autenticato = true end if rs.Close cn.Close Set rs = Nothing Set cn = Nothing if autenticato = true then Session("Autenticato") = "OK" Response.Redirect("homapage.html") else Response.Redirect("login.html") end if %>
A questo punto dovrebbe aprirmi la pagina protetta :homepage.html
Invece rispondeMicrosoft VBScript compilation error '800a0401'
Expected end of statement
/Login.asp, line 9
cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("login.mdb/utenti")&"";Dove ho sbagliato? Grazie per l?aiuto.
- Il form è situato in pagina index non protetta *
-
L'ultimo punto e virgola dovrebbe andare tra virgolette se non sbaglio.
-
.....purtroppo anche spostando l'ultimo punto e virgola tra le ultime virgolette il risultato non cambia.
Grazie comunque
-
Ah ok! Comunque sei sicuro che si scriva "login.mdb/utenti"?
-
@piero 53,
premetto che ASP non è il mio forte, ma ho solo fatto qualche ricerca su Google, potresti cortesemente provare questa:cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("login.mdb")
Ci faccia sapere.
-
@MenteLibera,
ho provato ma la risposta è stata:Microsoft VBScript compilation error '800a0401'
Expected end of statement
/Login.asp, line 9
conn.Open "driver={Microsoft Access Driver (*.mdb)}";dbq="&Server.MapPath("login.mdb")&"";
che significaMicrosoft VBScript errore di compilazione '800a0401 '
Prevista fine istruzione
/ Login.asp, linea 9
conn.Open "Driver = {Microsoft Access Driver (*. mdb)}"; DBQ = "& Server.MapPath (" login.mdb ") &" ";
-
Leggendo la riga d'errore non sembrerebbe che abbia caricato il file con la mia correzione perché vedo riportata l'originaria del post #1.
Altra cosa: lo script di login riesce ad arrivare correttamente nella cartella in cui è situato il file "login.mdb"?
Se in altra cartella prestare attenzione a scrivere correttamente il percorso con i backslash.Ed ultimo, ma non meno ultimo di importanza, il database "login.mdb" è in una cartella con i permessi impostati corretti per l'esecuzione?
-
E' un problema di virgolette!
La stringa viene chiusa male e rimane aperta mandando fuori di testa il compilatore.
Secondo me dovrebbe essere cosi:
conn.Open "Driver = {Microsoft Access Driver (. mdb)}; DBQ = " & Server.MapPath ("login.mdb") & ";"
*Come detto da MenteLibera, controlla anche se il file del db si trova dentro una cartella che ha accesso in lettura/scrittura altrimenti potresti avere altri problemi.