Foros del Web » Programando para Internet » PHP »

Quitar comillas simples

Estas en el tema de Quitar comillas simples en el foro de PHP en Foros del Web. Bueno lo que me pasa es lo siguiente, tengo el tipico formulario donde el usuario introduce datos, y como es logico quiero evitar que introduzca ...
  #1 (permalink)  
Antiguo 13/05/2010, 14:22
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 10 años, 7 meses
Puntos: 17
Quitar comillas simples

Bueno lo que me pasa es lo siguiente, tengo el tipico formulario donde el usuario introduce datos, y como es logico quiero evitar que introduzca cosa que me fastidie la web, o de fallos al rellenar

cosas como las etiquetas y tal, las tengo solucionadas con htmlentities() y para los caracteres raros htmlspecialchars(). Este ultimo me salva los problemas con las comillas dobles, ahora, me sigue quedando la odisea de las simples.

Intento reemplazarla con ereg_replace("'",""",$variable); (y otras muchas variante como meteler \ para escapar y tal) Remplace, str_replace y todas las formas que se me ocurrieron, para intentar reemplazar estas comillas, pero aun asi me siguen saliendo. vi una opcion que supone tocar php magic_quotes_gpc y es algo que no me interesa modifica.

Si alguien puede hecharme un cable para poder sustitur estas malditas comillas simples (con los utiles que son y la tirria que el estoy cogiendo xD) le estare eternamente agradecido.

Un saludo comunidad

P.D: barajo la posibilidad de javascript para llevar acabo este remplazo, pero preferiria no hacerlo, y trabajarlo desde servidor, si estoy llendo contra corriente decirmelo :)
  #2 (permalink)  
Antiguo 13/05/2010, 14:27
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 12 años, 3 meses
Puntos: 48
Respuesta: Quitar comillas simples

No entiendo que tienes en contra de las pobres comillas simples, que te han hecho????

Saludos!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #3 (permalink)  
Antiguo 13/05/2010, 14:29
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 10 años, 3 meses
Puntos: 334
Respuesta: Quitar comillas simples

probaste con addslashes() ?
__________________
More about me...
~ @rhyudek1
~ Github
  #4 (permalink)  
Antiguo 13/05/2010, 14:45
 
Fecha de Ingreso: mayo-2010
Mensajes: 39
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Quitar comillas simples

cual es el problema... con las comillas simples... (apostrofes ' ')

no creo que te puedan hacer daño con esos simples caracteres...
  #5 (permalink)  
Antiguo 13/05/2010, 14:51
Avatar de BloodShadow  
Fecha de Ingreso: marzo-2010
Ubicación: El Salvador
Mensajes: 393
Antigüedad: 9 años, 9 meses
Puntos: 52
Respuesta: Quitar comillas simples

Cita:
Iniciado por F_100_Joe2 Ver Mensaje
cual es el problema... con las comillas simples... (apostrofes ' ')

no creo que te puedan hacer daño con esos simples caracteres...
Claro q le pueden hacer daño... podrian meterle SQL Injection.

La mejor solucion q te podria dar es q busques en google como evitar SQL Injection, abarca todo eso de caracteres especiales, espero te sirva de ayuda, suerte.
  #6 (permalink)  
Antiguo 13/05/2010, 14:56
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 12 años, 3 meses
Puntos: 48
Respuesta: Quitar comillas simples

Cita:
Iniciado por BloodShadow Ver Mensaje
Claro q le pueden hacer daño... podrian meterle SQL Injection.

La mejor solucion q te podria dar es q busques en google como evitar SQL Injection, abarca todo eso de caracteres especiales, espero te sirva de ayuda, suerte.
O sea que en los paises anglosajones no se puede insertar en la base de datos la palabra O'Neill ????

Saludos!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #7 (permalink)  
Antiguo 13/05/2010, 15:04
 
Fecha de Ingreso: mayo-2010
Mensajes: 39
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Quitar comillas simples

Cita:
Iniciado por BloodShadow Ver Mensaje
Claro q le pueden hacer daño... podrian meterle SQL Injection.

La mejor solucion q te podria dar es q busques en google como evitar SQL Injection, abarca todo eso de caracteres especiales, espero te sirva de ayuda, suerte.
pero tu formulario es de registro??

o de que es??
viendo tus preocupaciones sospecho que es de registro o login no??
  #8 (permalink)  
Antiguo 13/05/2010, 15:15
Avatar de BloodShadow  
Fecha de Ingreso: marzo-2010
Ubicación: El Salvador
Mensajes: 393
Antigüedad: 9 años, 9 meses
Puntos: 52
Respuesta: Quitar comillas simples

@Synkronice: claro que puedes si lo haces con addslashes. Pero no es correcto un nombre con caracteres especiales.

@F_100_Joe2: la verdad no se, no es mio el post xD

@ambos: estamos discutiendo algo que ni siquiera el que ha creado el post a contestado, creo q yo me equivoque al desviarme del tipo de campo al que quiere evitar los caracteres especiales, pero ademas cada quien tiene su forma de programar, estoy viendo que el quiere quitar caracteres especiales a un simple formulario, entonces cual es el problema de llevar caracteres especiales?? xDDD
  #9 (permalink)  
Antiguo 13/05/2010, 15:23
 
Fecha de Ingreso: mayo-2010
Mensajes: 39
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Quitar comillas simples

Cita:
Iniciado por BloodShadow Ver Mensaje
@Synkronice: claro que puedes si lo haces con addslashes. Pero no es correcto un nombre con caracteres especiales.

@F_100_Joe2: la verdad no se, no es mio el post xD

@ambos: estamos discutiendo algo que ni siquiera el que ha creado el post a contestado, creo q yo me equivoque al desviarme del tipo de campo al que quiere evitar los caracteres especiales, pero ademas cada quien tiene su forma de programar, estoy viendo que el quiere quitar caracteres especiales a un simple formulario, entonces cual es el problema de llevar caracteres especiales?? xDDD
estoy de acuerdo

PD: pense que era tuyo el post XD
  #10 (permalink)  
Antiguo 14/05/2010, 10:48
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 10 años, 7 meses
Puntos: 17
Respuesta: Quitar comillas simples

Bueno siento la tardanza a ver vamos por partes.

Lo que busco concretamente es crear una funcion para validar los formularios por php, y entre las validaciones que hace (tipico verificar los mail, que los campos no esten vacios, que ponga cosas con sentido, numero donde numeros, etc etc...) una de ellas, es evitar que me introduzca comillas simples. Tanto para ingresar en la base de datos como para devolver los datos en caso de fallo (es decir que vuelva a mostrarse en el formulario que escribio el usuario).

Entonces el problema estaba, en que con htmlentities() y htmlspecialchars(). evitaba problemas de introducion de html (ya que convierte las etiquetas en literales) pero me siguen dejando el problemas de las comillas simples (etiquetas abierta, al mostrar con php, problemas para ingresar en mysql, boquete de seguridad chungo, etc...).

y simplemente quiero sustituir las comillas simples del texto ingresado por el usuario, por otra cosa. hideck1 comentaba lo del metodo addslashes(), de este metodo he estado leyendo informacion, y por ahora me gustaria que fuera la ultima opcion, ya que me supone tocar demasiadas cosas para evitar unas simples comillas.

No me importa remplazar las comillas simples por dobles ,que no me dan problemas, en el texto escriba el usuario, por eso comentaba los de los str_remplace() y cía. Pero ninguno de estos metodos me dio resultados

Pongo la ultima forma de reemplazar que mas me convencio, que yo pensaba era la mejor y por lo que pude leer era la propia:

Código:
	$obj = str_replace("'",""",$obj);
	$obj = str_replace("\"",""",$obj);
$obj tiene la cadena que el usuario envio por el formulario (un bucle va obteniendo los campos del array $_POST y lo mete en el)

Gracias, por vuestro vuelco en ayudarme, y siento haber tardado tanto en responder

P.D: Que a mi tambien me gustan las comillas simples, pero es como una relacion de pareja. para unas cosas si, para otras no ... xD)
  #11 (permalink)  
Antiguo 28/05/2010, 04:10
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 10 años, 7 meses
Puntos: 17
Respuesta: Quitar comillas simples

Código PHP:
$obj str_replace("'",""",$obj); 
Era lo que hacia, y la solucion que necesitaba era

Código PHP:
$obj str_replace("'","\\\'",$obj); 
asi puedo tener las comillas simples sin tener que sustituirlas por otra cosa.

La cosa estaba en que en las primeras pruebas que hice hacia esto

Código PHP:
$obj str_replace("'","\'",$obj); 
cosa que me valia, para la pagina de comprobación, pero si retornaba los datos al formulario o los introducia en otro sitio, ya tenia el problema. y era por que con la barra de inclinada, solo escapaba la primera vez que recogia el valor, pero al devolverlo, me daba el fallo.

Al añadir 3 barras inclinadas, consigo que la primera, permita escapar a la segunda, y la tercera escape la comilla.

Por lo que en primero momento, al pasarlo por las tres barras me devuelve \'
y al rescartarlo y volver a mandarlo, me devuelve ' sin problemas.

Espero que le sirva de ayuda a alguien.

Etiquetas: comillas, reemplazar, simples, formulario
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 21:28.