Cierto, el codigo parece correcto, lo unico que se me ocurre es que donde inicias la sesion hagas algo asi:
Código php:
Ver original
// Verificar si hay una sesion activa
if(isset($_SESSION['usuario'])) die('Tu sesion esta activa, no puedes iniciar sesion nuevamente.');
// Inicializar la matriz para eliminar cualquier dato que puediera contener
$usuario=$_POST['usuario'];
$contra=$_POST['contra'];
Si sigue sin funcionar, cambia la configuracion del script para que muestre todos los errores, usando
error_reporting(E_ALL); antes de
session_start(); para saber si hay alguna salida previa u otro error que impida que se cree la sesion.