Foros del Web » Programando para Internet » PHP »

Problema a la hora de mostrar comentarios

Estas en el tema de Problema a la hora de mostrar comentarios en el foro de PHP en Foros del Web. El caso es que utilizo este codigo: Código PHP:          if ( $_GET [ 'accion' ] ==  "comentar" ) {                            $fecha = date ( "d/n/Y" ...
  #1 (permalink)  
Antiguo 20/11/2012, 06:52
 
Fecha de Ingreso: marzo-2008
Mensajes: 105
Antigüedad: 16 años, 8 meses
Puntos: 0
Problema a la hora de mostrar comentarios

El caso es que utilizo este codigo:

Código PHP:
        if ($_GET['accion'] == "comentar") {
        
        
        
$fecha=date("d/n/Y");
        
$hora=date("H:i:s");
        
        
/* Recogemos por post el ID de la noticia y el comentario que han puesto */
        
        
$numero_id $_POST[id_noticia];
        
$comentario mysql_real_escape_string($_POST[comentario]);
        
        
/*     Comprobamos si el usuario ha escrito algo o no en el input de comentario    */
        
        
if (!$comentario) {

    echo 
"<script type='text/javascript'> alert('Tienes que completar el campo de comentario');</script>";
    echo 
"<script language='javascript'>window.location='ver_noticia.php?id=$numero_id';</script>";
    }else{

    
/* Ingresamos el comentario en la tabla con los datos recogidos anteriormente de la session del usuario */
    
$query_insertar mysql_query("INSERT INTO comentarios SET id=$numero_id, email='$_SESSION[email]', nick='$_SESSION[alias]', comentario='$comentario', hora='$hora', fecha='$fecha'");
    
$query_insertar;
    
    echo 
"<script type='text/javascript'> alert('¡Comentado existosamente!');</script>";
    echo 
"<script language='javascript'>window.location='ver_noticia.php?id=$numero_id';</script>";
}
        
    } 
Pero a la hora de mostrar comentarios con Ñ o acentos sale esto:

ññññññ

Y la verdad es que no sé porque es, tengo UTF-8 en la base de datos, en el PHP junto con el meta y a la hora de hacer la conexión a la BBDD tengo SET CHARSET UTF-8

Alguien sabe porque es?

Para mostrar los comentarios tengo esto:

Código PHP:
// Declaramos variables para evitar que inserten código HTML en el comentario y puedan obtener datos de la base de datos
$comentario strip_tags($qry[comentario]);
$comentario utf8_decode(htmlentities($comentario)); 
  #2 (permalink)  
Antiguo 20/11/2012, 07:05
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 8 meses
Puntos: 47
Respuesta: Problema a la hora de mostrar comentarios

no se si sirva pero la funcion utf8_decode se usa para cuando subes los datos a tu base.

para mostrar los datos se usa utf8_encode x ejemplo:

Código PHP:
Ver original
  1. $query_insertar = mysql_query("INSERT INTO comentarios (comentario) VALUES ('".utf8_decode($comentario)."')");
  2.     $query_insertar;

y luego para mostrar:

Código PHP:
Ver original
  1. echo utf8_encode($fila["comentario"]);

Por otro lado noto algo rara tu sentencia mysql para subir datos ya que esa sintaxis se asemeja mas a la de UPDATE que a la de INSERT para hacer los INSERT te recomiendo que uses estas 2 formas:

1:
Código MySQL:
Ver original
  1. INSERT INTO tabla (campo1, campo2 , campo3) VALUES (valor1, valor2, valor3);

2:
Código MySQL:
Ver original
  1. INSERT INTO tabla VALUES (NULL,valor1,valor2,valor3) // En este caso deberas dar un valor para todos los campos.

y para UPDATE si usa SET:

Código MySQL:
Ver original
  1. UPDATE tabla SET campo1 = valor1, campo2 = valor2 , campo3 = valor3 WHERE idElemento = X;
Saludos!
  #3 (permalink)  
Antiguo 20/11/2012, 07:18
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Problema a la hora de mostrar comentarios

es SET NAMES utf8 y con eso debería bastar, pero con definir el mismo charset tanto en la DB como en el META no haría falta
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #4 (permalink)  
Antiguo 20/11/2012, 08:00
 
Fecha de Ingreso: marzo-2008
Mensajes: 105
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Problema a la hora de mostrar comentarios

SOLUCIONADO!:

$comentario = html_entity_decode($qry[comentario], ENT_COMPAT, "UTF-8");

Última edición por Sard; 20/11/2012 a las 08:07

Etiquetas: comentarios, html, mysql, tabla, variables, usuarios
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 13:05.