1. Ah, great!
2. A queue would be good. Alternatively, you could lock the file exclusively before doing anything, thus preventing the problem altogether. This will be less efficient, but is also a lot easier to write. Perhaps you could use that approach until you come up with a queue system to avoid any potential problems?
3. I'm just thinking that if the limit on usernames and passwords are arbitrarily chosen, they might as well be taken away.. Or at least set to something like 256 characters. I know people with passwords longer than 20 chars, which is easy to reach if you have a strong password and use password prefixing (passwordadvisor.com/…
With regards to post lengths, I see where you're coming from, and 32k characters should probably be enough.. But perhaps at least make it a configuration option like the number of posts per page?
4. I didn't know file_get_contents was cached by PHP? Doesn't say anything about it in the documentation?
The single example I gave was just to illustrate the point that there are use cases for multiple calls to isMod, and thus caching it might not be a bad idea.. Though I suppose considering you want to keep this forum extremely basic in functionality, it is not likely to get much larger, and thus it might not be needed in the foreseeable future..
That said, making moderators "visible" is not necessarily a bad idea, as it makes it easier for normal users to spot who they might contact if they want to raise a question/concern.
Apart from that, as you mention in the To-Do, edit/append would be a good addition (especially for things like spelling errors). At the moment the post formatting function is simple enough that it can be reversed, so edit should also be possible as it is.
-- Jon