Foros del Web » Programando para Internet » PHP »

AYUDA como restringir caracteres en un registro

Estas en el tema de AYUDA como restringir caracteres en un registro en el foro de PHP en Foros del Web. Hola, Tengo un formulario de registro en PHP que almacena los datos en una sql, el problema radica en que algunas veces los clientes introducen ...

  #1 (permalink)  
Antiguo 15/03/2010, 13:14
(Desactivado)
 
Fecha de Ingreso: marzo-2010
Mensajes: 40
Antigüedad: 14 años, 1 mes
Puntos: 0
AYUDA como restringir caracteres en un registro

Hola,

Tengo un formulario de registro en PHP que almacena los datos en una sql, el problema radica en que algunas veces los clientes introducen caracteres raros en las celdas y la SQL falla, incluso rompiendo la cadena de registro y no dejando que nadie se registre despues de esa persona. Por ese motivo querria filtrar el tipo de caracteres que el usuario introduce al registrarse. abajo os dejo 2 ifs que comprueban el registro en la celda, en ese caso da error si el cliente no cumplimenta 2 caracteres minimo o si lo deja vacio.

}
if((strlen($nombre) <= 2) OR (trim($nombre) == "")){
$error_nombre = "Debe escribir un nombre válido.";
$todo_ok = 1;
}

if((strlen($apellido) <= 2) OR (trim($apellido) == "")){
$error_apellido = "Debe escribir un apellido válido.";
$todo_ok = 1;
}
  #2 (permalink)  
Antiguo 15/03/2010, 13:20
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: AYUDA como restringir caracteres en un registro

porque no haces las validaciones con javascript antes de enviar el formulario y solo dejas que ingresen numero y letras, asi disminuyes las posibilidades de error
  #3 (permalink)  
Antiguo 15/03/2010, 13:28
(Desactivado)
 
Fecha de Ingreso: marzo-2010
Mensajes: 40
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: AYUDA como restringir caracteres en un registro

y eso como lo hago, te agradeceria ayuda pues estoy yo intentando hacerlo por mi mismo. gracias
  #4 (permalink)  
Antiguo 15/03/2010, 13:28
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: AYUDA como restringir caracteres en un registro

Cita:
porque no haces las validaciones con javascript antes de enviar el formulario y solo dejas que ingresen numero y letras, asi disminuyes las posibilidades de error
Por si las moscas el usuario es un listillo hay que hacer la validacion tambien en PHP. Y si supiese hacerlo en javascript sabria hacerlo en PHP XD.

str_split divide la cadena en un array de caracteres: entonces "hola" pasa a ser {'h', 'o', 'l', 'a'}.

Bien recorres todos los caracteres con la siguiente idea: si $arry es el array de caracteres de la cadena a comprobar:

Código PHP:
Ver original
  1. function es_valido($cadena){
  2. $arry = str_split($cadena);
  3. foreach($arry as $i)
  4.        if(!strstr('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',$i)
  5.          return false;
  6. return true;
  7. }

Y en esa cadena largisima que puse pones los caracteres permitidos.

Se que no pongo los { de foreach e if, pero no es necesario si solo añades una linea detras.
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #5 (permalink)  
Antiguo 15/03/2010, 13:32
(Desactivado)
 
Fecha de Ingreso: marzo-2010
Mensajes: 40
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: AYUDA como restringir caracteres en un registro

y como defino que acepto caracteres acentuados...?
  #6 (permalink)  
Antiguo 15/03/2010, 13:37
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: AYUDA como restringir caracteres en un registro

para los caracteres acentuados los agrega al listado de la función y hay le deberia funcionar. Porque hay en el if esta colocando todos los caracteres validos el resto los desecharia la función.


La otra forma seria más facil "sin usar javascript" aunque no se si le sirva y consiste en que usted al recibir lo que el usuario digita, quitara todos los caracteres que no quiere que entren con str_replace

ejemplo

// Provides: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
  #7 (permalink)  
Antiguo 15/03/2010, 13:39
(Desactivado)
 
Fecha de Ingreso: marzo-2010
Mensajes: 40
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: AYUDA como restringir caracteres en un registro

Por ejemplo en el email tengo definido este if, que francamente no entiendo muy bien que significa.

if(trim($email) == ""){
$error_mail = "E-mail no válido.";
$todo_ok = 1;
}
if ((isset($email)) and (ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'. '@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email))){
}else{
$error_email = "E-mail no válido.";
$todo_ok = 1;
}
  #8 (permalink)  
Antiguo 15/03/2010, 13:59
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: AYUDA como restringir caracteres en un registro

El primer if revisa que la variable mail no venga vacia. Eñ segundo lo que hace es validar la estructura de una dirección de coreo electronico [email protected]

revisa que tenga el nick de la persona luego un arroba luego el nombredel dominio luego un punto y luego el tipo de dominio.


Pero esto que tiene que ver con lo que nos pregunto anteriormente?
  #9 (permalink)  
Antiguo 15/03/2010, 14:15
(Desactivado)
 
Fecha de Ingreso: marzo-2010
Mensajes: 40
Antigüedad: 14 años, 1 mes
Puntos: 0
nda, simplemente lo tengo en la misma página, y tenia dudas de que eran todos los caracteres extraños que salen en el.

Con relación a lo anterior, comentar que lo que me gustaria es un formato para poder filtrar todos esos caracteres extraños, para evitar fallos en las cadenas que se almacenan en la db. el str_replace no termina de convencerme, parece mejor definirle que caracteres se aceptan y cuales no.

Si quiero entonces aceptar un caracter acentuado seria algo asi:

if(!strstr('áóúaou',$i)

Gracias,

El tema es como creo la cadena, actualmente la tengo asi...

}
if((strlen($nombre) <= 2) OR (trim($nombre) == "")){
$error_nombre = "Debe escribir un nombre válido.";
$todo_ok = 1;
}

if((strlen($apellido) <= 2) OR (trim($apellido) == "")){
$error_apellido = "Debe escribir un apellido válido.";
$todo_ok = 1;
}

if(strlen(trim($nifcif)) <> 9){
$error_nifcif = "Debe escribir un NIF/CIF válido.";
$todo_ok = 1;
}
if((strlen($calle) <= 2) OR (trim($calle) == "")){
$error_calle = "Debe escribir una calle válida.";
$todo_ok = 1;
}
if((strlen($ciudad) <= 2) OR (trim($ciudad) == "")){
$error_ciudad = "Debe escribir una ciudad válida.";
$todo_ok = 1;
}

etc...

El tema es como creo la cadena, actualmente la tengo asi...

}
if((strlen($nombre) <= 2) OR (trim($nombre) == "")){
$error_nombre = "Debe escribir un nombre válido.";
$todo_ok = 1;
}

if((strlen($apellido) <= 2) OR (trim($apellido) == "")){
$error_apellido = "Debe escribir un apellido válido.";
$todo_ok = 1;
}

if(strlen(trim($nifcif)) <> 9){
$error_nifcif = "Debe escribir un NIF/CIF válido.";
$todo_ok = 1;
}
if((strlen($calle) <= 2) OR (trim($calle) == "")){
$error_calle = "Debe escribir una calle válida.";
$todo_ok = 1;
}
if((strlen($ciudad) <= 2) OR (trim($ciudad) == "")){
$error_ciudad = "Debe escribir una ciudad válida.";
$todo_ok = 1;
}

etc...

Hola,

Querria saber si es valida esta secuencia.

}

if(empty($nombre)) OR (!preg_match("/^[a-zA-Z0-9áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÑñ]{2,30}+$/", $nombre)){

$error_nombre = "Debe escribir un apellido válido.";
}

if(empty($apellido)) OR (!preg_match("/^[a-zA-Z0-9áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÑñ]{2,30}+$/", $apellido)){

$error_apellido = "Debe escribir un apellido válido.";
}

y asi sucesivamente asta llegar al final...

Última edición por GatorV; 16/03/2010 a las 09:05
  #10 (permalink)  
Antiguo 16/03/2010, 07:29
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Es Valida esta Secuencia...?

He probado tu expresión regular pero no acepta nombres compuesto como por ejemplo "Juan Antonio".

Si quieres probar tus expresiones regulares para salir de dudas entra en

http://gskinner.com/RegExr/

Para poder probarla has de quitar las barras / del principio y final antes de pegar tu expresión regular.

Saludos!
  #11 (permalink)  
Antiguo 16/03/2010, 07:53
(Desactivado)
 
Fecha de Ingreso: marzo-2010
Mensajes: 40
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Es Valida esta Secuencia...?

que debo añadirle para que los acepte, creo que es /s pero no se donde..
  #12 (permalink)  
Antiguo 16/03/2010, 08:09
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Es Valida esta Secuencia...?

Cita:
Iniciado por xosgon Ver Mensaje
que debo añadirle para que los acepte, creo que es /s pero no se donde..
a que te refieres?
que tiene que ver s con que sean aceptados?
aceptados que cosas?
__________________
More about me...
~ @rhyudek1
~ Github
  #13 (permalink)  
Antiguo 16/03/2010, 08:15
(Desactivado)
 
Fecha de Ingreso: marzo-2010
Mensajes: 40
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Es Valida esta Secuencia...?

Me refiero a lo que comenta Syncronice, que dice que no acepta nombres compuestos con espaciom, para ello me faltaba la variable "/s", con eso ya deberia aceptar espacios, mi duda es ahora si esta nueva estructura es correcta:

if(empty($apellido)) {
$error_apellido = "VACIO";
$todo_ok = 1;
}
if(!preg_match("/^[a-zA-Z0-9áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÑñ\s]{2,30}+$/", $apellido)){

$error_apellido = "CON ELSE";
$todo_ok = 1;
}

Es decir, yo creo que con un solo IF es suficiente, no creo que deba filtrar primero si esta en blanco la celda y luego si contiene más de 2 caracteres, no puedo unificar las 2 consultas en una, es decir que solo acepte esos caracteres y que si esta en blanco dea error. OJO la linea del final que es $todo_ok = 1 es lo que dice que si todo es ok sigue adelante.

Gracias
  #14 (permalink)  
Antiguo 16/03/2010, 10:30
 
Fecha de Ingreso: marzo-2010
Ubicación: Lima, Perú
Mensajes: 136
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Es Valida esta Secuencia...?

Agregale un espacio en blanco al comienzo del gran array.

Código PHP:
Ver original
  1. function es_valido($cadena){
  2. $arry = str_split($cadena);
  3. foreach($arry as $i)
  4.        if(!strstr(' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',$i)
  5.          return false;
  6. return true;
  7. }
  #15 (permalink)  
Antiguo 16/03/2010, 11:25
(Desactivado)
 
Fecha de Ingreso: marzo-2010
Mensajes: 40
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Es Valida esta Secuencia...?

No comprendo lo que me respondes "dantrix"...
  #16 (permalink)  
Antiguo 16/03/2010, 16:02
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: AYUDA como restringir caracteres en un registro

Cita:
Me refiero a lo que comenta Syncronice, que dice que no acepta nombres compuestos con espaciom, para ello me faltaba la variable "/s", con eso ya deberia aceptar espacios, mi duda es ahora si esta nueva estructura es correcta:
"/s" no es una variable, es una constante y te refieres a \s que es el espacio escapado

Cita:
if(empty($apellido)) {
$error_apellido = "VACIO";
$todo_ok = 1;
}
if(!preg_match("/^[a-zA-Z0-9áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÑñ\s]{2,30}+$/", $apellido)){

$error_apellido = "CON ELSE";
$todo_ok = 1;
}
O no te estás explicando o te estás complicando la vida.

Cita:
No comprendo lo que me respondes "dantrix"...
Dices que necesitas el espacio, pues el código que te puso (y que a mi se me olvidó meterlo, aunque pensando un poco lo habrías logrado), es el código que te proporciona el espacio.

No sé si es que no sabes mucho de PHP y no entiendes los códigos que te mandamos, o si directamente no te lees las respuestas.
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #17 (permalink)  
Antiguo 16/03/2010, 16:41
(Desactivado)
 
Fecha de Ingreso: marzo-2010
Mensajes: 40
Antigüedad: 14 años, 1 mes
Puntos: 0
URGENTE Ayuda con Validaciones de Registro

Buenas Tardes,

Desde hace ya tres dias intento consulttar en este foro una simple cuestión, que posiblemente por no formular bien la pregunta nadie me sabe consetar.

Querria integrar en esta secuencia:

Código PHP:
Ver original
  1. }
  2.     if((strlen($calle) <= 2) OR (trim($calle) == "")){
  3.         $error_calle = "Debe escribir una calle válida.";
  4.         $todo_ok = 1;
  5.     }
  6.     if((strlen($ciudad) <= 2) OR (trim($ciudad) == "")){
  7.         $error_ciudad = "Debe escribir una ciudad válida.";
  8.         $todo_ok = 1;
  9.     }
  10.     if(!is_numeric($nro)){
  11.         $error_nro = "Debe escribir un número válido.";
  12.         $todo_ok = 1;
  13.     }

Una VALIDACIÓN de caracteres con preg_match o ereg, con este estilo:

Código PHP:
Ver original
  1. ("/^[a-zA-Z0-9áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÑñ\s]{2,30}+$/",$apellido)

Ruego si son tan amables que me respondan basandose en mi código, no me hagan ficciones de otras posibilidades pues luego me quedo a cuadros para adaptarlo a mi necesidad concreta.

Gracias.
  #18 (permalink)  
Antiguo 16/03/2010, 17:05
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: URGENTE Ayuda con Validaciones de Registro

Prueba esto :

Código PHP:
Ver original
  1. ("#^[\w\d\W]{2,30}$#is",$apellido)

Me avisas. Nos vemos.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #19 (permalink)  
Antiguo 16/03/2010, 17:12
(Desactivado)
 
Fecha de Ingreso: marzo-2010
Mensajes: 40
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: URGENTE Ayuda con Validaciones de Registro

No me comprendiste, lo que quiero es integrar esa linea dentro de las lineas que especifico al principio. Es decir quiero fusionar:

- Comprobar si la celda esta vacia
- Definir caracteres permitidos
- Definir caracteres minimos y maximos

y asi sucesivamente con todas las celdas.
  #20 (permalink)  
Antiguo 16/03/2010, 17:19
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: URGENTE Ayuda con Validaciones de Registro

Pues entonces simplemente mete el preg_match en el if...

Código PHP:
Ver original
  1. if((strlen($calle) <= 2) OR empty($calle) OR !preg_match("/^[a-zA-Z0-9áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÑñ\s]{2,30}+$/",$calle)){
  2.         $error_calle = "Debe escribir una calle válida.";
  3.         $todo_ok = 1;
  4.     }

Y así sería con todas a las que les quieras pasar por esa expresión. Pero dependiendo de cuantos campos tengas, podría ser engorroso...
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #21 (permalink)  
Antiguo 16/03/2010, 17:41
(Desactivado)
 
Fecha de Ingreso: marzo-2010
Mensajes: 40
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: URGENTE Ayuda con Validaciones de Registro

Primero decirte que en 3 dias eres el único que me respondio lo que necesitaba y francamente te lo agradezco muchisimo. Solo hacerte dos consultas si no es molestia:

1º. Si ya en la linea del preg_match definimos {2,30}, para que metemos el strlen que a priori parece hacer la misma función que es obligar a que como minimo tengamos 2 caracteres.

2º. El empty entiendo que es para que no quede la celda vacia, no obstante si ya obligamos a que tenga minimo 2 caracteres es igualmente innecesaria.

Mis preguntas son si es relamente necesaria toda la linea de código o si se puede optimizar. Te agradeceria si puedes dedicarle unos minutos a evaluarla pues luego la pondre de serie en varias celdas y si me falla me fastidiaria un poco el trabajo.

Muchisimas gracias amigo.
  #22 (permalink)  
Antiguo 16/03/2010, 17:47
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: URGENTE Ayuda con Validaciones de Registro

Jjajajaj xD... eres muy observador, no me había fijado en esos detalles.

Solo puedo decirte que en ambas consultas, tienes la razón.

Código PHP:
Ver original
  1. if(!preg_match("/^[a-zA-Z0-9áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÑñ\s]{2,30}+$/",$calle))

Ya que el mínimo son 2, no necesitaríamos el strlen(), y ya que esta misma condición nos exige un mínimo y un máximo de caracteres, pues el empty está sobrando también.

Creo que sería así. Nos vemos.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #23 (permalink)  
Antiguo 16/03/2010, 17:53
(Desactivado)
 
Fecha de Ingreso: marzo-2010
Mensajes: 40
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: URGENTE Ayuda con Validaciones de Registro

jajaja, y solo por curiosidad si se quedara como lo pusiste antes que sucederia, afectaria en algo al funcionamiento o solamente haria las comprobaciones 3 veces.

Un fuerte abrazo desde España.
  #24 (permalink)  
Antiguo 16/03/2010, 17:59
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: URGENTE Ayuda con Validaciones de Registro

Claro... sería redundante, y sería una "sobrecarga" ( la pongo entre comillas, porque podría ser una sobrecarga ínfima, y en proyectos pequeños la diferencia no se nota ) a la hora de ejecutarlo.

Lo otro, de lo cual no estoy seguro, es que si dejamos las 3 funciones ( strlen, empty y preg_match ), el error lo lanzaría al devolver false alguna de las 3, inutilizando a las otras, en otras palabras, si stlren es menor o igual a 2, empty y preg_match no se ejecutarían. Así también, si pasa strlen sin problemas, pero empty devuelve false, no ejecutaría el preg_match, pudiendo ingresar caracteres que no permitas, o cosas así... la verdad ya me confundí... no des por definitivo lo que te dije, que no estoy seguro :

:
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #25 (permalink)  
Antiguo 16/03/2010, 18:13
(Desactivado)
 
Fecha de Ingreso: marzo-2010
Mensajes: 40
Antigüedad: 14 años, 1 mes
Puntos: 0
Hola nuevamente, ya lo probe y funciona perfectamente, solo tengo un problema en el campo del nombre de usuario, que por lo que parece valida si el nombre esta en uso o no, por lo cual querria tambien en el definir los caracteres permitidos, dime donde puedo meter la validación de caracteres, la estructura es esta:

Código PHP:
Ver original
  1. }
  2.            
  3.  
  4.     $sql="SELECT id FROM usuarios_datos WHERE login = '$login_usuario'";
  5.     $result = mysql_query($sql);
  6.     if($row_usuario = mysql_fetch_array($result)){
  7.         $error_login = "Ya se encuentra un usuario registrado con ese login.<br>Intenta otra vez!<br>";
  8.         print_r($row_usuario);
  9.         $todo_ok = 1;
  10.     }

AnesGy,

Entiendo poco de PHP y si me leo las respuestas, pero parece que vosotros no tomais tiempo en leer mis preguntas, el código ya me lo crearon hace unos minutos y a la primera.

Código PHP:
Ver original
  1. if(!preg_match("/^[a-zA-Z0-9áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÑñ\s]{2,30}+$/",$calle))

Como podeis ver en este POST que tengo aquí y que amablemente un usuario de este foro me soluciono en minutos.

http://www.forosdelweb.com/f18/urgen...gistro-788580/

Buenos Dias,

Tengo un campo de formulario donde se especifica el NOMBRE DE USUARIO, este chequea la SQL y si hay un nombre de usuario registrado igual, da un error indicando que esta en uso y que se ponga otro. Bien lo que yo quiero es muy sencillo, quiero que en este código que es el del NOMBRE DE USUARIO:

Código PHP:
Ver original
  1. }
  2.            
  3.     $sql="SELECT id FROM usuarios_datos WHERE login = '$login_usuario'";
  4.     $result = mysql_query($sql);
  5.     if($row_usuario = mysql_fetch_array($result)){
  6.         $error_login = "Ya se encuentra un usuario registrado con ese login.<br>Intenta otra vez!<br>";
  7.         print_r($row_usuario);
  8.         $todo_ok = 1;
  9.     }

Añadirle esta limitación de caracteres:

Código PHP:
Ver original
  1. }
  2.  
  3.     if(!preg_match("/^[a-zA-Z0-9áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÑñ\s]{2,30}+$/",$nombre)){
  4.         $error_nombre = "Debe escribir un nombre válido.";
  5.         $todo_ok = 1;
  6.     }

De tal forma que haga lo que ya hace ese campo de formulario pero que a mayores limite el tipo de caracteres que el usuario puede introducir.

Gracias,

Última edición por GatorV; 17/03/2010 a las 08:14
  #26 (permalink)  
Antiguo 17/03/2010, 06:07
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: AYUDA sobre campo de Usuario con comprobación

ya ..? y si tienes ahi los codigos cual seria tu problema :S?!!!!
__________________
More about me...
~ @rhyudek1
~ Github
  #27 (permalink)  
Antiguo 17/03/2010, 06:11
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: AYUDA sobre campo de Usuario con comprobación

Esto sería antes de la sentencia sql, exactamente cuando recibas el parámetro. A ver
Código PHP:
Ver original
  1. <?php
  2. $nombre_usuario = $_POST['nombre'];
  3. if(!preg_match("/^[a-zA-Z0-9áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÑñ\s]{2,30}+$/",$nombre)){
  4.         $error_nombre = "Debe escribir un nombre válido.";
  5.         $todo_ok = 1;
  6.     } else {
  7. //TU CONSULTA
  8. }
  #28 (permalink)  
Antiguo 17/03/2010, 06:12
(Desactivado)
 
Fecha de Ingreso: marzo-2010
Mensajes: 40
Antigüedad: 14 años, 1 mes
Puntos: 0
pues que me esta dando dolores de cabeza la linea print_r($row_usuario);, por algun motivo al ejecutarse me muestra en la web este código Array ( [0] => 4 [id] => 4 ), solo sucede si pongo un usuario que ya existe en la SQL, y querria solucionar ese problema añadiendo la función de los caracteres.

es decir donde va lo de //TU CONSULTA pondriamos:

Código PHP:
Ver original
  1. }
  2.            
  3.     $sql="SELECT id FROM usuarios_datos WHERE login = '$login_usuario'";
  4.     $result = mysql_query($sql);
  5.     if($row_usuario = mysql_fetch_array($result)){
  6.         $error_login = "Ya se encuentra un usuario registrado con ese login.<br>Intenta otra vez!<br>";
  7.         print_r($row_usuario);
  8.         $todo_ok = 1;
  9.     }

Última edición por GatorV; 17/03/2010 a las 08:12
  #29 (permalink)  
Antiguo 17/03/2010, 06:17
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: AYUDA sobre campo de Usuario con comprobación

Sip, eso mismo
  #30 (permalink)  
Antiguo 17/03/2010, 06:19
(Desactivado)
 
Fecha de Ingreso: marzo-2010
Mensajes: 40
Antigüedad: 14 años, 1 mes
Puntos: 0
no me funciona, me da este error,

Parse error: syntax error, unexpected $end

tengo un problema que me temo ya estaba ai, cuando el usuario ya existe salta un mensaje distinto al de los caracteres, pero este ser cuela entre las partes visibles de la web "Array ([0]=>4 [id]=.....", si borro la linea "print_r($row_usuario);", desaparece ese error pero me muestra el mensaje generico y no el mensaje concreto de que el nombre de usuario ya existe.

Os escribo el código,

Código PHP:
Ver original
  1. <?
  2. include("...");
  3. mbanner($titulo_sitio,$nombre_usuario_session,$apellido_usuario_session,$usuario_usuario_session);
  4. $incluir = "";
  5. if($procesa == "si"){
  6.     $todo_ok = 0;
  7.     $sql="SELECT id FROM usuarios_datos WHERE email = '$email'";
  8.     $result = mysql_query($sql);
  9.     if($row_usuario = mysql_fetch_array($result)){
  10.         $error_email = "Ya se encuentra un usuario registrado con ese email.<br>Intenta otra vez!<br>";
  11.         $todo_ok = 1;
  12.     }
  13.            
  14.     $sql="SELECT id FROM usuarios_datos WHERE login = '$login_usuario'";
  15.     $result = mysql_query($sql);
  16.     if($row_usuario = mysql_fetch_array($result)){
  17.         $error_login = "Ya se encuentra un usuario registrado con ese login.<br>Intenta otra vez!<br>";
  18.         print_r($row_usuario);
  19.         $todo_ok = 1;
  20.    
  21.     }
  22.  
  23.     if(!preg_match("/^[a-zA-Z0-9áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÑñ\s]{2,30}+$/",$nombre)){
  24.         $error_nombre = "Debe escribir un nombre válido.";
  25.         $todo_ok = 1;
  26.     }
  27.  
  28.     if(!preg_match("/^[a-zA-Z0-9áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÑñ\s]{2,30}+$/",$apellido)){
  29.         $error_apellido = "HOLAAA.";
  30.         $todo_ok = 1;
  31.     }

Última edición por GatorV; 17/03/2010 a las 08:13

Etiquetas: caracteres, registro, restringir
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 10:13.