Foros del Web » Programando para Internet » PHP »

Error con pagina

Estas en el tema de Error con pagina en el foro de PHP en Foros del Web. Hola, necesito ayuda con este problema. Resulta que tengo un chat montado en mi pagina, pero me da el siguiente error: htmlspecialchars() expects parameter to ...
  #1 (permalink)  
Antiguo 27/08/2011, 15:52
 
Fecha de Ingreso: marzo-2011
Mensajes: 9
Antigüedad: 13 años, 1 mes
Puntos: 0
Error con pagina

Hola, necesito ayuda con este problema. Resulta que tengo un chat montado en mi pagina, pero me da el siguiente error: htmlspecialchars() expects parameter to be string, array given in . Necesitaria que me ayudaseis a arreglarlo. Gracias.
  #2 (permalink)  
Antiguo 27/08/2011, 16:25
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Error con pagina

Antes que nada, no tenemos capacidad de adivinar código (todavía )
Y después, el error es claro. htmlspecialchars() acepta sólo variables que sean string, pero tú le estás pasando un array:

Código PHP:
Ver original
  1. $foo = 'Hola'; // String
  2. $bar = array('hola'); // Array
  3.  
  4. htmlspecialchars($foo); // Bien
  5. htmlspecialchars($bar); // Mal

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 27/08/2011, 16:30
Avatar de jatg  
Fecha de Ingreso: abril-2011
Ubicación: caracas
Mensajes: 152
Antigüedad: 13 años
Puntos: 15
Respuesta: Error con pagina

hola, alfon02, como dice el compañero source, el error lo tienes en htmlspecialchars() , ya que el mismo te esta generando el error devuelto de la cadena como array y no string, si publicas el script te podriamos ayudar mucho mas y dar en el clavo de dicho error.

atte ingeniero: jose alexis trujillo

caracas-vnezuela
__________________
www.josealexis.net
  #4 (permalink)  
Antiguo 27/08/2011, 18:00
 
Fecha de Ingreso: marzo-2011
Mensajes: 9
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Error con pagina

Hola, los primero, muchas gracias a los dos por responderme tan rapido. A continuación os pongo el codigo:

enviar-mensaje.php:

<?php
session_start();
include('../../conectar.php');
$usuario = mysql_real_escape_string(htmlspecialchars($_SESSIO N['user']));
if(isset($usuario)) {
$mensaje = mysql_real_escape_string(htmlspecialchars($_POST['mensaje']));
if(isset($mensaje)) {
if(isset($usuario)) {

// Comandos
// Comandos Acciones
// Borrar Mensajes:
if($mensaje == "/borrar" && $_SESSION['rol'] == "3"){
mysql_query("TRUNCATE TABLE tagharrypotter");
}
else{

$act = "INSERT INTO tagharrypotter (de,mensaje) values ('".$usuario."','".$mensaje."')";
@mysql_query($act);
}
}
}
}
include("mensajes.php");
?>

Y en :

mensajes.php:

<?php
include('../../conectar.php');
$usuario = mysql_real_escape_string(htmlspecialchars($_SESSIO N['user']));
$query = "SELECT * FROM `usuarios` WHERE usuario = '".$usuario."'";
$resp = @mysql_query($query);
$user = @mysql_fetch_array($resp);

$chat1 = mysql_query("SELECT * FROM `tagharrypotter` ORDER BY `id` DESC limit 20") or die (mysql_error());
$i = 0;
while($chat = mysql_fetch_assoc($chat1)) {
$mensaje = htmlspecialchars($chat['mensaje']);
//BBCode Nergita
$mensaje = eregi_replace("\\[b\\]([^\\[]*)\\[/b\\]","<b>\\1</b>", $mensaje);
//BBCode Cursiva
$mensaje = eregi_replace("\\[i\\]([^\\[]*)\\[/i\\]","<i>\\1</i>", $mensaje);
//BBCode Subrayada
$mensaje = eregi_replace("\\[u\\]([^\\[]*)\\[/u\\]","<u>\\1</u>", $mensaje);
//BBCode tachada
$mensaje = eregi_replace("\\[s\\]([^\\[]*)\\[/s\\]","<s>\\1</s>", $mensaje);
if ($i % 2 == 0)
$css = 2;
else
$css = 1;
$i++;
?>

<div class="chatmsj<?=$css;?>">
<b><a href="/perfil/<?=htmlspecialchars($chat['de']);?>"><?=htmlspecialchars($chat['de']);?></a>:</b> <?=$mensaje;?> <?php if($_SESSION['rol'] == "3" or $_SESSION['rol'] == "7" or $_SESSION['rol'] == "19"){echo'[<a href="/virtual/sala-harry-potter/index.php?borrar='.$chat['id'].'">x</a>]'; }?>
</div>
<?php
}
?>

A ver si lo podemos sacar entre todos.
  #5 (permalink)  
Antiguo 27/08/2011, 20:01
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Error con pagina

Varias preguntas..
Por qué no pones el error completo para ver la línea del error?
Por qué escribes '$_SESSIO N' en lugar de '$_SESSION'?
Por qué usas @mysql_query (nótese el arroba)? Deberías saber que el esconder un error es mala práctica además de que gasta recursos. Si el código está bien hecho, no debe haber error alguno
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #6 (permalink)  
Antiguo 28/08/2011, 13:17
 
Fecha de Ingreso: marzo-2011
Mensajes: 9
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Error con pagina

1º El codigo donde esta el error lo he puesto.
2º Eso se habra puesto al copiarlo aqui.
3º Eso tambien se habra puesto al copiarlo aqui.

Saludos.
  #7 (permalink)  
Antiguo 28/08/2011, 13:21
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Error con pagina

No, no pusiste el error completo, debe salir algo así:
htmlspecialchars() expects parameter to be string, array given in C:\tupagina\archivo.php on line 30 (por ejemplo).
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #8 (permalink)  
Antiguo 28/08/2011, 13:41
 
Fecha de Ingreso: marzo-2011
Mensajes: 9
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Error con pagina

Vale, ya entiendo: Espera, que ahora mismo lo pongo:

Warning: htmlspecialchars() expects parameter to be string, array given in /var/www/vhosts/mundodefantasia.org/httpdocs/virtual/sala-harry-potter/enviar-mensaje.php on line 4

Warning: htmlspecialchars() expects parameter to be string, array given in /var/www/vhosts/mundodefantasia.org/httpdocs/virtual/sala-harry-potter/mensajes.php on line 3

Ya lo he puesto, y perdona, que no sabia antes a lo que te referias.
  #9 (permalink)  
Antiguo 28/08/2011, 14:19
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Error con pagina

Código PHP:
Ver original
  1. $_SESSION['user']
Esa variable es un array. Haz esto, te saldrá una pequeña lista con los índices del array, elige el que necesitas y listo:
Código PHP:
Ver original
  1. echo '<pre>';
  2. print_r($_SESSION['user']);
  3. echo '<pre'>;

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies

Etiquetas: 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 10:41.