Tampoco yo estoy seguro de que sea buena idea tratar de evitar regresar a una página. Pero algo puede intentarse:
login.php
Código PHP:
<?php
session_start();
if (isset($_SESSION['usuario']))
{
header('location: indice.php');
exit;
}
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['usuario']) && !empty($_POST['usuario']))
{
$_SESSION['usuario'] = $_POST['usuario'];
header('location: indice.php');
exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title> Inicio de sesión </title>
</head>
<body>
<h1>Inicio de sesión</h1>
<form method='post' action='<?php echo $_SERVER['PHP_SELF'];?>'>
Usuario <input type='text' name='usuario'>
<input type='submit'>
</form>
</body>
</html>
indice.php
Código PHP:
<?php
session_start();
if (!isset($_SESSION['usuario']))
{
header('location: login.php');
exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title> Página principal </title>
</head>
<body>
<h1>Página principal</h1>
<p>
Hola <?php echo $_SESSION['usuario']?>
</body>
</html>
La página para iniciar sesión (login.php) mira si ya se inició una, y de ser así, redirige a la página principal (indice.php). Ésta, a su vez, verifica que se hay iniciado sesión. De no ser así, manda a la de inicio. O sea, una a otra
se pasan la bolita.
// Saludos