Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    9

    Asp, SQL server Express 2008 e Windows 7

    Ciao a tutti!! Sono nuova del forum e sono nuova anche a asp...
    Sto facendo un sito puramente per imparare un pochino di programmazione con asp, ma ho riscontrato un problema e da quello che ho letto in giro (google) forse è solo un problema di accessi, ma vorrei un opinione di qualcuno che ne sa più di me...
    Mi spiego meglio, ho creato una semplice pagina html con un form per il login, questo form reindirizza al mio file login.asp.
    Qui praticamente creo la connessione al db, faccio una query per vedere se l'utente è presente nel mio db e lo faccio collagare. Nulla di eccessivo come potete capire...Ho fatto 1000 vote il debug e non trovo proprio il problema ma continua a restituirmi questo errore:

    Microsoft OLE DB Provider for SQL Server error '80040e14' Sintassi non corretta in prossimità di ' '.Login.asp, riga 14
    Ora vi mostro il codice:

    codice:
    <%@LANGUAGE="VBSCRIPT"%> <% 
    'Creo connessione 
    Set Conn = Server.CreateObject("ADODB.Connection") 
    'Apro connessione 
    Conn.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQLEXPRESS;UID=sa;PWD=miapass;DATABASE=mydb"
    'Creo RSClienti 
    set rs1=Server.CreateObject("ADODB.recordset") 
    'Query SQL 
    sql="SELECT A,B FROM X WHERE A='"&Request.Form("user")&"' AND B='"&Request.Form("pwd")&"'" 
    rs1.open sql, Conn, 3, 3 
    'Salvo dati RS come variabili di sessione 
    Session("pwd") = rs1.Fields("A") 
    Session("id") = rs1.Fields("B") 
    'Chiudo RS e connessione 
    rs1.close 
    Conn.close 
    Set rsClienti = Nothing
    Set Conn = Nothing 
    'Reindirizzo a homepage 
    Response.Redirect("Home.asp") %>

    Sto veramente impazzendo perchè non capisco qual'è il problema...Qualcuno può gentilmente aiutarmi?


    Grazie in anticipo!!


    ps Uso Dreamweaver 5 e sto provando il sito in locale...


    Dani

  2. #2
    ----------------------------------------------------
    impariamo a fare un po' di debug

    *immediatamente prima* di eseguire la query metti

    Response.Write "maGGica SQL...: " & sql
    Response.Flush

    poi posta quello che viene a video
    ----------------------------------------------------

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    9
    :/ Mi stampa questo:



    maGGica SQL...: SELECT A ,B FROM X WHERE A ='Dani' AND B='dd'

    Grazie

  4. #4
    se esegui

    SELECT A ,B FROM X WHERE A ='Dani' AND B='dd'

    direttamente in SqlExpress funziona?

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    9
    Si, funziona...
    Per questo non riesco proprio a capire quale possa essere il problema e ho pensato che magari è connesso con gli accessi...
    Ho letto dell' IIS_IUS account, ma non è che mi sia chiarissimo cos'è, cosa fa e come settarlo...

  6. #6
    non sono sicuro che la riga 14 sia quella evidenziata... messi un po' di response.write per capire dove si ferma

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    9
    Allooraaa...Ho fatto stampare i Request.Form, la query e ho controllato se la connessione è aperta...Riposto codice e errore:
    codice:
    <%@LANGUAGE="VBSCRIPT"%>
    <%
    Response.Write(Request.Form("utente"))
    Response.Write(Request.Form("pwd"))
    'Creo connessione
    Set Conn = Server.CreateObject("ADODB.Connection") 
    'Apro connessione
    Conn.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQLEXPRESS;UID=sa;PWD=miapass;DATABASE=Miodb"
    if IsObject(Conn) then
    response.write ("Connessione aperta")
    end if
    'Creo RS
    set rs=Server.CreateObject("ADODB.recordset")
    'Query SQL
    sql="SELECT User,Pass FROM Utente WHERE User='"&Request.Form("utente")&"' AND Pass='"&Request.Form("pwd")&"'"
    Response.Write "maGGica SQL...: " & sql
    Response.Flush
    rs.open sql, Conn, 3,3 
    'Salvo dati RS come variabili di sessione
    Session("pwd") = rs.Fields("User")
    Session("id") = rsFields("Pass")
    'Chiudo RS e connessione
    rs.close
    Conn.close
    Set rs = Nothing
    'Reindirizzo a homepage
    Response.Redirect("Home.asp")
    %>

    Tutto ciò che mi stampa:


    DaniddConnessione apertamaGGica SQL...: SELECT User,Pass FROM Utente WHERE User ='Dani' AND Pass='dd'
    Microsoft OLE DB Provider for SQL Server error '80040e14'

    Sintassi non corretta in prossimità di ' '.

    /Login.asp, riga 18


    Ho anche provato a sostituire quella linea con

    codice:
    set rs = Conn.execute(sql)

    ma l'errore persiste e sempre in quel punto...

  8. #8
    Se l'input con name "pwd" ha il type "password", devi usare le quadre nella stringa SQL:

    sql="SELECT [A],[B] FROM X WHERE A='"&Request.Form("user")&"' AND B='"&Request.Form("pwd")&"'"

    Stay safe!

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    9
    Grazie Luca, ma anche facendo la modifica che mi hai suggerito tu (l'input per la password è di type password) l'errore rimane...

  10. #10
    Prova ad usare le quadre anche nella clausola Where:
    codice:
    sql="SELECT [User],[Pass] FROM Utente WHERE [User]='"&Request.Form("utente")&"' AND [Pass]='"&Request.Form("pwd")&"'"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.