Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Argentino Canejo en 7 Octubre 2012, 06:36 am



Título: Ayuda: ¿Caracteres especiales con PHP?
Publicado por: Argentino Canejo en 7 Octubre 2012, 06:36 am
Bueno, en realidad estoy haciendo un programa con VB.NET que guarde datos en un servidor web. Ya conseguí hacer que se publiquen los datos en el servidor y que se guarden en un archivo de texto, pero cuando envío algún dato que contenga alguno de los siguientes caracteres, como por ejemplo:

Código:
ç º ª ñ

me sale el signo de interrogación: ?

o en los casos siguientes me sale una barra que le antecede, por ejemplo:

Código:
\ " 
me salen: \\ o \" , respectivamente.

Y si le envío un ampersand (&), se anula todo lo que está después, por ejemplo si tengo:

Código:
Hoy es sábado & mañana es domingo

El resultado será:

Código:
Hoy es sábado

Sé que no es problema de mi aplicación en VB.NET, mas bien creo que el problema es en el script php que estoy usando.

Código
  1. <?php
  2. $headers = "Content-type: text/html; charset=iso-8859-1\r\n";
  3. $var1=$_POST['variable1'];
  4. $var2=$_POST['variable2'];
  5. $var3=$_POST['variable3'];
  6. $master=fopen('salvar_consulta.txt',a);
  7. fwrite($master,"
  8. resultado1: ".$var1." && resultado2: " .$var2." && resultado3: " .$var3." ");
  9. fclose($master);
  10.  
  11. ?>

Ví en internet que si incluía ese $headers en el script lo podría solucionar, pero no pasa nada, tampoco con $headers = "Content-type: text/html; charset=charset=utf-8

¿Alguien me podría ayudar o explicar por qué ocurre esto?

Gracias. ;)


Título: Re: Ayuda: ¿Caracteres especiales con PHP?
Publicado por: ~ Yoya ~ en 7 Octubre 2012, 06:54 am
Código
  1. <?php
  2. $headers = "Content-type: text/html; charset=iso-8859-1\r\n";
  3. $var1=$_POST['variable1'];
  4. $var2=$_POST['variable2'];
  5. $var3=$_POST['variable3'];
  6. $master=fopen('salvar_consulta.txt',a);
  7. fwrite($master,htmlentities("resultado1: ".$var1." && resultado2: " .$var2." && resultado3: " .$var3." "), ENT_NOQUOTES, "ISO-8859-1");
  8. fclose($master);
  9.  
  10. ?>

htmlentities (http://www.w3schools.com/php/func_string_htmlentities.asp)


Título: Re: Ayuda: ¿Caracteres especiales con PHP?
Publicado por: Argentino Canejo en 7 Octubre 2012, 08:07 am
Código
  1. <?php
  2. $headers = "Content-type: text/html; charset=iso-8859-1\r\n";
  3. $var1=$_POST['variable1'];
  4. $var2=$_POST['variable2'];
  5. $var3=$_POST['variable3'];
  6. $master=fopen('salvar_consulta.txt',a);
  7. fwrite($master,htmlentities("resultado1: ".$var1." && resultado2: " .$var2." && resultado3: " .$var3." "), ENT_NOQUOTES, "ISO-8859-1");
  8. fclose($master);
  9.  
  10. ?>

htmlentities (http://www.w3schools.com/php/func_string_htmlentities.asp)

Gracias, pero con el código de ejemplo que me pusiste directamente no guarda ningún dato en el archivo txt en el servidor.
He intentado con los otros pero tampoco....

Intenté lo siguiente y tampoco:

Código
  1. <?php
  2. $headers = "Content-type: text/html; charset=iso-8859-1\r\n";
  3. $var1=$_POST['variable1'];
  4. $var2=$_POST['variable2'];
  5. $var3=$_POST['variable3'];
  6. $master=fopen('salvar_consulta.txt',a);
  7. fwrite($master,htmlentities(("resultado1: ".$var1." && resultado2: " .$var2." && resultado3: " .$var3." "), ENT_NOQUOTES, "ISO-8859-1"));
  8. fclose($master);
  9.  
  10. ?>


Título: Re: Ayuda: ¿Caracteres especiales con PHP?
Publicado por: ~ Yoya ~ en 8 Octubre 2012, 02:21 am
Me comi un parentesis en elcodigo y no me fije :P. Igual este codigo debe funcionar y ahora debe guardar. Otra cosa, en testing y todo eso, es muy importante activar la salida de errores.

Código
  1. <?php
  2. $headers = "Content-type: text/html; charset=iso-8859-1\r\n";
  3. $var1=$_POST['variable1'];
  4. $var2=$_POST['variable2'];
  5. $var3=$_POST['variable3'];
  6. $master=fopen('salvar_consulta.txt',a);
  7. resultado1: ".$var1." && resultado2: " .$var2." && resultado3: " .$var3." "));
  8. fclose($master);
  9.  
  10. ?>

Saludos.