запись в файл данных из формы

<?php
/*
*ЗАПИСЬ В ФАЙл данных из формы
*автор: nc_soft
*10.11.07
*/

//переменная ошибок
$error=array();

//обработчик формы
if (!empty($_POST))
{
    //проверка параметра
    //функция str_replace() необходима чтобы вырезать переводы строк ( \n ) 
    $var=str_replace("\n",'',trim($_POST['var']));
    if (empty($var))
    $error['empty']='не введен параметр';
    

    //если все нормально пишем в файл
    if (empty($error))
    {
        //открываем
        $f=fopen('db.txt','a+');
        
        //блокируем
        flock($f,2);
        
        //запись с переводом строки
        fwrite($f,$var."\n");
        
        //закрытие
        fclose($f);
        
        /*переадресация , чтобы сбросить пост, это нужно чтобы при нажатии кнопки обновить 
         данные не добавились вновь*/
        header('Location: '.$_SERVER['SCRIPT_NAME'].'?ok=1');
        die();
    }
}

//если есть ошибки выводим
if (!empty($error))
echo '<p>'.implode('<br />',$error).'</p>';

if (isset($_GET['ok']))
echo '<p>данные записаны</p>';

//сама форма
?>
<form action="<?=$_SERVER['SCRIPT_NAME'];?>" method="post">
<p>
введите параметр:<br />
<input name="var" value="<?=isset($_POST['var']) ? htmlspecialchars(stripslashes(trim($_POST['var']))) : '';?>" /><br />
<input type="submit" value="отправить" />
</p>
</form>

<?php
/*
Примечания:

Для сбора ошибок используется именно массив, потому что удобно впоследствии выводить их через <br /> или списком, 
в ключе ммассива также можно указать причину $error['empty']='не введен параметр';

параметр value у input записан так, чтобы при ошибочном вводе получить в форме то, что ввел юзер, раздражают формы, 
когда пишешь, пишешь, ошибаешься в одном поле и все приходится вводить заново.

*/
?>