Provo a spiegare il mio problema:
Nel mio negozio virtuale quando si arriva a visualizzare la pagina dei dettagli del prodotto, c'è anche il pulsante per aggiungere il prodotto al carrello. Premendo il pulsante possono accadere due cose: se l'utente ha già effettuato il login allora il prodotto viene aggiunto nel carrello altrimenti appare la pagina registrazione.asp che permette o di fare il login oppure di registrarsi compilando l'apposito modulo.
La pagina che permette questo è la seguente:
<%
'estrazione id del prodotto
IDprodotto = TRIM ( Request( "pid" ))
'estrazione informazioni di accesso
username = TRIM( Request( "username" ))
password = TRIM( Request( "password" ))
registra = TRIM( Request( "registra" ))
error = TRIM( Request( "error" ))
dim driverString, databaseString, connString
dim objConn
driverString="DRIVER={Microsoft Access Driver (*.mdb)};"
databaseString="DBQ=" & Server.MapPath("./db/ecommerceDB.mdb") & ";"
connString=driverString & databaseString
set objConn=Server.createObject("ADODB.connection")
objConn.Open connString
'verifica nuova registrazione
IF registra <> "" AND error = "" THEN
addUser
END IF
'richiama la funzione presente in validazione.asp che è incluso
'all'inizio di questa pagina e che controlla se nome utente e password
'sono presenti nel database, se è presente restituisce l'userID = 1 o
'> 1 e si accederà alla pagina aggcarrello.asp (vedi sotto)
'altrimenti si dovrà effettuare la registrazione
userID = checkpassword( username, password, objConn )
IF userID > 0 THEN
%>
<% ELSE %>
<%
END IF
%>
Nel file validazione.asp ho creato la funzione checkpassword() in questo modo:
FUNCTION checkpassword( username, password, objConn )
sqlString = "SELECT user_username, user_password FROM users " &_
"WHERE user_username='" & fixQuotes( username ) & "'" &_
"AND user_password='" & fixQuotes( password ) & "'"
SET catRecSet = objConn.Execute( sqlString )
IF catRecSet.EOF THEN
checkpassword = user_id
ELSE
checkpassword = 0
END IF
catRecSet.Close
END FUNCTION
Però non funziona!!
questo è l'errore che mi dà:
Tipo di errore:
Errore di run-time di Microsoft VBScript (0x800A000D)
Tipo non corrispondente: 'checkpassword'
Qualcuno sà dirmi dove ho sbagliato???
Grazie!