il problema era ovviamente nel redirect. Nel forum ho trovato questa funzione:
codice:
function redirect($s,$url)
{
$parse_url = parse_url ( $url );
$s = $s > 0 ? $s : 0;
$host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : (isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : '');
$parse_url['scheme'] = isset($parse_url['scheme']) ? $parse_url['scheme'] : 'http';
$parse_url['host'] = isset($parse_url['host']) ? $parse_url['host'] : $host;
$parse_url['path'] = isset($parse_url['path']) ? $parse_url['path'] : '';
$parse_url['query'] = isset($parse_url['query']) ? $parse_url['query'] : '';
$parse_url['fragment'] = isset($parse_url['fragment']) ? $parse_url['fragment'] : '';
if (substr($parse_url['path'], 0, 1) != '/') {
$parse_url['path'] = dirname($_SERVER['PHP_SELF']) . '/' . $parse_url['path'];
}
if (session_id() !== '') {
if ($parse_url['query'] !== '') {
$parse_url['query'] = $parse_url['query'] . '&';
}
$parse_url['query'] = '?' . $parse_url['query'] . session_name () . '=' . session_id();
}
if ($parse_url['fragment'] !== '') {
$parse_url['fragment'] = '#' . $parse_url['fragment'];
}
$url = $parse_url['scheme'] . '://' . $parse_url['host'] . $parse_url['path'];
session_write_close();
header("location:" );
exit();
}
Qualche anima pia potrebbe darmi delucidazioni su cosa succede in questa parte:
codice:
if (substr($parse_url['path'], 0, 1) != '/') {
$parse_url['path'] = dirname($_SERVER['PHP_SELF']) . '/' . $parse_url['path'];
}
if (session_id() !== '') {
if ($parse_url['query'] !== '') {
$parse_url['query'] = $parse_url['query'] . '&';
}
$parse_url['query'] = '?' . $parse_url['query'] . session_name () . '=' . session_id();
}
if ($parse_url['fragment'] !== '') {
$parse_url['fragment'] = '#' . $parse_url['fragment'];
}
grazie mille.