Foros del Web » Programando para Internet » PHP »

sesiones

Estas en el tema de sesiones en el foro de PHP en Foros del Web. muy buenas chicos, ando estudiando las sesiones en PHP y necesitaba saber lo siguiente. Partiendo de una "tienda bien sencilla: Código PHP: <?php  // Manual de PHP de WebEstilo.com  session_start ...
  #1 (permalink)  
Antiguo 06/05/2003, 12:04
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
sesiones

muy buenas chicos, ando estudiando las sesiones en PHP y necesitaba saber lo siguiente. Partiendo de una "tienda bien sencilla:
Código PHP:
<?php // Manual de PHP de WebEstilo.com 
session_start(); 
session_register('itemsEnCesta'); 
if (
$item){ 
   if (!isset(
$itemsEnCesta)){ 
      
$itemsEnCesta[$item]=$cantidad
   }else{ 
      foreach(
$itemsEnCesta as $k => $v){ 
         if (
$item==$k){ 
         
$itemsEnCesta[$k]+=$cantidad
         
$encontrado=1
         } 
      } 
      if (!
$encontrado$itemsEnCesta[$item]=$cantidad
   } 

?> 
<html> 
<body> 
<tt> 
<form action="<?=$PHP_SELF."?".SID?>" method="post"> 
Dime el producto <input type="text" name="item" size="20"><br> 
Cuantas unidades <input type="text" name="cantidad" size="20"><br> 
<input type="submit" value="Añadir a la cesta"><br> 
</form> 
<? 
if (isset($itemsEnCesta)){ 
   echo
'El contenido de la cesta de la compra es:<br>'
   foreach(
$itemsEnCesta as $k => $v){ 
      echo 
'Artículo: '.$k.' ud: '.$v.'<br>'
   } 

?> 
</tt> 
</body> 
</html>
me gustaria saber para qué y qué significa la 4ª linea:
"if ($item){ "
lo digo por que siempre he usado PHP del modo: if ($item=='5') {
y no un sólo "if ($item){ "

Gracias
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #2 (permalink)  
Antiguo 06/05/2003, 13:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. de esto habló josemi una vez (no recuerdo el mensaje .. a ver si lee este mensaja y nos dá el link xD)

El caso que están usando $item como una especie de "booleano" .. lo cual no es correcto.

debería usarse

if (!empty($item)))

osese, si no está vacía y está declarada la variable ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 07/05/2003, 03:12
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
¡¡Claro!!, digamos que si $item no está definida no se efecuta el If, pero así todo, me quedo con tu modificación Cluster.

Una última cuestión con esto de las sesiones:

Vamos a ver si me he enterado + o - de cómo van; yo abro la sesión con session_register() y todas las variables registradas bajo esta sesión quedan guardadas temporalmente en el servidor hasta que se cierre la página o caduque.
Osease, que tengo un formulario con los campos nombre y apellidos, y todos los nombres y apellidos que escriba y "envíe" en este formulario quedarán guardados en la sesión.

¿Es así de simple? Luego se recuperan con un bucle del tipo:
foreach($itemsEnCesta as $k => $v){
echo 'Artículo: '.$k.' ud: '.$v.'<br>';
}

échenme un cable a ver si lo acabo de cojer.

Gracias
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #4 (permalink)  
Antiguo 07/05/2003, 07:25
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 16 años, 1 mes
Puntos: 5
jejeje el codigo ese me recuerda al del cursillo de webestilo.com jeje en la seccion de sesiones
__________________
Usuario registrado de Linux #288725
  #5 (permalink)  
Antiguo 07/05/2003, 11:43
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
jeje, por algún sitio hay que aprender...
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #6 (permalink)  
Antiguo 07/05/2003, 12:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
La sesion la "abres" (inicias o continuas con una session activa) con la función:

session_start() .. y a partir de ahí registras variables en la session (via tu session_register() .. por ejemplo) y lees el valor de alguna(s) de las variable(s) de sesión que tengas guardadas bajo ese SID (Identificador Único de Sesión).

Si vas a guardar en una sesion un Array .. debes de serializarla para guardarla en la sesión (registrarla) y "des"-serializarla cuando la quieras leer de la sesion ..

Ademas .. te recomiendo que NOOOO asumas las variables de sesión como globlales (y en general todas las "externas" a un script PHP) y que uses los arrays $_SESSION para registrar (en lugar de session_register() ) y para leer su valor (es un array .. "superglobal" le llama PHP)


En las FAQ's tienes unos ejemplos de uso de sesiones con esos "arrays superglobales" .. y lo de serializar consiste en usar las funciones serialize() y unserialize() ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:33.