21 febbraio 2003 alle 15:56:24 Modificato il 21 febbraio 2003 alle 17:25:54Per quanto riguarda il problema dell'inserimento delle parentesi quadre nella User (Login), ho visto che il problema è nelle query nel db, in quanto viene fatta un select con la "like". Questa è inutile, infatti usata senza caratteri jolly non serve a nulla, anzi provoca l'errore sql nel caso in cui nella User c'è una parentesi quadra. Quindi il problema si risolve sostituendo la "like" con "=" (anche perchè il nome inserito deve essere identico a quello nel Db). Ovviamente questa correzione va fatta al momento dell'autenticazione del login (includesauthentication-inc.asp) sostituendo la riga(30 circa) con :
rSQL = "SELECT uID, uLogin, uEmail, uPassword, uValid FROM users WHERE uLogin = '" & SQLEncrypt(sLogin) & "'"
e nella gestione degli account(includesadminaccounts-inc) sostituendo la riga nella funzione EditAccount (264 circa) con :
rSQL = "SELECT * FROM users WHERE uLogin = '" & SQLEncrypt(uID) & "'"
Ovviamente bisogna controllare dove viene utilizzata la "Like", nelle altre parti del sorgente, ed eventualmente fare la stessa modifica (se ovviamente la select viene fatta con chiave di ricerca il nome Utente).
Se riscontrate eventuali anomalie, fatelo sapere, specificando il problema.
Ciao.
In questo momento stò vedendo le parti in cui la "like" non si può sostituire con "=", ad esempio quando si ricerca una User.
E purtoppo penso che non funzionerà mai la like con le parentesi "[" "]"
TROVATOOOO!!!!
Per usare la like con un campo contenente un parentesi quadra bisogna racchiudere tale carattere tra parentesi quadre !!!!! es. : select * from tabella where campo like '[car]%' dove car = [ o car = ] questa query darà come risultato tutti i record che hanno come iniziali nel campo il carattere "[" o "]" .
giorgio_anastasi Amatore
26 Discussioni
24 febbraio 2003 alle 09:26:29 Confermo quanto detto in precedenza, l'uso delle parentesi quadre e degli altri caratteri "speciali" che usa access per costruirsi le query, possono essere tranquillamente gestiti. Io ad esempio mi sono creato una nuova funzione in database-inc (in include), simile a "SQLEncrypt" che richiamo ogni volta che viene creata una query con la "like".
Function SQLControl(sText) Dim sTemp If Not IsNull(sText) Then sTemp = Replace(sText, "'", "''") sTemp = Replace(sTemp, "[", "[[]") ..... ..... ..... 'Qui si possono inserire gli altri eventuali caratteri da gestire end if SQLControl = sTemp End Function
Ovviamente bisogna andare a sostituire nell'intero sito (dove c'è la "like") la funzione SQLEncrypt con SQLControl (non sono tante..una decina).
N.B. Molte "like" si possono sostituire con "=", questo dove si stà cercando un utente specifico e non si stà facendo una ricerca generica (ad es. quando si visualizza, modifica o cancella un determinato account).
Log in
Cerca
Sostieni AspNuke
Un piccolo gesto per aiutarci a mantenere AspNuke.it online
Promo
MusicWebItalia.it Video Testi Traduzioni Spot Colonne sonore Accordi e Spartiti gratis.
Visitatori
Visitatori Correnti : 139 Membri : 0
Anna
Iscritti
Utenti: 18940
Ultimo iscritto : glauco Lista iscritti Messaggi privati: 3373Commenti: 2210Immagini: 39Downloads: 144Articoli: 49Pagine: 101Siti web: 558Notizie: 180Sondaggi: 11Preferiti: 5685244Post sui forum: 51195Libro degli ospiti: 4Eventi: 7