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