Foros del Web » Programando para Internet » PHP »

problema con la codificacion

Estas en el tema de problema con la codificacion en el foro de PHP en Foros del Web. Hola a todos, mi problema es que yo tengo un formulari con un input en el que puedo meter un texto cualquiera pero si introduzco ...
  #1 (permalink)  
Antiguo 15/08/2011, 07:05
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años, 9 meses
Puntos: 13
problema con la codificacion

Hola a todos,

mi problema es que yo tengo un formulari con un input en el que puedo meter un texto cualquiera pero si introduzco un caracter como "á" no me aparece ni "á", me aparece "á". En cambio, si quito htmlentities() me aparece directamente "á"

Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4.     <title>Pruebas</title>
  5.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. </head>
  7. <body>
  8.  
  9. <form action="?env=s" method="post">
  10.     <input type="text" name="texto" />
  11.     <input type="submit" value="Enviar" />
  12. </form>
  13. <?php
  14. if($_GET['env'] == "s") {
  15.     print '<br><br>- '. htmlentities($_POST['texto']);
  16. }
  17. ?>
  18.  
  19. </body>
  20. </html>
__________________
Mas vale un codigo que mil palabras
  #2 (permalink)  
Antiguo 15/08/2011, 07:35
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 14 años, 4 meses
Puntos: 202
Respuesta: problema con la codificacion

htmlentities(); puede contener hasta 3 parámetros.
En el manual vienen bien explicados los flags y los charset.
htmlentities

Modifiqué algunas cosas como el action y la comprobación del POST ya que de entrada no necesitas pasar un parámetro por URL para que se ejecute. Además no la habías comprobado con isset() y daba error si no existía.

Saludos.

Código PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Pruebas</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
     
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
        <input type="text" name="texto" />
        <input type="submit" name="enviar" value="Enviar" />
    </form>
    <?php
    
if( isset($_POST['enviar']) ) {
        echo 
'resultado: '.htmlentities($_POST['texto'], ENT_NOQUOTES'UTF-8');
    }
    
?>
     
    </body>
    </html>
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #3 (permalink)  
Antiguo 15/08/2011, 07:39
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años, 9 meses
Puntos: 13
Respuesta: problema con la codificacion

gracias, me ha funcionado a la perfección
__________________
Mas vale un codigo que mil palabras

Etiquetas: codificacion
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 02:57.