Foros del Web » Programando para Internet » PHP »

Problemas comillas simples

Estas en el tema de Problemas comillas simples en el foro de PHP en Foros del Web. Hola , A la hora de grabar datos desde un formulario a una base de datos MYSQL no me admite comillas simples (ni dobles). La ...
  #1 (permalink)  
Antiguo 08/11/2010, 12:46
 
Fecha de Ingreso: julio-2002
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 0
Problemas comillas simples

Hola ,

A la hora de grabar datos desde un formulario a una base de datos MYSQL no me admite comillas simples (ni dobles).

La base de datos es MYSQL con codificación utf-8

El código php que envia los datos es el siguiente:

<form action="grabar.php" method="post" enctype="multipart/form-data">
<label>Gènere: </label><br />
<input name="genero" type="text" size="60" id="genero"/>
<br /><br />
<input type="submit" value="Grabar" class="boton">
</form>

El código que graba es el siguiente:

$genero = $_POST['genero'];
$sql = "INSERT INTO generos (genero) VALUES ('$genero')";
$result = mysql_query($sql);


Y si tengo alguna comilla simple o normal no lo graba.

Alguien sabe que debo hacer??

Si consigo grabarlo bien, podré al modificar el campo, hacer lo siguiente?:
<input name="genero" type="text" size="60" id="genero" value="<? echo $genero; ?>"/>
  #2 (permalink)  
Antiguo 08/11/2010, 12:48
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 5 meses
Puntos: 1517
Respuesta: Problemas comillas simples

Usa mysql_real_escape_string para que te permita almacenar los comillas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 08/11/2010, 12:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 5 meses
Puntos: 2135
Respuesta: Problemas comillas simples

Usa addslashes para filtrar las comillas simples.

Saludos.
  #4 (permalink)  
Antiguo 08/11/2010, 12:53
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 11 años, 3 meses
Puntos: 105
Respuesta: Problemas comillas simples

activa el magic_quotes ^^

en tu php agrega esta linea de codigo:
Código PHP:
Ver original
  1. ini_set('magic_quotes_gpc', 1);

Nota. Tambien sirve el addslashes(), pero tendrias que hacerlo en cada consulta, sin embargo, activando el magic_quotes es mas general ^^

Suerte
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #5 (permalink)  
Antiguo 08/11/2010, 12:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 7 meses
Puntos: 2534
Respuesta: Problemas comillas simples

Cita:
Iniciado por masterojitos Ver Mensaje
activa el magic_quotes ^^
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 08/11/2010, 12:55
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 5 meses
Puntos: 1517
Respuesta: Problemas comillas simples

@masterojitos, no es recomendable usar magic_quotes, la razón, te recomiendo que leas este material http://php.net/manual/en/security.magicquotes.php
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 08/11/2010, 12:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 5 meses
Puntos: 2135
Respuesta: Problemas comillas simples

magic_quotes esta muy desrecomendado y aparte ya no va a servir a partir de PHP6, no se recomienda su uso y se recomienda que cada desarrollador haga su propio filtro en lugar de depender de la directiva.
  #8 (permalink)  
Antiguo 08/11/2010, 13:05
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 11 años, 3 meses
Puntos: 105
Respuesta: Problemas comillas simples

OMG !!

Disculpas y mil disculpas .... Cada dia se aprende y mejora ^^
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #9 (permalink)  
Antiguo 08/11/2010, 13:45
 
Fecha de Ingreso: julio-2002
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Problemas comillas simples

Perfecto Gatorv,

Pero si recupero la variable de la base de datos y hago un echo funciona, pero en cambio si lo pongo dentro del formulario las comillas simples funcionan pero las dobles no, las corta:

El código es:
<input name="genero" type="text" size="60" id="genero" value="<? echo $genero; ?>"/>

Si grabo: ramon'aa"ss

si hago el echo a saco lo pone correcto, pero dentro del input solo muestra ramon'aa

Sabeis porqué?

Gracias ante todo.




Cita:
Iniciado por abimaelrc Ver Mensaje
Usa mysql_real_escape_string para que te permita almacenar los comillas.
  #10 (permalink)  
Antiguo 08/11/2010, 14:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 5 meses
Puntos: 2135
Respuesta: Problemas comillas simples

Es por lo mismo, si ves el HTML resultante vas a ver que te poner value="ramon'aa"ss" y si ves las comillas dobles se cortan después del aa necesitas usar addslashes para ver el valor ahí.

Saludos.
  #11 (permalink)  
Antiguo 08/11/2010, 14:56
 
Fecha de Ingreso: julio-2002
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Problemas comillas simples

No me funciona, no lo entiendo yo hago:

$genero = addslashes($genero);
echo $genero (funciona)
value = "$genero" dentro del form (no me funciona)

y desde el form no me imprime a partir de las comillas, si lo hago desde fuera del form si me funciona.


Cita:
Iniciado por GatorV Ver Mensaje
Es por lo mismo, si ves el HTML resultante vas a ver que te poner value="ramon'aa"ss" y si ves las comillas dobles se cortan después del aa necesitas usar addslashes para ver el valor ahí.

Saludos.
  #12 (permalink)  
Antiguo 08/11/2010, 15:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 5 meses
Puntos: 2135
Respuesta: Problemas comillas simples

Perdon, en lugar de escapar tienes que usar htmlspecialchars para codificar el valor en un input.

Como guia te dejo esto:
htmlspecialchars => para mostrar texto en inputs, selects, textarea, por ejemplo:
Código PHP:
Ver original
  1. <input type="text" name="foo" value="<?php echo htmlspecialchars($texto); ?>" />

htmlentities => para mostrar texto en html general:
Código PHP:
Ver original
  1. <p><?php echo htmlentities($texto); ?></p>

Para guardar en la base de datos addslashes/mysql_real_escape_string sirven.

Saludos.

Etiquetas: comillas, simples
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 16:43.