Foros del Web » Programando para Internet » PHP »

Problemas con Acentos y la Ñ

Estas en el tema de Problemas con Acentos y la Ñ en el foro de PHP en Foros del Web. hola a todos, Estoy en una tortura con los acentos (tildes) y las eñes con un formulario en php con el cual estoy trabajando. La ...
  #1 (permalink)  
Antiguo 30/10/2013, 13:31
 
Fecha de Ingreso: octubre-2013
Mensajes: 1
Antigüedad: 10 años, 5 meses
Puntos: 0
Pregunta Problemas con Acentos y la Ñ

hola a todos,

Estoy en una tortura con los acentos (tildes) y las eñes con un formulario en php con el cual estoy trabajando. La cosa es que al procesar la información del

formulario y enviarla a un archivo .txt los datos que contienen tildes o eñes son a otros simbolos. Investigando por ahí me di cuenta que debo de establecer en mi

codigo php el UTF-8, pero he intentado de rvarias formas y no lo he logrado.
Alguno podrá ayudarme con este dilema que tengo

Este es el codigo php que tengo:

<?php

$savedata = $_REQUEST['savedata'];

if ($savedata == 1){

$data = "|".$_POST['primer_apellido']."|".$_POST['segundo_apellido']."|".$_POST['nombre']."|".$_POST['cedula']."|".$_POST['grado']."|".$_POST['DIA']."|".$_POST['MES']."|"
.$_POST['ANIO']."|".$_POST['sexo']."|".$_POST['nacionalidad']."|".$_POST['religion']."|".$_POST['primer_apellido_padre']."|".$_POST['segundo_apellido_padre']."|".$_POST['nombre_padre']."|".$_POST['cedula_padre']."|".$_POST['telefono_padre']."|".$_POST['direc_padre']."|".$_POST['profesion_padre']."|".$_POST['trabajo_padre']."|".$_POST['alumno_padre']."|".$_POST['correo_electronico_padre']."|"
.$_POST['primer_apellido_madre']."|".$_POST['segundo_apellido_madre']."|".$_POST['nombre_madre']."|".$_POST['cedula_madre']."|".$_POST['telefono_madre']."|".$_POST['direc_madre']."|".$_POST['profesion_madre']."|".$_POST['trabajo_madre']."|".$_POST['alumno_madre']."|".$_POST['correo_electronico_madre']."|"
.$_POST['primer_apellido_encar']."|".$_POST['segundo_apellido_encar']."|".$_POST['nombre_encar']."|".$_POST['cedula_encar']."|".$_POST['telefono_encar']."|"
.$_POST['direc_encar']."|".$_POST['profesion_encar']."|".$_POST['trabajo_encar']."|".$_POST['alumno_encar']."|".$_POST['correo_electronico_encar']."#";

$file = "datos_matricula.txt";

$fp = fopen($file, "a") or die("Couldn't open $file for writing!");
fwrite($fp, $data) or die("Couldn't write values to file!");

fclose($fp);

echo "Su matrícula fue registrada!";

}
?>

<?php
$url = htmlspecialchars($_SERVER['HTTP_REFERER']);
echo "<a href='$url'>SU PRE-MATRICULA FUE REGISTRADA CORRECTAMENTE!!</a>";
?>
  #2 (permalink)  
Antiguo 30/10/2013, 23:56
Avatar de cell001  
Fecha de Ingreso: abril-2010
Mensajes: 40
Antigüedad: 14 años
Puntos: 5
Respuesta: Problemas con Acentos y la Ñ

intenta esto:

Haz una función con "x" nombre así

function utf8encode($valor)
{
$valor = utf8_encode($valor);
return $valor;
}

despues

$_POST=array_map("utf8encode",$_POST);

Algo así terminaría

Código PHP:
<?php

$savedata 
$_REQUEST['savedata'];

function 
utf8encode($valor//Función para hacer valores a utf8_encode
{
    
$valor utf8_encode($valor);
    return 
$valor;
}

if (
$savedata == 1){

$_POST=array_map("utf8encode",$_POST);  //La función pasa todas las variables contenidas en el $_POST a utf8_encode

$data "|".$_POST['primer_apellido']."|".$_POST['segundo_apellido']."|".$_POST['nombre']."|".$_POST['cedula']."|".$_POST['grado']."|".$_POST['DIA']."|".$_POST['MES']."|"
.$_POST['ANIO']."|".$_POST['sexo']."|".$_POST['nacionalidad']."|".$_POST['religion']."|".$_POST['primer_apellido_padre']."|".$_POST['segundo_apellido_padre']."|".$_POST['nombre_padre']."|".$_POST['cedula_padre']."|".$_POST['telefono_padre']."|".$_POST['direc_padre']."|".$_POST['profesion_padre']."|".$_POST['trabajo_padre']."|".$_POST['alumno_padre']."|".$_POST['correo_electronico_padre']."|"
.$_POST['primer_apellido_madre']."|".$_POST['segundo_apellido_madre']."|".$_POST['nombre_madre']."|".$_POST['cedula_madre']."|".$_POST['telefono_madre']."|".$_POST['direc_madre']."|".$_POST['profesion_madre']."|".$_POST['trabajo_madre']."|".$_POST['alumno_madre']."|".$_POST['correo_electronico_madre']."|"
.$_POST['primer_apellido_encar']."|".$_POST['segundo_apellido_encar']."|".$_POST['nombre_encar']."|".$_POST['cedula_encar']."|".$_POST['telefono_encar']."|"
.$_POST['direc_encar']."|".$_POST['profesion_encar']."|".$_POST['trabajo_encar']."|".$_POST['alumno_encar']."|".$_POST['correo_electronico_encar']."#";

$file "datos_matricula.txt";

$fp fopen($file"a") or die("Couldn't open $file for writing!");
fwrite($fp$data) or die("Couldn't write values to file!");

fclose($fp);

echo 
"Su matrícula fue registrada!";

}
?>
Intentalo, no estoy seguro si se usaba utf8_encode o utf8_decode

Si no te funciona con utf8_encode como esta en la función, cambialo a utf8_decode y pruebalo

¡Suerte!

Etiquetas: acentos, formulario, html
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:11.