[development] transferring session info across login event
Daniel F. Kudwien
news at unleashedmind.com
Sat Jul 26 01:04:09 UTC 2008
> To clarify, the issue I wrote about isn't related to
> $_SESSION, it's modules that store data in a separate table
> with session id as the key (as e-commerce does). It seems
> this may be a flawed data model unless there is some means
> for modules to respond to regenerated session ids.
Did you already try:
function mymodule_form_alter($form_id, &$form) {
if ($form_id == 'user_login' || $form_id == 'user_login_block') {
$form['submit'] = array('mymodule_pre_submit' => array());
$form['submit']['mymodule_post_submit'] = array();
}
}
function mymodule_pre_submit($form_id, $form_values, $return) {
static $backup = array();
if ($return) {
return $backup;
}
// Backup session data here
$backup = ...
// Invoke user login (hook_user)
user_login_submit(...);
}
function mymodule_post_submit($form_id, $form_values) {
// Reset session data
$restored = mymodule_pre_submit(NULL, NULL, TRUE);
}
? Just an idea.
But yes, dealing with hook_user() forms is quite a mess...
More information about the development
mailing list