Yo tengo un código parecido pero no logro hacerlo funcionar, a ver si alguien puede echarle un vistazo y descubrir qué estoy haciendo mal.
 
Tengo mi página index.php, en la que quiero mostrar un formulario de inicio de sesión para los usuarios no registrados, y un mensaje de bienvenida al iniciar sesión.  
 Código PHP:
    <?php
    session_start();
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 
<head>
    <title>Index</title>
    <link rel="stylesheet" href="global.css" type="text/css" />
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
 
<body id="container">
 
<?php
    include("conexion.php");
 
    if(empty($_SESSION['login']))
    {
    echo "<form action='login.php' method='post'>";
    echo "<table class='tabla_login'>";
    echo "<tr>";
    echo "<td>Usuario:</td>";
    echo "<td><input type='text' name='user' size='20' maxlength='20' /></td>";
    echo "<td>Contraseña:</td>";
    echo "<td><input type='password' name='password' size='20' maxlength='20' /></td>";
    echo "<td><input class='button' type='submit' name='submit' value='Entrar' /></td>";
    echo "</tr>";
    echo "</table>";
    echo "</form>";
    }
    else
    {
    echo "Bienvenido, ".$user.".";
    }
?>
 
Acá sigue más código html...   
  Y tengo la página login.php que procesa la información:  
 Código PHP:
    <?php
    ob_start();
    include("conexion.php");
 
    $user=$_POST['user'];
    $password=$_POST['password'];
    
    $user=stripslashes($user);
    $password=stripslashes($password);
    $user=mysql_real_escape_string($user);
    $password=mysql_real_escape_string($password);
    
    $sql="SELECT * FROM usuarios WHERE user='$user' AND password='$password'";
    $result=mysql_query($sql);
    $count=mysql_num_rows($result);
    
    if($count==1)
    {
    $_SESSION['login']='1';
    session_register("password"); 
    header("location:index.php");
    }
    else
    {
    $_SESSION['login']='';
    echo "Usuario y/o contraseña inválidos.";
    }
    ob_end_flush();
?>    
  Lo que pasa ahora es que al iniciar sesión (con un usuario y contraseña válidos, claro) me regresa a index.php pero sigue mostrando los campos para iniciar sesión y no aparece la bienvenida por ningún lado.  A ver si alguien me da una pista. 
Gracias.