Ver Mensaje Individual
  #9 (permalink)  
Antiguo 16/12/2006, 19:01
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 23 años, 1 mes
Puntos: 129
Re: problemas con sessiones, en que estoy mal

Cita:
las session son variables o array globales, tengo entendido, se supone que con eso ya se pasan a las demas paginas sin recibirlas de formularios y todo eso, ahora la pregunta seria, si yo tengo por ejemplo esto
Te falta otro concepto muy importante que estás omitiendo: SID (Identificador Único de sesión) y que es el "responsable" de la "mágia" de por qué funcionan las sesiones. Esto es parte de la teoría de funcionamiento de las sesiones. El uso de sesiones de PHP no se basa exclusivamente en usar cierto código .. hay otros factores: configuración de la propagación del SID y configuración del cliente (Navegador y como acepte cookies si es que se usa propagación del SID en cookies) que afecta a como se comporte tu sistema basado en sesiones.

Cita:
si es asi, entonces si yo verifico que esta autorizado a entrar, entonces, ¿la impresion del usuario seria de la siguiente manera?
Técnicamente sería:

Código PHP:
<?
// INICO uso sesiones, esto es necesario si o sí siempre que accedas a tus variables de sesión ya sea para darles valor o para acceder a su valor.
session_start();

if(empty(
$_SESSION['user']))
{
die (
"Aquí no estás autorizado");
}

echo 
"USUARIO: ".$_session['user']."<br>";
echo 
"USUARIO: ".$_session['pass'];
?>
Fijate que NO uso esa variable que defines como "Autentificado" .. ese tipo de uso de validaciones de variables de sesión es totalmente redundante. Según el comportamiento de una sesión .. la cual permacene asociada al cliente que las crea .. en el momento que "exista" una variable de sesión (alguna que definas) .. ya se creó tu sesión y por ende ya existe, así que si tu propagas en tu sesión N variables .. no es necesario que añadas una más .. ya tienes otras dos al menos que puedes usar (como yo usé en el ejemplo el "user"). También propagar el "pass" en una variable de sesión no tiene mucho sentido .. tu nunca más vas a usar ese par de "user/pass" para validar contra una BBDD o similar .. te vas a basar y así confiaras en tu sesión creada y validada.

Por lo demás .. no uses tanta asiganción de variable de $_SESSION .. a $variable .. usa directamente el array en tus condicionales, sino podrías tener problemas al ser asumidas como "globales", confundiendose con otras variables definidas en tu script o incluso inyectadas por GET o POST.

Cita:
sin la necesidad de recogerlos con POST o GET...
Ya no es que "sin necesidad" sino que en POST o en GET ya no están esos valores en los sub-siguientes scripts que redireccionas .. para eso ya defines variables de sesión y el sistema de sesioens en si de PHP y si se consigue propagar el SID hará su trabajo de dejarte disponible en $_SESSION tus variables de sesión por lo que dure esta.

Te recomiendo leer una vez más sobre sesiones en www.php.net/session .. ya sé que es un manual de "referencia" .. pero ahí está toda la teoría que -todos- los manuales/tutoriales/faq's que puedas ver se basaron. Ten presente que en el uso de sesiones la -configuración- de PHP afecta mucho a como se comporten (por qué ahí definies como propagar el "SID") .. De hecho en mucho tutorial sobre sesiones se les "olvida" (no sé si intencionalmente o no ..) este "detallazo" y por eso suelen venir muchos problemas de "por qué mi código funciona en tal servidor y en otro no".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.