Article View: chile.comp.programacion
Article #2180Re: cookies y sesiones en php
From: Jos� Miguel Santib��ez
Date: Mon, 27 Feb 2006 20:43
Date: Mon, 27 Feb 2006 20:43
107 lines
5121 bytes
5121 bytes
En el cap�tulo anterior (news:dtv93g$4nj$1@news.nivel5.cl), "Rick_oj"
<rick_oj@[sin-esto]tutopia.com> dijo:
> voy a revisar la documentacion, pero repito no entiendo como usar las
> variables si tienes un ejemplo de sesion y cookies "for dummies" en php
> te lo agradeceria
para variables de sesion:
<?
session_start(); // Esto tiene que ser lo primero de la p�gina
// casi antes de cualquier otra cosa
$_SESSION["var1"] = 'mi valor';
?>
// si consultas el contenido de $_SESSION["var1"] en cualquier otra p�gina,
// debiera responder "mi valor"...
ejemplo1: setea valor de variable de sesion:
--- 8< ------ 8< ------ 8< ------ 8< ------ 8< ------ 8< ------ 8< ---
<? session_start();
if (isset($_POST["variable"]))
$_SESSION["mivar"] = $_POST["variable"];
?>
<html><body>
La variable de sesion tiene el valor: <? echo $_SESSION["mivar"]; ?> <p>
<hr>
<form method=post>
Ingrese nuevo valor:
<input name=variable value='<? echo $_SESSION["mivar"]; ?>'>
<input type=submit>
</form></body></html>
--- 8< ------ 8< ------ 8< ------ 8< ------ 8< ------ 8< ------ 8< ---
ejemplo2: solo lee variable de sesion: (si lo llamas a mano, despu�s del
anterior, igual "conoce" el valor...
--- 8< ------ 8< ------ 8< ------ 8< ------ 8< ------ 8< ------ 8< ---
<? session_start();
?>
<html><body>
La variable de sesion tiene el valor: <? echo $_SESSION["mivar"]; ?> <p>
</body></html>
--- 8< ------ 8< ------ 8< ------ 8< ------ 8< ------ 8< ------ 8< ---
ejemplo3: setea valor de COOKIE:
--- 8< ------ 8< ------ 8< ------ 8< ------ 8< ------ 8< ------ 8< ---
<?
if (isset($_POST["variable"]))
setcookie("mivar", $_POST["variable"]);
// esta cookie est� definida para desaparecer cuando cierras el browser
?>
<html><body>
La cookie tiene el valor: <? echo $_COOKIE["mivar"]; ?> <p>
<hr>
<form method=post>
Ingrese nuevo valor:
<input name=variable value='<? echo $_COOKIE["mivar"]; ?>'>
<input type=submit>
</form></body></html>
--- 8< ------ 8< ------ 8< ------ 8< ------ 8< ------ 8< ------ 8< ---
Eso muestra una de las "complicaciones" de las cookies, si seteas el valor,
NO queda inmediatamente disponible en el arreglo $_COOKIE, pero en cuanto
recargas la p�gina, ya est�...
Igual eso se arregla f�cil con:
ejemplo3: setea valor de COOKIE y $_COOKIE:
--- 8< ------ 8< ------ 8< ------ 8< ------ 8< ------ 8< ------ 8< ---
<?
if (isset($_POST["variable"])) {
setcookie("mivar", $_POST["variable"]);
$_COOKIE["mivar"] = $_POST["variable"];
}
// esta cookie est� definida para desaparecer cuando cierras el browser
?>
<html><body>
La cookie tiene el valor: <? echo $_COOKIE["mivar"]; ?> <p>
<hr>
<form method=post>
Ingrese nuevo valor:
<input name=variable value='<? echo $_COOKIE["mivar"]; ?>'>
<input type=submit>
</form></body></html>
--- 8< ------ 8< ------ 8< ------ 8< ------ 8< ------ 8< ------ 8< ---
Notas relevantes:
Cuando usas variables de sesi�n, el "session_start" tiene que estar _antes_
de que se escriba nada en pantalla (generalmente al principio). Sin
embargo, una vez que lo hiciste, puedes setear cualquier variable de
sesi�n, en cualquier parte del c�digo (incluso setear y resetear m�s de una
vez).
Cuando usas COOKIES, todos los setcookie deben estar _antes_ de que se
escriba nada en pantalla. Una vez que escribiste algo, ya no puedes
modificar una cookie... (salvo que uses las instrucciones ob_ )
Como dec�a antes, las cookies son menos seguras (nunca guardes una password
en una cookie) ya que es info que se envia del browser al server cada vez
que hay una petici�n (sea una p�gina, una imagen, etc).
Pero las variables de sesi�n hacen m�s "pesado" al servidor (y otro usuario
de la m�quina, podr�a tener acceso a la informaci�n as� guardada!)
--
Jose M. Santiba�ez A.
<jms@nivel5.cl>
<http://caos.cl/jms>
Technical Details
Message-ID:
<Xns9777A9F7C245Cjmsnews@200.27.221.71>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news3.google.com!news.glorb.com!nntp-server.pubsub.com!news.nivel5.cl!news.vcd.cl!not-for-mail!not-for-mailReferences:
<dttr1e$os2$1@news.nivel5.cl> <Xns977712975B9D7jmsnews@200.27.221.71> <dtv93g$4nj$1@news.nivel5.cl>Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,20f8d231c58fb479
X-Google-Attributes: gid1593cb,public
X-Google-Language: SPANISH,ASCII
Newsgroups: chile.comp.programacion
Subject: Re: cookies y sesiones en php
From: "Jos� Miguel Santib��ez" <jms.nospam@nivel5.cl>
References: <dttr1e$os2$1@news.nivel5.cl> <Xns977712975B9D7jmsnews@200.27.221.71> <dtv93g$4nj$1@news.nivel5.cl>
Organization: Caos Consultores
Message-ID: <Xns9777A9F7C245Cjmsnews@200.27.221.71>
User-Agent: Xnews/5.04.25
X-Face: +|NgjgFM{<rs%\Q|vUu16]a6,}?MJTA<!PEEI+x&Gw-Gyq+?$}fvo+.(,-r;)~Qzn)#{{nxU,OT?w^s<7m4ckCJ*L$c#I)yHL7b)GdU*#l
NNTP-Posting-Host: 2-81-112.adsl.terra.cl
X-Original-NNTP-Posting-Host: 2-81-112.adsl.terra.cl
Date: 27 Feb 2006 16:43:38 -0400
X-Trace: news.vcd.cl!not-for-mail 1141069418 200.112.81.2 (27 Feb 2006 16:43:38 -0400)
X-Original-Trace: 27 Feb 2006 16:43:38 -0400, 2-81-112.adsl.terra.cl
Lines: 107
X-Authenticated-User: jms
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news3.google.com!news.glorb.com!nntp-server.pubsub.com!news.nivel5.cl!news.vcd.cl!not-for-mail!not-for-mail