Foros del Web » Programando para Internet » PHP »

Mayúsculas Vs. Minúsculas

Estas en el tema de Mayúsculas Vs. Minúsculas en el foro de PHP en Foros del Web. Buenas a todos Me encuentro con una comprobación para un formulario de alta de usuarios, donde se testa antes la existencia para continuar con el ...
  #1 (permalink)  
Antiguo 21/04/2009, 10:53
 
Fecha de Ingreso: noviembre-2007
Ubicación: Zamora (Spain)
Mensajes: 251
Antigüedad: 16 años, 5 meses
Puntos: 1
Pregunta Mayúsculas Vs. Minúsculas

Buenas a todos

Me encuentro con una comprobación para un formulario de alta de usuarios, donde se testa antes la existencia para continuar con el proceso.

Código:
$consulta = mysql_query("SELECT * FROM usuarios WHERE user='$user' ",$conexion);
Si en la base de datos hay un usuario llamado PEPE y yo me doy de alta como pepe lo ve diferente y continua con el registro.

El campo "user" es Varchar (NO binary), por lo que no entiendo si será por estas opciones :

Character set = latin1
Collation = Latin1_bin


En en inicio de la web tengo:

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
.........
Espero que alguien sepa decirme alguna solución porque no se por donde mirar ya...

Gracias y un saludo
  #2 (permalink)  
Antiguo 21/04/2009, 14:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Mayúsculas Vs. Minúsculas

Tema trasladado desde MySQL

http://www.forosdelweb.com/f21/funci...-datos-413499/
  #3 (permalink)  
Antiguo 21/04/2009, 15:16
 
Fecha de Ingreso: marzo-2009
Mensajes: 65
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Mayúsculas Vs. Minúsculas

porque no pasas todo a minusculas antes de insertalo y al consultarlo, con:

Código PHP:
  echo strtolower('PePe'); /* es igual a pepe */
  
echo strtolower('PEPE'); /* es igual a pepe */
  
echo strtolower('pepe'); /* es igual a pepe */ 
  #4 (permalink)  
Antiguo 21/04/2009, 16:19
 
Fecha de Ingreso: junio-2008
Ubicación: Porto Alegre
Mensajes: 67
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Mayúsculas Vs. Minúsculas

Antes de registrar al usuario podrías pasar todo a minúscula o mayúscula:
Código PHP:
$user=strtolower($user); //Pasa a minusculas
$user=strtoupper($user); // Pasa a mayusculas
$consulta mysql_query("SELECT * FROM usuarios WHERE user='$user' ",$conexion); 
  #5 (permalink)  
Antiguo 21/04/2009, 17:57
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Mayúsculas Vs. Minúsculas

Cambia el collation a uno que sea case insensitive.

Talvez latin1_general_ci
  #6 (permalink)  
Antiguo 21/04/2009, 18:16
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Mayúsculas Vs. Minúsculas

Quetal Ronruby me podrias indicar como se logra lo que dices, pues no tengo ese problema pero querio aprender a solucionarlo

Gracias
  #7 (permalink)  
Antiguo 21/04/2009, 18:19
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Mayúsculas Vs. Minúsculas

Puedes hacer una consulta ALTER TABLE:
http://dev.mysql.com/doc/refman/5.0/es/alter-table.html

O puedes cambiarlo desde phpMyAdmin
  #8 (permalink)  
Antiguo 21/04/2009, 18:28
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Mayúsculas Vs. Minúsculas

Muchas gracias
  #9 (permalink)  
Antiguo 21/04/2009, 18:35
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Mayúsculas Vs. Minúsculas

O, si lo deseas, tambien puedes programar tu aplicacion para que sea case insensitive.

Solo tendrias que, al "hacer login", llevar el nombre de usuario a minusculas y comparar en MySQL usando la funcion LOWER:

Código php:
Ver original
  1. $consulta = "SELECT * FROM usuario WHERE LOWER(nick) = '".strtolower($_POST['nick'])."'";

PD: Es solo un ejemplo. Siempre recuerda tratar los datos provenientes del usuario.
  #10 (permalink)  
Antiguo 22/04/2009, 02:04
 
Fecha de Ingreso: noviembre-2007
Ubicación: Zamora (Spain)
Mensajes: 251
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Mayúsculas Vs. Minúsculas

Hola

Gracias a todos por ayudarme. La verdad que usando strtolower & LOWER me funciona muy bien. Pero lo suyo sería cambiando el Collate.

Cuando veo las opciones que me da el Navicat para editar son los siguientes para Latin (ISO-8859-1)

Character Set
latin1
Collation
latin1_bin
latin1_german2_ci
latin1_swedish_ci

Character Set
latin2
Collation
latin2_czech_cs

Character Set
latin5
Collation
(ninguno)

Character Set
latin7
Collation
(ninguno)


De todas las maneras si no lo logró de esta manera, lo hago convirtiendo a minúsculas todo y a correr, que tampoco es tanto problema.

Gracias y un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:17.