Hola:
Exacto, como tu dices Cluster dejo a PHP propagar el SID,
tienes razon es mejor usar el $_SESSION resulta mas claro.
El registrar el SID era solo una forma de control para mi
se me olvido sacarlo.(sorry)
Este es el codigo completo que uso para validar a un usuario
y como creo una sesion.
Código PHP:
<?php //verifico que los campos esten llenos
if(!strcmp($login,"") or !strcmp($password,""))
{
//si hay un campo vacio lo redirecciono a la pagina de entrada y seteo
//el valor de error al ingresar
header("Location:http://localhost/portalhotelero/administrador/entrada.php?est=1");
exit;
}
else //me conecto a la BD
{
require_once('../includes/funciones.inc.php');
$conectate = conectarse();
$valida = mysql_query("Select * from user where nombre='$login' and pass='$password' and permiso= 'A' ")
or die ("Imposible ejecutar la consulta");
$num = mysql_num_rows ($valida);
$row= mysql_fetch_array($valida);
if (!$num)//verifico si hay un usuario registrado
{
mysql_free_result($valida);
mysql_close();
//si no lo hay redirecciono a la pagina de entrada e indico que hubo un error al ingresar
header("Location:http://localhost/portalhotelero/administrador/entrada.php?est=1");
exit;
}
else{//si las claves son correctas
//verifico si el usuario ya esta conectado
if ($row[estado]=='1'){ //si ya esta conectado lo redirecciono dandole un mensaje
header("Location: http://localhost/portalhotelero/administrador/userconectado.phpl]");
}
else{//si el usuario no esta conectado
//actualizo el campo estado a usuario activo
$actualizado = mysql_query("UPDATE user SET estado='1' WHERE nombre='$login' and pass='$password'")
or die ("Imposible actualizar datos de la consulta");
session_start();//inicio la sesion
$_SESSION[usuario] = 'AUTORIZADO';//autorizo al usuario a entrar
$_SESSION[nombre] = $row[nombre];
$_SESSION[codigo] = $row[codigo];
mysql_free_result($valida);
mysql_close();
header("Location:http://localhost/portalhotelero/administrador/index.php");
//redirecciono a la pagina principal
exit;
}
}
}
?>
y en cada pagina incluyo este codigo para seguir la sesion:
Código PHP:
<?php session_start();
if ($usuario!="AUTORIZADO"){
header("Location:http://localhost/portalhotelero/administrador/entrada.php?est=1");
exit(); } ?>
espero que esto sea suficiente para que puedas entender lo que trato de hacer.
Saludos