Forum 

Forum AspNuke.it - Il tuo Portale OpenSource in ASP

Da leggere assolutamente

Autore Messaggio
giorgio_anastasi

Amatore
Amatore
26 Discussioni



Profilo - giorgio_anastasi
21 febbraio 2003 alle 15:56:24 Profilo - giorgio_anastasiInvia un messaggio privato Rispondi quotando
Modificato il 21 febbraio 2003 alle 17:25:54

Per 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
Amatore
26 Discussioni



Profilo - giorgio_anastasi
24 febbraio 2003 alle 09:26:29 Profilo - giorgio_anastasiInvia un messaggio privato Rispondi quotando
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

Login
Password
Memorizza i tuoi dati:

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 offline Anna

Iscritti

 Utenti: 18940
Ultimo iscritto : glauco
Lista iscritti
Messaggi privati: 3373 Commenti: 2210 Immagini: 39 Downloads: 144 Articoli: 49 Pagine: 101 Siti web: 558 Notizie: 180 Sondaggi: 11 Preferiti: 5685244 Post sui forum: 51195 Libro degli ospiti: 4 Eventi: 7

Versioni

Temi