Foros del Web » Programando para Internet » PHP »

¿ recoger valores de un formulario con htmlentities ?

Estas en el tema de ¿ recoger valores de un formulario con htmlentities ? en el foro de PHP en Foros del Web. Hola!!! Tengo una duda sobre htmlentities y formularios. Si realizo lo siguiente: <form name="form1" method="post" action="pag.php"> <input name="nombre" type="text" value="<?php echo htmlentities($campo, ENT_QUOTES, "utf-8"); ?>" ...
  #1 (permalink)  
Antiguo 05/01/2012, 17:46
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 20 años, 6 meses
Puntos: 18
¿ recoger valores de un formulario con htmlentities ?

Hola!!!

Tengo una duda sobre htmlentities y formularios. Si realizo lo siguiente:

<form name="form1" method="post" action="pag.php">

<input name="nombre" type="text" value="<?php echo htmlentities($campo, ENT_QUOTES, "utf-8"); ?>" />

<input type="submit" name="button" id="button" value="Enviar" />

</form>


El campo del formulario "nombre" tiene un valor convertido a entidades mediante htmlentities. Sin embargo, cuando lo recojo mediante S_POST me llega sin htmlentities, es decir, sin entidades, con texto plano...

¿ Por que sucede esto?

Un saludo!!!
  #2 (permalink)  
Antiguo 05/01/2012, 17:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ¿ recoger valores de un formulario con htmlentities ?

El objetivo de las entidades es que se codifiquen para no romper el HTML, si ves el texto tal cual quiere decir que está funcionando correctamente.

Si necesitas mostrar las entidades entonces debes codificar dos veces el texto, revisa el código fuente y verás.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/01/2012, 04:46
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 20 años, 6 meses
Puntos: 18
Respuesta: ¿ recoger valores de un formulario con htmlentities ?

Cita:
Iniciado por pateketrueke Ver Mensaje
El objetivo de las entidades es que se codifiquen para no romper el HTML, si ves el texto tal cual quiere decir que está funcionando correctamente.

Si necesitas mostrar las entidades entonces debes codificar dos veces el texto, revisa el código fuente y verás.
Si, te entiendo pero te explico con dos ejemplos lo que pretendo saber:

Ejemplo 1:

$campo = htmlentities("eñe olé");
echo $campo


Ejemplo 2

<form name="form1" method="post" action="pag.php">
<input name="campo" type="text" value="<?php echo htmlentities("eñe olé")?>" />
<input type="submit" name="button" id="button" value="Enviar" />
</form>

En pag.php recogemos el campo nombre:

$campo = $_POST["campo"];
echo $campo


En el ejemplo 1 al realizar un echo $campo en la vista código del navegador sale e&ntilde;e ol&eacute;

En el ejemplo 2 al realizar un echo $campo en la vista código del navegador sale eñe olé

¿ Por qué sucede esto ??

Saludos!!!
  #4 (permalink)  
Antiguo 06/01/2012, 10:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ¿ recoger valores de un formulario con htmlentities ?

Creo que sigues sin entender el concepto, la idea de las entidades es mostrar caracteres no ASCII sin importar la codificación.

Es decir, si siempre colocamos &ntilde; mostrará siempre la ñ sin importar si la codificación del documento es ISO o UTF-8.

Ahora, como dicho texto es correcto para el navegador al ser procesado con un formulario no conserva la transformación sino que traduce directamente las entidades a sus caracteres correspondientes.

Edito: el programador debería esperar lo que ven sus ojos en el navegador, el navegador intentará siempre mostrar lo que el usuario espera ver si requieres recibir la entidad tal cual simplemente codificala dos veces.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 06/01/2012 a las 10:48
  #5 (permalink)  
Antiguo 06/01/2012, 12:57
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 20 años, 6 meses
Puntos: 18
Respuesta: ¿ recoger valores de un formulario con htmlentities ?

Comprendo y gracias por tu respuesta.. ;)

Hablando de formularios, tengo una duda, no se si sabrías cual es la respuesta...

El siguiente código me funciona bien pero me gustaría saber por qué:

<form name="form1" method="post" action="pag.php">
<input name="algo" type="text" />
<input type="submit" name="button" id="button" value="Enviar" />
</form>

En pag.php recogemos el campo algo:

$var = $_POST["algo"];
echo $var


Si el usuario ha introducido, por ejemplo 3 comillas """ en el campo algo del formulario, al asignar posteriormente $_POST["algo"] a $var ¿no tendría que dar error?, es decir, ¿no sería el equilavante a $var = """ y por tanto, al haber 3 comillas seguidas mostrar error?

Un saludo y gracias !!!!!
  #6 (permalink)  
Antiguo 06/01/2012, 16:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ¿ recoger valores de un formulario con htmlentities ?

Para nada que es equivalente.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: formulario, html, htmlentities, recoger
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 15:46.