De index.php .. deberías saltar (tu formulario enviar sus datos a...) un script que registre esa variable de sesión (y/o valide contra alguna BD o similar si es correcta o no) .. y de ahí pasar a (redireccionar) tu "segura.php"
En index.php .. no se va a registrar el valor de tu variable de sesión con una variable del formulario .. Ahí se vé que el action del formulairo apunta a un "segura1.php" .. no sé si será ese el script que hablo yo de "proceso" donde se debe registrar tu variable de sesión .. pero es ese el que necesitas.
index.php --> valida.php --> segura.php
valida.php
Código PHP:
<?
session_start();
if ($_POST['usuario']=="yo" && $_POST['password']=="secreto"){
$_SESSION['usuario']=$_POST['usuario'];
header ("Location: segura.php");
exit;
} else {
header ("Location: index.php?cod=error");
exit;
}
?>
Y en index.php .. tomamos si existe esa variable de control "cod" para mostrar algún mensaje de error en el mismo formulario de login:
Código PHP:
<?
if (isset($_GET['cod'])){
echo "Codigo: ".$_GET['cod'];
}
?>
Tu página "segura" .. podría validar simplemente tipo:
Código PHP:
<?php
session_start();
if(empty($_SESSION['usuario'])){
header ("Location: index.php?cod=error_acceso_incorrecto");
exit;
}
// resto de tu página ...
echo 'Te haz logueado como :'.$_SESSION['usuario'];
echo 'Haz logrado el acceso a una pagina segura';
Si te fijas no hace falta el "else" en el if .. por qué ya redireciono a otra página que mostrará el mensaje de error y termino la ejecución del script ahí mismo si la variable de sesión no existe.
Un saludo,