Tengo una consulta que hacerle a todos los expertos de PHP....estoy instalando un libro de visitas MUY simple en mi web, que de hecho me gusta por su simplicidad, no funciona con base de datos ni nada...
Al momento de tocar el boton FIRMAR, me tira el siguiente error:
Código:
Warning: fread() [function.fread]: Length parameter must be greater than 0 in (aqui la ruta de mi sitio)\index.php on line 73
El mensaje aparece igual, pero no queda bien que el visitante obtenga este error....ademas es muy muy muy poco seguro.
Alguien sabe que puede ser? La carpeta donde esta el archivo mensajes.php (que es donde se guardan los mensajes) tiene permisos de escritura.
El archivo index.php es este:
Código PHP:
include("config.php");
include("funciones.php");
Template("html/tpl_arriba.html");
switch($accion) {
// Formulario para publicar un mensaje
case firmar:
Template("html/tpl_formulario.html");
break;
// Publicar un mensaje
case publicar:
$fecha = date("d-m-y H:i a");
// Comprobación de campos
$nombre = trim($nombre);
$email = trim($email);
$mensaje = trim($mensaje);
if(empty($nombre)) {
$error[] = $alerta[0];
}
if(empty($email)) {
$error[] = $alerta[1];
}
if(empty($mensaje)) {
$error[] = $alerta[2];
}
// Filtro de malas palabras
if($FiltroGroserias == "SI") {
for($i = 0; $i < sizeof($palabrotas); $i++) {
if(ereg($palabrotas[$i], $nombre) OR ereg($palabrotas[$i], $email) OR ereg($palabrotas[$i], $mensaje)) {
$error[] = $alerta[3];
}
}
}
if($error) {
include("html/tpl_error.html");
} else {
// Filtramos el mensaje
HTML();
Remplazar();
$mensaje = ereg_replace("\r\n","<br>", $mensaje);
// Guardamos la firma en el fichero
$fp = fopen($FicheroId,"r");
$id = fread($fp, filesize($FicheroId));
$id ++;
fclose($fp);
$fp = fopen($FicheroId, "w");
fwrite($fp, $id);
fclose($fp);
$firma = "$id|@|$nombre|@|$email|@|$url|@|$mensaje|@|$fecha|@|\n";
$fp = fopen($FicheroBase, "a");
fwrite($fp, $firma);
fclose($fp);
Template("html/tpl_correcto.html");
}
break;
default:
// Mostrar todas las firmas
$Base = file($FicheroBase);
$Orden = array_reverse($Base);
if(empty($paginado)) {
$paginado = 0;
}
$Mostrar = $paginado + $LimiteMensajes;
for ($i = $paginado; $i < count($Orden) AND $i < $Mostrar; $i++) {
$dato = explode("|@|", $Orden[$i]);
$nombre = $dato[1];
$email = $dato[2];
$url = $dato[3];
$mensaje = $dato[4];
$fecha = $dato[5];
// Template
Template("html/tpl_mensajes.html");
}
echo "<table cellpadding='4' cellspacing='1' width='450' align='center' class='normal'>";
echo "<tr><td width='50%'>";
Paginacion();
echo "</td><td width='100%' align='left'>";
echo "<b><a href='index.php?accion=firmar'>DEJAR MENSAJE!</a></b>";
echo "</td></tr></table>";
}
Template("html/tpl_abajo.html");
?>
Espero alguna respuesta!
Saludos
Pole