Matik, I don't think you actually are being logged in. It may look like you are because the login page disappears, but look at the top of your page - the Login link is still present (after logging in it should change to Logout).
I have seen this problem before and this is the solution:
Don't use http://server_name/virtual_directory as the address of your site when you are working on a DNN site that is on your own PC or on the local network (where server_name is the name of the web server). Use http://localhost/virtual_directory if the DNN site that is on your own PC, or use http://ip_address/virtual_directory if the DNN site that is on a server on the local network.
I have no idea why, but if you use the web server's name to reach a site, you cannot submit the login page successfully. This is not a DotNetNuke problem - I also have this problem with other ASP.NET sites and even classic ASP sites.
Note: before using http://localhost/virtual_directory or http://ip_address/virtual_directory to reach your site, make sure that they have been set up as alternative aliases to the site. This is usually done by the Host login through the Portals page of DNN. Of course you cannot login to do this, so your only choice is to add them directly to the appropriate table in the SQL database. The table is called PortalAlias, and you need to add additional records for the PortalID of your site, so the table will look something like this when you are done:
PortalAliasID PortalID HTTPAlias
------------- ----------- ------------
1 0 server_name/virtual_directory
2 0 localhost/virtual_directory
3 0 ip_address/virtual_directory
Important: DNN will not recognise that you have made these additions until you restart the DNN application. The quickest way to cause a restart is to open the web.config file (which is in the root DNN folder) in Notepad, click File, Save (without making any changes), close the file, wait 10s, then browse to the site.