Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Problema modulo login

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    4

    Problema modulo login

    Ciao a tutti, vi chiedo aiuto per un modulo di login.
    Ho copiato la pagina da un sito che ho già in gestione che ha il login con Nickname - Password.
    Ho cambiato i vari parametri per fare il login con E-mail - Password ma ricevo il seguente errore:



    Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
    [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 15.
    /login.asp, line 23


    Le righe di riferimento sono:

    strsql="SELECT count(*) AS verifica FROM soci WHERE [email] LIKE '" & emailn & "' AND pwd= '" & pass & "'"
    Set res=connessione.Execute(strsql)
    con1=res.Fields("verifica")
    res.close

    In precedenza i campi [email] erano senza parentesi quadre, ma il problema è lo stesso.
    Cosa posso fare per risolvere il problema? Grazie

  2. #2
    fatti stampare strsql e postala qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    4
    Eccolo: SELECT count(*) AS verifica FROM soci WHERE email LIKE 'asd' AND pwd= 'ciao'

    Questo username asd non esiste, quindi dovrebbe comparire il messaggio d'errore che informa che lo username è errato. Invece ho sempre lo stesso errore di prima.

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,660
    errore di sintassi: prova con
    codice:
    LIKE '%" & emailn & "%'
    ma fare una verifica utente con LIKE che senso ha?
    ti saltano fuori anche risultati non richiesti.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    4
    Vi posto l'intero codice della pagina di login, non riesco a venirne a capo:

    <!-- #include virtual="/header.asp"-->


    <title>AREA SOCI</title>
    </head>


    <!-- #include virtual="/menu.asp"-->


    <div id="centrale" >
    <% if sessionemail <> "" then
    response.redirect("/soci/")
    end if



    IF request.form("submit")="accedi" then
    'login
    emailn = request.form("email")
    pass = request.form("password")

    strsql="SELECT count(*) AS verifica FROM soci WHERE email LIKE '" & emailn & "' AND pwd= '" & pass & "'"
    Set res=connessione.Execute(strsql)
    con1=res.Fields("verifica")
    res.close


    'ban
    strsql="SELECT COUNT(*) AS VERIFICA FROM soci WHERE email LIKE '" & emailn & "' AND BAN = true"
    Set BAN2=connessione.Execute(strsql)

    if ban2("verifica") > 0 then
    response.redirect("?msg=Il tuo account è stato disabilitato, per chiarimenti contatta i webmaster")
    end if

    'invisibile
    strsql="SELECT COUNT(*) AS VERIFICA FROM soci WHERE email LIKE '" & emailn & "' AND invisibile = true"
    Set BAN2=connessione.Execute(strsql)

    if ban2("verifica") > 0 then
    response.redirect("?msg=La tua richiesta d'iscrizione è stata inibita, contatta il webmaster per spiegazioni")
    end if

    'exsocio
    strsql="SELECT COUNT(*) AS VERIFICA FROM soci WHERE email LIKE '" & emailn & "' and pwd= '" & pass & "' and exsocio = true"
    Set BAN2=connessione.Execute(strsql)

    if ban2("verifica") > 0 then

    session("nuovo") = emailn

    strsql="SELECT * FROM dati_soci WHERE email LIKE '" & emailn & "' AND exsocio = true"
    Set nuovo=connessione.Execute(strsql)
    session("id_nuovo") = nuovo("id")

    if nuovo("controllo_dati") = true then
    response.redirect("/soci/dati_mancanti.asp")
    end if
    response.redirect("/nonsoci/exsocio.asp?msg=Sei un Ex-Socio, ti invitiamo a contattare il Direttivo per riattivarti come Socio.")

    'response.redirect("?msg=Sei un exsocio, per essere riabitato contatta il webmaster")
    end if

    'NUOVO UTENTE
    strsql="SELECT COUNT(*) AS VERIFICA FROM dati_soci WHERE email LIKE '" & emailn & "' and pwd= '" & pass & "' and nuovo_iscritto = true"
    Set nuovo=connessione.Execute(strsql)

    if nuovo("verifica") > 0 then

    strsql="SELECT * FROM dati_soci WHERE email LIKE '" & emailn & "' and nuovo_iscritto = true"
    Set nuovo=connessione.Execute(strsql)
    session("nuovo") = emailn
    session("id_nuovo") = nuovo("id")


    if nuovo("controllo_dati") = true then
    response.redirect("/soci/dati_mancanti.asp")
    end if

    response.redirect("/nonsoci/index.asp")
    end if


    if con1 = 1 then
    session("email") = emailn
    session("password") = pass
    session("socio") = "si"

    Session.Timeout = 90


    if request.form("cookie") <> "" then
    cookie = "?cookie="& request.form("cookie")
    end if


    response.redirect("/soci/" & cookie)
    else
    response.redirect("?msg=Email/password Errati")
    end if
    end if %>


    <h1>Login area soci</h1>
    <hr />


    <h2>&nbsp;</h2>
    <form method="post" action="">
    <p><b>E-mail</b> <input type="text" name="email" /></p>
    <p><b>Password</b> <input type="password" name="password" /></p>
    <h2><input type="submit" value="accedi" name="submit" /></h2>
    <h2>&nbsp;</h2>
    <p>Login automatico ad ogni visita: <input type="checkbox" name="cookie" value="si" /></p>
    </form>


    <h1>&nbsp;</h1>
    <p><b><a href="/recupera_password.asp">Recupera Password</a></b></p>
    </div>

    <!--#include virtual="/footer.asp"-->


    Ripeto: con un database dove fa la ricerca con il Nickname non ci sono problemi, ma se faccio la ricerca tramite E-mail mi dà sempre errore:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'[Microsoft][ODBC Microsoft Access Driver] The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.
    /login.asp, line 22

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se non usi il tag [ code ] come da regolamento per postare il tuo codice diventa piu' difficile capirci: copia-incollando quello che hai postato la linea 22 a me risulta bianca, ma se la query che difetta e' la prima prova ad inserire la riga:
    codice:
    strsql="SELECT count(*) AS verifica FROM soci WHERE email LIKE '" & emailn & "' AND pwd= '" & pass & "'"
    response.write "<hr>"&strsql&"<hr>":response.flush     ' <<<=== QUESTA
    Set res=connessione.Execute(strsql)
    e postaci quello che viene stampato
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Andre, LIKE 'pippo' NON ha senso, specialmente nel tuo contesto. Usa ='pippo'

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    4
    Ecco il codice con i tag:
    codice:
    <!-- #include virtual="/header.asp"-->
    
    
    <title>CCI - AREA SOCI</title>
    
    
    <meta name="description" content="CorsaClub.it - Accesso Area Soci" />
    </head>
    
    
    <!-- #include virtual="/menu.asp"-->
    
    
    <div id="centrale" >
    <% if sessionemail <> "" then
    		response.redirect("/soci/")	
    end if
    
    
     
    IF request.form("submit")="accedi" then
    	'login
    	emailn = request.form("email")
    	pass = request.form("password")
    	
    	strsql="SELECT count(*) AS verifica FROM soci WHERE email = '" & emailn & "' AND pwd = '" & pass & "'"
    	response.write "<hr>"&strsql&"<hr>":response.flush 
    	Set res=connessione.Execute(strsql)
    	con1=res.Fields("verifica")
    	res.close
    
    
    	'ban
    	strsql="SELECT COUNT(*) AS VERIFICA FROM soci WHERE email LIKE '" & emailn & "' AND BAN = true"
    	Set BAN2=connessione.Execute(strsql)
    	
    	if ban2("verifica") > 0 then
    		response.redirect("?msg=Il tuo account è stato disabilitato, per chiarimenti contatta i webmaster")	
    	end if
    	
    	'invisibile
    	strsql="SELECT COUNT(*) AS VERIFICA FROM soci WHERE email LIKE '" & emailn & "' AND invisibile = true"
    	Set BAN2=connessione.Execute(strsql)
    	
    	if ban2("verifica") > 0 then
    		response.redirect("?msg=La tua richiesta d'iscrizione è stata inibita, contatta il webmaster per spiegazioni")	
    	end if
    	
    	'exsocio
    	strsql="SELECT COUNT(*) AS VERIFICA FROM soci WHERE email LIKE '" & emailn & "' and pwd= '" & pass & "' and exsocio = true"
    	Set BAN2=connessione.Execute(strsql)
    	
    	if ban2("verifica") > 0 then
    	
    		session("nuovo") = emailn
    	
    		strsql="SELECT * FROM dati_soci WHERE email LIKE '" & emailn & "' AND exsocio = true"
    		Set nuovo=connessione.Execute(strsql)
    		session("id_nuovo") = nuovo("id")
    	
    	    if nuovo("controllo_dati") = true then
    		   response.redirect("/soci/dati_mancanti.asp")
    		end if
    		response.redirect("/nonsoci/exsocio.asp?msg=Sei un Ex-Socio, ti invitiamo a contattare il Direttivo per riattivarti come Socio.")
    		
    		'response.redirect("?msg=Sei un exsocio, per essere riabitato contatta il webmaster")	
    	end if
    	
    	'NUOVO UTENTE
    	strsql="SELECT COUNT(*) AS VERIFICA FROM dati_soci WHERE email LIKE '" & emailn & "' and pwd= '" & pass & "' and nuovo_iscritto = true"
    	Set nuovo=connessione.Execute(strsql)
    	
    	if nuovo("verifica") > 0 then
    	
    		strsql="SELECT * FROM dati_soci WHERE email LIKE '" & emailn & "' and nuovo_iscritto = true"
    		Set nuovo=connessione.Execute(strsql)
    		session("nuovo") = emailn
    		session("id_nuovo") = nuovo("id")
    
    
    	    if nuovo("controllo_dati") = true then
    		   response.redirect("/soci/dati_mancanti.asp")
    		end if
    		
    		response.redirect("/nonsoci/index.asp")	
    	end if
    
    
    	if con1 = 1 then
    	 	session("email") = emailn
    		session("password") = pass
    		session("socio") = "si"
    		
        	Session.Timeout = 90
    
    
    		if request.form("cookie") <> "" then
    			cookie = "?cookie="& request.form("cookie") 
    		end if
    
    
    		response.redirect("/soci/" & cookie)
    	else
    		response.redirect("?msg=Nick/password Errati")
    	end if
    end if %>
    
    
            <h1>Effettuare il login<br /> &nbsp;</h1>
            <form method="post" action="">
              <div> 
                <p><b>Nickname</b> <input type="text" name="email" /></p>
                <p><b>Password </b>&nbsp; <input type="password" name="password" /></p>
                <h2><input type="submit" value="accedi" name="submit" /></h2>
                <h2>&nbsp;</h2>
                <p>Login automatico ad ogni visita: <input type="checkbox" name="cookie" value="si" /></p>
              </div>
            </form>
            
            <h1>&nbsp;</h1>
            <p><b><a href="/recupera_password.asp">Recupera Password</a></b></p>
    
    
    </div>
    
    
    <!--#include virtual="/footer.asp"-->
    ---------------

    @br1: se inserisco la riga che dici tu mi esce:

    SELECT count(*) AS verifica FROM soci WHERE email = 'pippo@gmail.com' AND pwd = 'pipe'
    Response object error 'ASP 0156 : 80004005'
    Header Error
    /login.asp, line 104
    The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.

    ---------------

    @optime: ho messo = al posto di LIKE ma il problema persiste.

    ---------------




    Ho giocato con il database Access e ho riscontrato che: se copio il vecchio database, il login tramite email funziona alla perfezione. Se dalla tabella dove ci sono i dati degli utenti, elimino due caselle che richiedono i colori degli adesivi, ho questo errore. Già provato a compattare il database dopo la modifica ma con esito negativo.
    Quello che non capisco è: se io nel database non tocco i campi mail, nick e password, perché con la ricerca tramite nickname non ho mail problemi, mentre con la ricerca tramite email mi va in errore?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.