Si te fijas en tu código no geneas la variable "$_SESSION['usuario']" sólo la de "autentificado" .. que por otro lado NO tiene sentido si lo que te interesa en general es una variable de sesión que poder verificar su existencia y como es tu caso que contenga el nombre del usuario (que lo obtienes de consulta SQL a tu BBDD o del login en sí).
En tu logín .. simplemente define tu variable de sesion "usuario".
Código PHP:
$_SESSION['usuario']=$usario;
header("location: segura.php");
exit;
Como veras NO propago el SID .. habiamos quedado en que ivamos a propagar el SID en cookies, para eso están esos ini_set() donde "forzamos" a propagar el SID en cookies.
Si así no te llegase a funcionar pero sí con el SID propagado en el URL (con el .SID ..) entonces el problema está en el "cliente" a nivel de aceptación de cookies .. (eso lo veremos si corresponde).
OJO también de donde sale $usuario .. si llega de tu formulario -debes- usar $_POST['usuario'] o el array superglobal que corresponda según el método que uses de envio (GET/POST).
También es recomendable validar ese dato y filtrarlo .. desde un simple trim() hasta un mysql_real_escape_string() aplicado a tu variable en tu sentencia SQL por tu seguridad ...
En tu segura.php ..
Código PHP:
<?php
session_start();
if(!empty($_SESSION['usuario']))
{
/* La funcion empty() devuelve verdadero si el argumento posee un valor vacio,
al usar !empty() devuelve verdadero no solo si la variable fue declarada sino
ademas si contiene algun valor no nulo.
*/
echo 'Te haz logueado como :'.$_SESSION['usuario'];
echo 'Haz logrado el acceso a una pagina segura';
}
else
{
echo 'No estas logueado<br>';
echo 'Esta pagina es restringida!';
}
?>
Te fijas que con una variable -sobra- para validar?
(PD: Intenta usar el botón "PHP" cuando coloques código PHP .. se facilita su lectura como veras (ya lo modifiqué yo por ahora ..).
Un saludo,