<p>I have:</p>

<pre><code>&lt;?php

$file=fopen(date("Y-m-d").".txt","r+") or exit("Unable to open file!");

if ($_POST["lastname"] &lt;&gt; "")
{
   fwrite($file,$_POST["lastname"]."\n");
}

fclose($file);

?&gt;
</code></pre>

<p>but it overwrites the beginning of the file.  How do I make it insert?</p>

I'm not entirely sure of your question - do you want to write data and not have it over-write the beginning of an existing file, or write new data to the start of an existing file, keeping the existing content after it?
To insert text without over-writing the beginning of the file
, you'll have to open it for appending (
```
a+
```
rather than
```
r+
```
)
```
```
$file=fopen(date("Y-m-d").".txt","a+") or exit("Unable to open file!");

if ($_POST["lastname"] <> "")
{
   fwrite($file,$_POST["lastname"]."\n");
}

fclose($file);
```
```
If you're trying to write to the start of the file
, you'll have to read in the file contents (see
```
file_get_contents
```
) first, then write your new string followed by file contents to the output file.
```
```
$old_content = file_get_contents($file);
fwrite($file, $new_content."\n".$old_content);
```
```
The above approach will work with small files, but you may run into memory limits trying to read a large file in using
```
file_get_conents
```
. In this case, consider using
```
rewind($file)
```
, which sets the file position indicator for handle to the beginning of the file stream. 
Note when using
```
rewind()
```
, not to open the file with the
```
a
```
(or
```
a+
```
) options, as:
If you have opened the file in append ("a" or "a+") mode, any data you write to the file will always be appended, regardless of the file position.