Foros del Web » Programando para Internet » PHP »

Problema Codificacion de caracteres (extraño a mi parecer)

Estas en el tema de Problema Codificacion de caracteres (extraño a mi parecer) en el foro de PHP en Foros del Web. Hola, bueno os expongo aqui mi problema: Tengo: index.php (donde se estructura la web en 3 columnas) inicio.php (seria el archivo que mediante include() se ...
  #1 (permalink)  
Antiguo 18/03/2009, 09:41
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 10 años, 10 meses
Puntos: 3
Pregunta Problema Codificacion de caracteres (extraño a mi parecer)

Hola, bueno os expongo aqui mi problema:
Tengo:
index.php (donde se estructura la web en 3 columnas)
inicio.php (seria el archivo que mediante include() se añadiria a la columna central del index.php
Procesar.php (script q procesa un formulario colocado en el inicio.php)

Ahora. el formulario lo que hace es añadir una entrada, a una base de datos...
formulario:
Código:
<FORM id="Fentradas" action="funciones/Procesar.php" method="POST">
Titulo:<input id="textboxC" type="text" name="titulo"><br>
Contenido:<textarea id="textboxC" name="contenido" rows="10"></textarea><br>
<input type="submit" name="Aentradas" value="A&ntilde;adir">
</FORM>
Parte del Procesar.php que procesa este formulario:
Código:
if (isset($_POST['Aentradas'])) {
$title_unicode=$_POST['titulo'];
$cont_unicode=$_POST['contenido'];
$tituloC=htmlentities($title_unicode);
$contenidoC=htmlentities($cont_unicode);
$sql = "INSERT INTO `Entradas` (ID_usu,Fecha,Titulo,Contenido) values";
$sql.= "('".$_SESSION['ID']."','".$fecha."','".$tituloC."','".$contenidoC."')";
if (mysql_query($sql)) {
echo 'Se ha A&ntilde;adido Correctamente la Entrada a tu blog';
}
Y ahora el proiblema xd:
Antes me funcionaba bien, pero nose que hice que por ejemplo la á me sale asi á

Y probando cosas me di cuenta de que el problema debe de ser del post o algo porque:
1-Copie el formulario tal cual al archivo Procesar.php cambiaba en action por lo debido y EL MENSAJE SE AÑADIA PERFECTAMENTE

Si necesitan mas datos diganmelo

gracias y salu2
  #2 (permalink)  
Antiguo 18/03/2009, 09:47
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 10 años, 10 meses
Puntos: 8
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Hola, ami me pasaba lo mismo con eso de las tildes y las ñ y todas esas cosas de php en las páginas y me dijeron que insertara este codigo html:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

y ami se me soluciono el problema lo que como soy novato no se si en todos lados es igual pero por probarlo no pierdes nada
  #3 (permalink)  
Antiguo 18/03/2009, 09:52
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.712
Antigüedad: 14 años, 9 meses
Puntos: 836
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Lo que debes hacer es comprobar la codificación de caracteres de los 3 archivos y de la base de datos. Por lo general, recomendaría que los dejaras a todos con codificación UTF-8. Después, revisas si el servidor está enviando la cabecera correcta, y si no lo hace, fuerzas que el navegador muestre con esa codificación usando un metatag.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 18/03/2009, 09:53
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 11 años, 5 meses
Puntos: 7
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Eso es debido a la codificación que utilizas. Comprueba cuál está usando tu bbdd y haz que sea la misma que la que utilizas en las páginas. Seguro estarás usando utf8 en bbdd e iso-xxxx-x en la codificación html.

puedes arreglarlo en las páginas html cambiando los caracteres por su código html (á -> &aacute;)
  #5 (permalink)  
Antiguo 18/03/2009, 10:02
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 10 años, 10 meses
Puntos: 3
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Gracias, pero creo que no es eso, porque lo pensé y añadi en todas las paginas donde se meutran esos datos el meta ese pero con charset=UTF-8 y bueno sigue igual.
Ademas, se me olvido añadir.
Como dije si lo hago añadiendo los datos desde un formulario secundario que creo en el propio Procesar.php pues funciona bien, pero resulta que si lo hago en la otra pues no, y haciendo pruebas...resulta q si en el procesar digo q muestre el _POST['mensaje'] se muestra correcto, de modo que el fallo es en el cambio...o no xD

Nose a ver si me dais mas sugenrecias =)

Gracias
  #6 (permalink)  
Antiguo 18/03/2009, 10:05
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.712
Antigüedad: 14 años, 9 meses
Puntos: 836
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

El que pongas el metatag charset UTF-8 no garantiza que tu página se vea bien si no está guardada con esa codificación. Además, ¿tu base de datos en qué codificación está?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 18/03/2009, 10:16
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 10 años, 10 meses
Puntos: 3
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Todas las tablas estan en UTF-8_unicode_ci

Ya digo, es raro, porque como digo si el formulario lo pongo en en Procesar.php si funcionar perfecto, si lo coloco en inicio.php salen las letras mal :S sin embargo en el $_POST si que van bien :SS::S xD
  #8 (permalink)  
Antiguo 18/03/2009, 10:20
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.712
Antigüedad: 14 años, 9 meses
Puntos: 836
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Bueno, la base de datos está en UTF-8, ¿y los archivos? ¿están guardados con esa codificación?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 18/03/2009, 10:22
Avatar de JDEM  
Fecha de Ingreso: octubre-2008
Ubicación: www....
Mensajes: 154
Antigüedad: 11 años, 3 meses
Puntos: 8
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Men esos son problemas de cotejamiento revisa bien el cotejamiento de inicio.php a mi m pasaba y lo solucione todo colocando "charset=utf-8" el las paginas y UTF-8_unicode_ci en la BD tanto en la BD como en los campos de las tablas!!!.

Recuerda q si almacenaste un valor desde la formar con otro cotejamiento se va almacenar asi y cuando hagas el cambio no vas a poder notar si t funcion tienes q insertar de nuevo con el nuevo cotejamiento...
  #10 (permalink)  
Antiguo 18/03/2009, 10:30
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 10 años, 10 meses
Puntos: 3
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Avanzamos:
En vez de entrar en panel.php y q este me incluya el inicio.php ejecuté directamente el inicio.php y me lo hace bien, es decir que el problema está en el panel.php

En la cabezera lo que tengo es
Código:
<?
session_start();
if ($_SESSION['Correo'] and $_SESSION['Pass'] and $_SESSION['Rango']) {
include ("widgets.php");
?>
<html xmlns="h  ttp ://w ww .w3.or g/1999/xhtml" xml:lang="es" lang="es">
<head>
<title>Bienvenido a tu panel <? echo $_SESSION['Nombre'];?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="estilo/estilo.css" rel="stylesheet" type="text/css" />

</head>
<body id="body">
<table id="bas.....
(Puse la url esa con espacios xq sino me dice q hago spam jiji xD)
  #11 (permalink)  
Antiguo 18/03/2009, 10:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.712
Antigüedad: 14 años, 9 meses
Puntos: 836
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Y la pregunta que todavía no respondiste:
¿Has comprobado que ambos archivos están guardados con codificación UTF-8?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 18/03/2009, 10:41
Avatar de JDEM  
Fecha de Ingreso: octubre-2008
Ubicación: www....
Mensajes: 154
Antigüedad: 11 años, 3 meses
Puntos: 8
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Mirate mis encabezados:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h t tp://w w w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="h ttp ://w ww .w3.or g/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>AGREGAR SOLICITANTE ...:::BLABLABLA:::...</title>

Revisa por q el tuyo esta primero el "TITLE" puede darte un problemillo....
  #13 (permalink)  
Antiguo 18/03/2009, 10:44
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 10 años, 10 meses
Puntos: 3
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Cita:
Iniciado por David el Grande Ver Mensaje
Y la pregunta que todavía no respondiste:
¿Has comprobado que ambos archivos están guardados con codificación UTF-8?
Disculpa. La leí y probé con lo del meta, luego busque en google y vi que para forzar la codificacion de un php hay q poner esto:
Código PHP:
header('Content-Type: text/html; charset=UTF-8'); 
Lo hice y me dice q el header ya se ha mandao por el archivo widget (algo q no entiendo como, xq el widget consta de una funcion q es otro formulario :S
  #14 (permalink)  
Antiguo 18/03/2009, 10:51
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 10 años, 10 meses
Puntos: 3
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Cita:
Iniciado por JDEM Ver Mensaje
Mirate mis encabezados:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h t tp://w w w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="h ttp ://w ww .w3.or g/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>AGREGAR SOLICITANTE ...:::BLABLABLA:::...</title>

Revisa por q el tuyo esta primero el "TITLE" puede darte un problemillo....
Gracias, la verdad es que no caí en lo del title...pero sigue sin funcionar :\

Si alguien quiere...me podria ayudar en plan ver mi script entero, messenger, ftp y eso xD

salu2

Última edición por manumar; 18/03/2009 a las 10:58
  #15 (permalink)  
Antiguo 18/03/2009, 11:15
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.712
Antigüedad: 14 años, 9 meses
Puntos: 836
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

No me refería a forzar la codificación, con eso lo único que estás haciendo es forzar al navegador a que muestre con una cierta codificación.

Pero de nada sirve si los archivos no están guardados con esa codificación. ¿Entiendes lo que quiero decir?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #16 (permalink)  
Antiguo 18/03/2009, 11:36
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 10 años, 10 meses
Puntos: 3
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Cita:
Iniciado por David el Grande Ver Mensaje
No me refería a forzar la codificación, con eso lo único que estás haciendo es forzar al navegador a que muestre con una cierta codificación.

Pero de nada sirve si los archivos no están guardados con esa codificación. ¿Entiendes lo que quiero decir?
Lo entiendo, aunque no se como saber eso
Pero una cosa, probé a montar el formulario en otro .php y funciona bien.
Os paso el panel.php
Código PHP:
<?
session_start
();
if (
$_SESSION['Correo'] and $_SESSION['Pass'] and $_SESSION['Rango']) {
include (
"widgets.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "ht tp: //w ww.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="htt p :// ww w.w3. org/1999/xhtml" xml:lang="es" lang="es">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="estilo/estilo.css" rel="stylesheet" type="text/css" />
<title>Bienvenido a tu panel <? echo $_SESSION['Nombre'];?></title>

</head>
<body id="body">
<table id="base">
<tr><th><? include('header.php');?></th></tr>
</table>
<table id="base1">
<tr>
    <th width="150"><? Fmensaje(); ?></th>
    <th width="650"><?
    
if (subirimg==$_GET['sitio']) {
        include(
'subir.php');
    }
    elseif (
amigos==$_GET['sitio']) {
        include(
'amigos.php');
        }
        else { 
        include(
'inicio.php');
        }
    

?></th>
    <th width="200"> columna derexa</th>
</tr>
<tr>
<th height="50" colspan="3"><div id="a">FOOTER</div></th>
</tr>
</table>
</body>
</html>
<?

}
else {
header("Location:index.php");
}
?>
  #17 (permalink)  
Antiguo 18/03/2009, 11:40
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.712
Antigüedad: 14 años, 9 meses
Puntos: 836
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Para guardar los archivos con cierta codificación sólo necesitas usar algún editor de texto que muestre esa opción (como el Notepad++)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #18 (permalink)  
Antiguo 18/03/2009, 12:07
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 10 años, 10 meses
Puntos: 3
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

ah okok muchas gracias me lo baje y le puse de codificacion la debida´pero sigue sin funcionar, es muy raro porque mira,
copio el contenido del panel.php en el notepad++ y lo guardo con la code tal tal bien..xD lo paso por el cute ftp y cuando carga la pagina me sale un error, logico xq si abro el archivo desde el cute ftp pues me sale unos simbolos raros..nose porque será pero claro son los causantes del problema, entonces tal vez al arreglarlo desde el cuteftp pues la codificcion se ponga otra vez mal...nose q hacer, ya te digo tengo el localhost con un dominio asi q podrias asceder por ftp
por favor hazlo xD te mando un privado
  #19 (permalink)  
Antiguo 18/03/2009, 13:33
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 10 años, 10 meses
Puntos: 3
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Bueno people...nose que hacer.

Algun consejo?
  #20 (permalink)  
Antiguo 18/03/2009, 13:56
 
Fecha de Ingreso: abril-2008
Ubicación: Montevideo - Uruguay
Mensajes: 156
Antigüedad: 11 años, 8 meses
Puntos: 5
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Hi!

Coloca esto luego de la conexión a la BD, pero antes de hacer cualquier consulta:

Código PHP:
mysql_query("SET NAMES 'utf8'"); 
Espero te sea util :D
__________________
--
Mi Portfolio Online! Visitalo!
--
  #21 (permalink)  
Antiguo 19/03/2009, 09:40
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 10 años, 10 meses
Puntos: 3
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Cita:
Iniciado por Proguri Ver Mensaje
Hi!

Coloca esto luego de la conexión a la BD, pero antes de hacer cualquier consulta:

Código PHP:
mysql_query("SET NAMES 'utf8'"); 
Espero te sea util :D
Hola, gracias, me vendrá bien ese codigo.
Pero lo puse justo despues de la mysql_select_db() (antes de todas las consultas) y sigue fallando.

Mirad, hoy que tengo tiempo libre :D me pondré a investigar, y casi seguro que lo saco :P ..y os cuento.

Gracias y salu2
  #22 (permalink)  
Antiguo 19/03/2009, 10:21
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 10 años, 10 meses
Puntos: 3
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Mirad, yo estoy mas liado que un trompo aunque creo que el problema va saliendo a la luz.
Hago esto:
en un archivo.php creo el formulario que al submit lleva al procesar.php. Si ejecuto archivo.php las cosas se añaden correctamente.
Ahora, creo otro archivo2.php y escribo include('archivo.php')
Y ya va mal. Miren los codigos:

Archivo1 (formulario):
Código PHP:
<FORM id="Fentradas" action="funciones/Procesar.php" method="POST">
Titulo:<input type="text" name="titulo"><br>
Contenido:<textarea name="contenido" rows="10"></textarea><br>
<
input type="submit" name="Aentradas" value="A&ntilde;adir">
</
FORM
Archivo2:
Código PHP:
<? include ("archivo1.php"); ?>
Como dije, si ejecuto el formulario desde él mismo va bien, si lo hago desde el otro archivo ya va mal.

PD: añado el Procesar.php entero porque ya estoy desesperado:
Código PHP:
<?
session_start
();
if (
$_SESSION['Correo'] and $_SESSION['Pass'] and $_SESSION['Rango']) { 

/* --CONTENIDOS-- */
include ('BD.php');
include(
'funciones.php');
$fecha=time();
$fecha=date("HisdmY",$fecha);

/* Procesa Form Enviar Mensaje Privado*/
if (isset($_POST['enviarmp'])) {
if (
0!=($_POST['aquien']) && !empty($_POST['mensaje'])) {
$msg_unicode $_POST['mensaje'];
$cambio htmlentities($msg_unicode);
$sql "INSERT INTO `Mensajes` (ID_usu1,ID_usu2,Contenido) values";
$sql.= "('".$_SESSION['ID']."','".$_POST['aquien']."','".$cambio."')";
if (
mysql_query($sql)) {
echo 
"Se ha enviado el mensaje correctamente"$_POST['mensaje'];
}
else{
echo 
"Ha habido un error en enviar el mensaje";
}
}
else {
echo 
"Debes reyenar el formulario con datos xD";
}
}
/** Procesa Anadir Entrada al Blog **/
if (isset($_POST['Aentradas'])) {
$title_unicode=$_POST['titulo'];
$cont_unicode=$_POST['contenido'];
$tituloC=htmlentities($title_unicode);
$contenidoC=htmlentities($cont_unicode);
$sql "INSERT INTO `Entradas` (ID_usu,Fecha,Titulo,Contenido) values";
$sql.= "('".$_SESSION['ID']."','".$fecha."','".$tituloC."','".$contenidoC."')";
if (
mysql_query($sql)) {
echo 
'Se ha A&ntilde;adido Correctamente la Entrada a tu blog',$_POST['mensaje'];
}
else {
echo 
'Hubo un error al a&ntilde;adir la entrada  ' ,$tituloC,'  ',$contenidoC;
}
echo 
'<script type="text/javascript">window.location="javascript:history.back(1)"</script>';

}

/* --FIN CONTENIDOS-- */
}
else {
Header("Location:/index.php");
}
?>
  #23 (permalink)  
Antiguo 19/03/2009, 15:34
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 10 años, 10 meses
Puntos: 3
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

Nadie sabe??? =(=(=(
Guardo los archivos con la correcta codificacion..pff podrá ser el servidor??
Lo tengo en local en un kubuntu 8.10 con apache 2 mysql ftp...php no como modulo de apache, hice un trasteo para intentar montar un server de correo con postfix y otra cosa más...
(estoy desesperao xD)
  #24 (permalink)  
Antiguo 19/03/2009, 17:16
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 10 años, 10 meses
Puntos: 3
Respuesta: Problema Codificacion de caracteres (extraño a mi parecer)

pARECE QUE DI CON LA CLAVE

AL USAR INCLUDE PARA QUE EL COTENIDO DEL POST CAMBIA POR LO QUE TUVE QUE USAR utf8_decode

SALU2
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:12.