No soi experto en php xD...pero.....
Yo ando con lo mismo y a mi me funciona de esta manera
Este codigo esta en un archivo validarsesion, el cual se ejecuta tras completar el formulario de login,almacenando las dos variables que quiero
Código PHP:
<?php
session_start();
$_SESSION['nick']=$_REQUEST['nick'];
$_SESSION['password']=$_REQUEST['password'];
Este codigo esta al inicio de todas mis paginas que necesitan de las variables de session, comprobando que la sesion sea valida y sino me manda a login otra vez
Código PHP:
<?php
session_start();
if ($_SESSION['nick']=="")
header("Location: index.php?errorlogin=3");
?>
Despues unicamente accedo a esos valores con $_SESSION[nick]
Y por si te ayuda, asi tengo mi validacion de sesion y funciona
Código PHP:
<?php
session_start();
$_SESSION['nick']=$_REQUEST['nick'];
$_SESSION['password']=$_REQUEST['password'];
$conexion=mysql_connect("localhost","user","password") or
die("Problemas en la conexion");
mysql_select_db("juego",$conexion) or
die("Problemas en la selección de la base de datos");
$registros=mysql_query("select nick,password from usuarios where nick='$_SESSION[nick]'",$conexion) or
die("Problemas en el select:".mysql_error());
if ($reg=mysql_fetch_array($registros))
{
if ($reg['password']==$_REQUEST['password']){
$registros=mysql_query("select idciudad from ciudad where propietario='$_SESSION[nick]'",$conexion) or die("Problemas en el select:".mysql_error());
if ($reg=mysql_fetch_array($registros))
$_SESSION['idciudad']=$reg['idciudad'];
header("Location: visiongeneral.php");
}
else{
header("Location: index.php?errorlogin=2");
}
}
else
{
header("Location: index.php?errorlogin=1");
}
mysql_close($conexion);
?>
Espero haber sido de ayuda ^^