your just missing a step
<?
session_start();
$something=$HTTP_POST_VARS["something"];
$something=$HTTP_POST_VARS["something2"];
session_register('something');
session_register('something2');
//output them
echo $something=$HTTP_SESSION_VARS["something"];
echo $something=$HTTP_SESSION_VARS["something2"];
?>
as far as register_globals being a security hazard, you could still use register_globals but grab important data from the various arrays like $HTTP_SESSION_VARS but it is much easier to create a security hazard for yourself, where with them off you are forced to do the right thing. Personally I have them off, I do run this code if I want them on in a particular script
<?
### register_globals = off ### +++
//HTTP_GET_VARS
while (list($key, $val) = @each($HTTP_GET_VARS)) {
$GLOBALS[$key] = $val;
}
//HTTP_POST_VARS
while (list($key, $val) = @each($HTTP_POST_VARS)) {
$GLOBALS[$key] = $val;
}
//HTTP_POST_FILES
while (list($key, $val) = @each($HTTP_POST_FILES)) {
$GLOBALS[$key] = $val;
}
//$HTTP_SESSION_VARS
while (list($key, $val) = @each($HTTP_SESSION_VARS)) {
$GLOBALS[$key] = $val;
}
### register_globals = off ### ---
?>
that will register globals for you. I find it useful to do post/get vars and normally I leave the session/misc private and access them through the arrays.