Всё разобрался в чём дело. У меня сначала файл считывался, а потом я в него информацию добавлял и поэтому эта инфа только после следующего обновления появлялась. Немного ещё код переделал:
PHP код:
<html>
<head>
<title>
Гостевая книга v1.2
</title>
</head>
<body>
<table width="100%" border="1" cellpadding="10" cellspacing="1">
<tr>
<td>
<form method="POST" action="index.php">
<b><font face="Tahoma" size="2">Имя:</font>
</b><input type="text" name="name" size="29"><p>
<textarea rows="9" name="text" cols="51"></textarea></p>
<input type="submit" value="Отправить" name="knopka">
</form>
</td>
</tr>
<tr>
<td align="center">
<table cellpadding="5" cellspacing="5">
<?
if(isset($_POST___91;'knopka'___93;))
{if(addslashes($_POST___91;'knopka'___93;)==="Отправить")
{$handle = fopen("messages.dat", "a");
$spl = "<split>";
$date = date("F j, Y, g:i a");
$name = htmlspecialchars(addslashes($_POST___91;'name'___93;));
$text = htmlspecialchars(addslashes($_POST___91;'text'___93;));
$zapisat ="$date $spl $name $spl $text \n";
fwrite($handle,$zapisat);
fclose($handle);
}}
$messages = file('messages.dat');
for($i=0;$i<=count($messages)-1;$i++) //проходим по всему массиву с сообщениями
{
list($time, $user, $body) = split('<split>',$messages___91;$i___93;); // разбиваем сообщение по разделителю "<split>" на дату,имя и сообщение
echo "<tr>";
echo "<td><b>$time</b><br>$user</td>";
echo "<td><i>$body</i></td>";
echo "</tr>";
//здесь значения даты,имени и сообщения форматируются HTML тэгами, для форматированного вывода в броузере
}
?>
</table>
</td>
</tr>
</table>
</body>
</html>