Here's something that only took me 6 fucking hours to debug.

Apparently Firefox 3.0 has this great little "feature" where if you've got an tag with src="" it'll just re-request the page for each tag. The fun part is that it won't re-request the page with the same parameters so you get some really weird shit happening.

Like let's say you've got a page displaying a form with a blank image tag:

    <form action="create_user.php">
    <input name="user_name" type="text"/>
    <img src="" alt="User pic"/>
    <input name="user_path_to_image" type="text">
    <input type="submit" name="form_commit" value="Apply"/>
    <input type="submit" name="form_commit" value="Create"/>
    </form>

Ok so let's say you decide to set the user's name to "Jay" and hit apply. As you can see, clicking both buttons submit to the same script. The script checks to see if "Apply" was clicked and if it was, updates the user data and redisplay the form. If howerver you click the "Create" button it'll create the user and redirect elsewhere.

Here's the fun part. When you click "Apply" and the page is redisplayed, Firefox sees the blank src in the tag, re-requests the page but this time without saying what button was clicked (because none was) which will create a new user with no name set. Of course you don't see that because it was done behind the scenes. All you see is your updated user data and then there's this magical blank user sitting in your database. Awesome.

This appears to be fixed in 3.5 Beta 4 and doesn't happen in either IE 7 or Safari.

The only reason I figured out what it was thanks to this site: http://forums.mozillazine.org/viewtopic.php?f=25&t=427184

What a pain in the ass.