34 messaggi dal 29 luglio 2005
Dato che nessuno si è degnato di una risposta ho provato a risolvere il problema da solo ma continuo ad avere problemi. Provo a spiegare meglio il 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:

<!--#INCLUDE FILE="validazione.asp"-->
<%
IDprodotto = TRIM ( Request( "pid" ))
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

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
%>
<!--#INCLUDE FILE="aggcarrello.asp"-->
<% ELSE %>
<!--#INCLUDE FILE="registrazione.asp"-->
<%
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!
844 messaggi dal 27 gennaio 2004
forse perchè assegni alla funzione checkpassword la user_id che non è definita da nessuna parte?

ciao
34 messaggi dal 29 luglio 2005
Come posso fare affinchè la funzione mi assegni un numero > 0 nel caso l'utente esiste? e invece un numero <= 0 se l'utente non esiste?
55 messaggi dal 19 luglio 2005
IF catRecSet.EOF THEN
checkpassword = catRecSet("id") 'dove id corrisponde al contatore
ELSE
checkpassword = 0
END IF
34 messaggi dal 29 luglio 2005
Grazie claud non ci avevo pensato, ora provo subito,
Ciao!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.