Ayuda: ¿Caracteres especiales con PHP?

Iniciado por Argentino Canejo, 7 Octubre 2012, 06:36 AM

0 Miembros y 1 Visitante están viendo este tema.

Argentino Canejo

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:

ç º ª ñ

me sale el signo de interrogación: ?

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

\ "
me salen: \\ o \" , respectivamente.

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

Hoy es sábado & mañana es domingo

El resultado será:

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 (php) [Seleccionar]
<?php
$headers 
"Content-type: text/html; charset=iso-8859-1\r\n"
$var1=$_POST['variable1'];
$var2=$_POST['variable2'];
$var3=$_POST['variable3'];
$master=fopen('salvar_consulta.txt',a);
fwrite($master,"
resultado1: "
.$var1." && resultado2: " .$var2." && resultado3: " .$var3." ");
fclose($master);

?>


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. ;)

~ Yoya ~

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


htmlentities
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

Argentino Canejo

#2
Cita de: ~ Yoya ~ en  7 Octubre 2012, 06:54 AM
Código (php,7) [Seleccionar]
<?php
$headers 
"Content-type: text/html; charset=iso-8859-1\r\n"
$var1=$_POST['variable1'];
$var2=$_POST['variable2'];
$var3=$_POST['variable3'];
$master=fopen('salvar_consulta.txt',a);
fwrite($master,htmlentities("resultado1: ".$var1." && resultado2: " .$var2." && resultado3: " .$var3." "), ENT_NOQUOTES"ISO-8859-1");
fclose($master);
 
?>


htmlentities

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 (php) [Seleccionar]
<?php
$headers 
"Content-type: text/html; charset=iso-8859-1\r\n"
$var1=$_POST['variable1'];
$var2=$_POST['variable2'];
$var3=$_POST['variable3'];
$master=fopen('salvar_consulta.txt',a);
fwrite($master,htmlentities(("resultado1: ".$var1." && resultado2: " .$var2." && resultado3: " .$var3." "), ENT_NOQUOTES"ISO-8859-1"));
fclose($master);
 
?>

~ Yoya ~

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 (php) [Seleccionar]
<?php
$headers 
"Content-type: text/html; charset=iso-8859-1\r\n"
$var1=$_POST['variable1'];
$var2=$_POST['variable2'];
$var3=$_POST['variable3'];
$master=fopen('salvar_consulta.txt',a);
fwrite($master,utf8_encode("
resultado1: "
.$var1." && resultado2: " .$var2." && resultado3: " .$var3." "));
fclose($master);
 
?>


Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.