Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/02/2009, 12:11
Avatar de SetheR
SetheR
 
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 3 meses
Puntos: 44
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]

Estoy creando un sistema de noticias sencillito, con comentario y demás. Tengo el siguiente codigo:

Código PHP:
<?php

require('sql3.php');
$conexion connection2();

etc.....etc...

function 
add_comment($id_noticia$id_usuario$comentario$fecha) {
        global 
$conexion;
        
$query "INSERT INTO comentarios(ID_NOTICIA, ID_USUARIO, COMENTARIO, FECHA) VALUES('".mysql_real_escape_string($id_noticia)."', '".mysql_real_escape_string($id_usuario)."', '".mysql_real_escape_string($comentario)."', '".mysql_real_escape_string($fecha)."');";
        
$exec_query mysql_query($query$conexion);
        
mysql_close($conexion);
}

function 
add_noticia($titulo$corta$larga$imagen$autor$fecha$hora$categoria) {
        global 
$conexion;
        
$query "INSERT INTO noticias(TITULO, CORTA, LARGA, IMAGEN, AUTOR, FECHA, CATEGORIA) VALUES('".mysql_real_escape_string($titulo)."', '".mysql_real_escape_string($corta)."', '".mysql_real_escape_string($larga)."', '".mysql_real_escape_string($imagen)."', '".mysql_real_escape_string($autor)."', '".mysql_real_escape_string($fecha)." a las ".mysql_real_escape_string($hora)."', '".mysql_real_escape_string($categoria)."');";
        
$exec_query mysql_query($query$conexion);
        
mysql_close($conexion);
}
?>
Pues bien, el codigo de agregar noticias, funciona a la perfeccion. Las funciones las llamo desde otras paginas, las que tienen el formulario que uso. Como veis, son exactamente iguales, al igual que los formularios de envio. pero al añadir un comentario me tira este error:

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO)

en la linea de los mysql_real_escape_string de el metodo add_comment.

Pero lo mas raro, es que, a la base de datos añade el comentario perfectamente.

He probado cambiando los datos de la conexion y nada. Probe tambien quitando los escape_string, pero, a parte de que no me gusta hacerlo, por cuestiones de seguridad, el script me duplica en comentario. Con los escape_string, no.

Este es el codigo con el que invoco al metodo:
Id noticia e id comment los paso por campo oculto:

Código PHP:

etc
...etc...

$id_noticia $_POST['id_noticia'];
$id_usuario $_POST['id_usuario'];
$comentario addSmilies($_POST['comment']);
$fecha date('d/M/Y');
add_comment($id_noticia$id_usuario$comentario$fecha);
if(
add_comment($id_noticia$id_usuario$comentario$fecha)){
echo 
"Comentario enviado";
}else{
echo 
"Fallo";


y todavia mas raro, es que el if que uso para comprobar que el script funciona, me devuelve "Fallo", como si el add_comment no se hubiese ejecutado.
Repito que el codigo identico de add_noticia funciona a la perfeccción.

Saludos y gracias anticipadas

Última edición por SetheR; 04/02/2009 a las 12:14 Razón: Cambio en php