Saludos:
Necesito que mi sistema de usuario y contraseña para dar acceso a una pagnina web distinga entre mayusculas y minusculas.
| |||
![]() Saludos: Necesito que mi sistema de usuario y contraseña para dar acceso a una pagnina web distinga entre mayusculas y minusculas.
__________________ "La adulación es una moneda que empobrece al que la recibe" |
| |||
1 - ¿Donde quieres comprobarlo: en la BD o en código? 2 - ¿Qué BD usas? NOTA: Mira esto por si te sirve: http://www.forosdelweb.com/f15/diferenciar-mayusculas-minusculas-logueo-367879/ Un saludo |
| |||
Solo hay un problema el login no distingue entre mayusculas y minusculas como hago para que distinga, la contraseña si distigue pero esta no se la paso como parametro, lo que hago es que una ves que encuentra al usuario el SP hace esto mi codigo: If (rs("pas")<>request("pas") then respose.write "contraseña incorrecta" end if Por cierto abajo pongo el codigo para que entiendas mejor, me refiero al codigo que hace la consulta parametrizada sobre la variable "login" la cual es la que no distingue entre mayusculas y minusculas set cmd = Server.CreateObject("ADODB.Command") cmd.ActiveConnection = Conn cmd.CommandText = "spVerifPasswdE" cmd.CommandType = 4 cmd.CommandTimeout = 0 cmd.Prepared = true cmd.Parameters.Append cmd.CreateParameter("@login", 200, 1,10,request.form("login")) set rs = cmd.Execute() Este es el SP: set nocount on select * from usuarios where rtrim(login) = rtrim(@login)
__________________ "La adulación es una moneda que empobrece al que la recibe" |
| |||
Prueba con esto: if not StrComp(rs("pas"), request("pas"), 0) then respose.write "contraseña incorrecta" Si tienes MySQL puedes usar BINARY: set nocount on select * from usuarios where BINARY rtrim(login) = rtrim(@login) Un saludo |
| |||
Utilizo SQL server 2000 y si pongo el SP asi: set nocount on select * from usuarios where BINARY rtrim(login) = rtrim(@login) me marca error "Incorrect syntax near 'rtrim'
__________________ "La adulación es una moneda que empobrece al que la recibe" |
| |||
Obviamente, esa instrucción es para MySQL ![]() Para MS SQL puedes convertir el tipo de string y comparar ambas cadena: set nocount on select * from usuarios where CONVERT(VARBINARY(30), rtrim(login)) = CONVERT(VARBINARY(30), rtrim(@login)) Aunque si el campo login no es de tipo VARBINARY te recomiendo que uses strComp de ASP como te he puesto antes. Un saludo |
| |||
No, pero una vez leido el recordset set rs = cmd.Execute() ya puedes hacer if not StrComp(rs("pas"), request("pas"), 0) then respose.write "contraseña incorrecta" y if not StrComp(rs("login"), request("login"), 0) then respose.write "nombre de usuario incorrecto" NOTA: Otra forma de hacerlo es usando COLLATE: set nocount on select * from usuarios where rtrim(login) = rtrim(@login) COLLATE SQL_Latin1_General_CP1_CS_AS Un saludo Última edición por tammander; 24/02/2006 a las 14:16 |