el primer error es porque el archivo "libro.txt" esta vacio (al principio) por eso al ejecutar la funcio
fread() leyendo filesize($archivo) --> 0 la funcion devuelve error para solucionarlo solo debes sumarle 1 byte al archivo y listo
Código PHP:
<?php
$pvm = getdate();
$archivo="libro.txt"; #aquí para cambiar la ruta del archivo donde se guardan las entradas
$uusi="<table border=0 width=95% cellspacing=1>
<tr><td width=30%><b>nombre :</b></td><td width=70%> $nombre </td></tr>
<tr><td width=30%><b>Fecha : </b></td><td width=70%>$pvm[mday]-$pvm[mon]-$pvm[year]</td></tr>
<tr><td width=30%><b>E-mail :</b></td><td width=70%><a href='mailto:$email'><font color='000000'>$email</font></a></td></tr>
<tr><td width=30%><b>Localización :</b></td><td width=70%>$pais - $ciudad </td></tr>
<tr><td width=30%><b>Valoración :</b></td><td width=70%> $valoracion </td></tr>
<tr><td width=30%><b>Comentario :</b></td><td width=70%> $comentario </td></tr></table><hr width=70%>\n\n";
$fp=fopen($archivo, "r+");
$vanha=fread($fp, filesize($archivo)+1);
fseek($fp, 0);
fwrite($fp, "${uusi}${vanha}");
fclose($fp);
header("Location: libro.php");
?>
el segundo error es por que ya enviaste cabeceras al navegador por lo tanto no puedes enviar "header("location:...")" a menos que las envies antes que las cabeceras html.
salu2