Я сделаю удар в темноте и угадаю, что, когда вы отправляете форму в другой поддомен, то есть вы набираете http://www.example.com, и отправляете на https://secure.example.comили тому подобное.
Если это так, необходимо убедиться, что домен cookie сеанса настроен на использование всех поддоменов вашего веб-сайта, а не только вашего текущего.Вы можете проверить это с помощью:
ini_get('session.cookie_domain');
// if this outputs something like "www.example.com" and you're submitting to
// "somethingelse.example.com", here's your problem.
Если он не установлен должным образом, вы можете установить его либо в php.ini, либо в ваших скриптах:
ini_set('session.cookie_domain', '.example.com'); // or...
session_set_cookie_params(ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), '.example.com');
session_start();
... или выможете просто убедиться, что вы используете один и тот же поддомен при отправке формы, поскольку редко есть веская причина использовать другой субдомен в этом контексте.
Или ваша проблема может быть совершенно не связана.В любом случае стоит проверить.
Но, как сказал @Kaustubh Karkare, безопасность передачи переменных сеанса через вашу форму идентична передаче их через cookie-файлы.А что касается практичности, это вполне разумный, если не часто используемый, способ передачи идентификаторов сеансов.