Hi,
I think the main problem could be the name of the hidden input. The default session name is PHPSESSID.
session_start() itself uses the configured session_name to find the session id info.
To make sure that the hidden input contains the correct name do something like this
<input type="hidden" name="<?php echo session_name(); ?>" value="<?php echo session_id(); ?>">
If php has been configured to use cookies only then adding the session data to a hidden input doesn't work.
If your php app is supposed to run on different servers I'd suggest to implerment some logic that checks the current session settings and behaves accordingly (regarding session_start(), hidden inputs and includes of e.g. class data that needs to be included before the session starts).
Thomas