• User Newbie

    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.mdb

    Tabella: 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 risponde

    Microsoft 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.


  • User

    L'ultimo punto e virgola dovrebbe andare tra virgolette se non sbaglio.


  • User Newbie

    .....purtroppo anche spostando l'ultimo punto e virgola tra le ultime virgolette il risultato non cambia.
    Grazie comunque


  • User

    Ah ok! Comunque sei sicuro che si scriva "login.mdb/utenti"?


  • User Attivo

    @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.


  • User Newbie

    @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 significa

    Microsoft VBScript errore di compilazione '800a0401 '
    Prevista fine istruzione
    / Login.asp, linea 9
    conn.Open "Driver = {Microsoft Access Driver (*. mdb)}"; DBQ = "& Server.MapPath (" login.mdb ") &" ";


  • User Attivo

    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?


  • User Newbie

    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.