Foros del Web » Programando para Internet » PHP »

variables de sesion

Estas en el tema de variables de sesion en el foro de PHP en Foros del Web. Hola a todos, acudo una vez mas a ustedes por que no se como se trabaja con las variablas y los array... mi idea es ...
  #1 (permalink)  
Antiguo 27/10/2011, 17:17
 
Fecha de Ingreso: agosto-2010
Ubicación: mexico
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta variables de sesion

Hola a todos, acudo una vez mas a ustedes por que no se como se trabaja con las variablas y los array... mi idea es hacer un carro de compras pero no quiero script sin no lo quiero hacer por el mi propio y asi aprender. Eh analisado codigos pero no entiendo el array en las sesiones .....

En la web hay un ejemplo muy claro pero eh intente colocar un dato mas que no me aparece que es el precio y no se por que, segun yo es el foreach pero no se como trabajarlo...


Espero como siempre su valiosa ayuda.

para que me muestre los valores del item, cantidad y el precio.

Código PHP:
<?php // Manual de PHP de WebEstilo.com 
session_start(); 
session_register('itemsEnCesta'); 
$item=$_POST['item']; 
$cantidad=$_POST['cantidad']; 
$precio=$_POST['precio'];

$itemsEnCesta=$_SESSION['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
   } 

$_SESSION['itemsEnCesta']=$itemsEnCesta
?> 
<html> 
<body> 
<tt> 
<form action="#" method="post"> 
Dime el producto <input type="text" name="item" size="20"><br> 
Cuantas unidades <input type="text" name="cantidad" size="20"><br> 
Precio<input type="text" name="precio" 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.' Precio: '.$Precio.' <br>'
   } 


?>


</tt> 
</body> 
</html>
  #2 (permalink)  
Antiguo 27/10/2011, 23:27
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: variables de sesion

Es realmente sencillo, en este caso tendras que crear un Array Multidimensional con el item, el precio y la cantidad....

Código PHP:
Ver original
  1. <?php // Manual de PHP de WebEstilo.com
  2.  
  3. //Session register esta obsoleto a partir de PHP 5.3.x se desaconseja usarlo!!!
  4. //session_register('itemsEnCesta');
  5.  
  6.  
  7.  
  8. if (isset($_POST['item'])){
  9.     $item=$_POST['item'];
  10.     $cantidad=$_POST['cantidad'];
  11.     $precio=$_POST['precio'];
  12.  
  13.     $itemsEnCesta=$_SESSION['itemsEnCesta'];
  14.  
  15.    if (empty($itemsEnCesta)){
  16.        //Aquí guardamos el item, pero en vez de indicar como valor la cantidad indicamos un array
  17.        //con los valores "cantidad" y "precio"
  18.       $itemsEnCesta[$item]=array(
  19.           'cantidad'=>$cantidad,
  20.           'precio'=>$precio
  21.       );
  22.  
  23.    }else{
  24.        
  25.       //obtenemos el item
  26.       $searchItem = $itemsEnCesta[$item];
  27.  
  28.       //verificamos si existe o no el item en el carrito
  29.       if (empty($searchItem)) {
  30.           //si no existe agregamos el item con la cantidad y su precio
  31.           $itemsEnCesta[$item] = array(
  32.               'cantidad'=>$cantidad,
  33.               'precio'=>$precio
  34.           );
  35.       }else {
  36.           //si existe el item solo aumentamos la cantidad
  37.           $itemsEnCesta[$item]['cantidad'] += $cantidad;
  38.       }
  39.    }
  40.  
  41.    //guardamos los cambios en la sesión
  42.    $_SESSION['itemsEnCesta']=$itemsEnCesta;
  43. }

Le hice unos cambios a tu código con lo cual evitaras hacer trabajar demás a PHP si no se ah enviado una solicitud de agregar items a la sesión
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 28/10/2011, 09:59
 
Fecha de Ingreso: agosto-2010
Ubicación: mexico
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta Respuesta: variables de sesion

hola

Muchas gracis por el tips.

Pero aun no eh podido hacerlo creo que estoy mal aml espero me puedas ayudar y si es posible explicar.


Código PHP:
<?php // Manual de PHP de WebEstilo.com 
session_start();
 
 
//Session register esta obsoleto a partir de PHP 5.3.x se desaconseja usarlo!!!
 //session_register('itemsEnCesta');

 
if (isset($_POST['item'])){    $item=$_POST['item'];
 
$cantidad=$_POST['cantidad'];
 
$precio=$_POST['precio'];
 
$itemsEnCesta=$_SESSION['itemsEnCesta'];
 if (empty(
$itemsEnCesta)){
  
//Aquí guardamos el item, pero en vez de indicar como valor la cantidad indicamos un array18.  
  //con los valores "cantidad" y "precio"
  
$itemsEnCesta[$item]=array(
  
'cantidad'=>$cantidad,
  
'precio'=>$precio      );
  }else{
  
//obtenemos el item27. 
  
$searchItem $itemsEnCesta[$item];
  
//verificamos si existe o no el item en el carrito
  
if (empty($searchItem)) {
  
//si no existe agregamos el item con la cantidad y su precio32.    
  
$itemsEnCesta[$item] = array(
  
'cantidad'=>$cantidad,
  
'precio'=>$precio          );
  }else {
  
//si existe el item solo aumentamos la cantidad38.   
  
$itemsEnCesta[$item]['cantidad'] += $cantidad;
  }
  }
    
//guardamos los cambios en la sesión
    
$_SESSION['itemsEnCesta']=$itemsEnCesta;
    }
$_SESSION['itemsEnCesta']=$itemsEnCesta
?> 
<html> 
<body> 
<tt> 
<form action="#" method="post"> 
Dime el producto <input type="text" name="item" size="20"><br> 
Cuantas unidades <input type="text" name="cantidad" size="20"><br> 
Precio<input type="text" name="precio" 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 $cantidad => $precio){ 
   
      echo 
'Artículo: '.$item.' ud: '.$cantidad.' Precio: '.$Precio.' <br>'
   } 


?>


</tt> 
</body> 
</html>
Este es el resultado

Código PHP:
El contenido de la cesta de la compra es:
Artículojabon udPrecio
Artículojabon udmixote Precio
Artículojabon udjabon Precio
  #4 (permalink)  
Antiguo 28/10/2011, 10:46
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: variables de sesion

Esta mal la forma en la que quieres mostrar los items existentes en la sesión...

Hay un cambio en el código:

Código PHP:
Ver original
  1. <?php // Manual de PHP de WebEstilo.com
  2.  
  3. //Session register esta obsoleto a partir de PHP 5.3.x se desaconseja usarlo!!!
  4. //session_register('itemsEnCesta');
  5.  
  6. //Sacamos $ItemsEnCesta del if para tener acceso a el aunque no se envie el formulario
  7. $itemsEnCesta=$_SESSION['itemsEnCesta'];
  8.  
  9. if (isset($_POST['item'])){
  10.     $item=$_POST['item'];
  11.     $cantidad=$_POST['cantidad'];
  12.     $precio=$_POST['precio'];
  13.  
  14.    if (empty($itemsEnCesta)){
  15.        //Aquí guardamos el item, pero en vez de indicar como valor la cantidad indicamos un array
  16.        //con los valores "cantidad" y "precio"
  17.       $itemsEnCesta[$item]=array(
  18.           'cantidad'=>$cantidad,
  19.           'precio'=>$precio
  20.       );
  21.  
  22.    }else{
  23.        
  24.       //obtenemos el item
  25.       $searchItem = $itemsEnCesta[$item];
  26.  
  27.       //verificamos si existe o no el item en el carrito
  28.       if (empty($searchItem)) {
  29.           //si no existe agregamos el item con la cantidad y su precio
  30.           $itemsEnCesta[$item] = array(
  31.               'cantidad'=>$cantidad,
  32.               'precio'=>$precio
  33.           );
  34.       }else {
  35.           //si existe el item solo aumentamos la cantidad
  36.           $itemsEnCesta[$item]['cantidad'] += $cantidad;
  37.       }
  38.    }
  39.  
  40.    //guardamos los cambios en la sesión
  41.    $_SESSION['itemsEnCesta']=$itemsEnCesta;
  42. }

Ahora mostramos los items

Código PHP:
Ver original
  1. foreach($itemsEnCesta as $item => $info) {
  2.       echo 'Item: '.$item.' - precio: '. $info['precio'] .' - cantidad: '. $info['cantidad'];
  3. }

Nota: Te sugiero que busques información sobre arrays y leas la documentación
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #5 (permalink)  
Antiguo 28/10/2011, 10:55
 
Fecha de Ingreso: agosto-2010
Ubicación: mexico
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
De acuerdo Respuesta: variables de sesion

muchas gracias... eso es lo que yo queria saber como mostrar como funciona me has ayudado mucho ...


Espero contar con tu ayuda toda via . y si me empapare de informacion sobre los array.

  #6 (permalink)  
Antiguo 07/11/2011, 12:28
 
Fecha de Ingreso: agosto-2010
Ubicación: mexico
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta Respuesta: variables de sesion

Hola como siempre espero su valiosa ayuda estoy tratando de hacer un conteo de los item que voy a gregando pero no me muestra nada en mi etiqueta div....

Les dejo el codigo para que le echen un vistaso

Help ......

Código PHP:
<?php // Manual de PHP de WebEstilo.com  
session_start(); 
  
 
//Session register esta obsoleto a partir de PHP 5.3.x se desaconseja usarlo!!! 
 //session_register('itemsEnCesta'); 

 
if (isset($_POST['item'])){    


 
 
$item=$_POST['item']; 
 
$cantidad=$_POST['cantidad']; 
 
$precio=$_POST['precio']; 
 
 
$itemsEnCesta=$_SESSION['itemsEnCesta']; 
 
 if (empty(
$itemsEnCesta)){ 
  
//Aquí guardamos el item, pero en vez de indicar como valor la cantidad indicamos un array18.   
  //con los valores "cantidad" y "precio" 
  
$itemsEnCesta[$item]=array( 
  
  
'cantidad'=>$cantidad
  
'precio'=>$precio      ); 
  }else{ 
  
//obtenemos el item27.  
  
$searchItem $itemsEnCesta[$item]; 
  
//verificamos si existe o no el item en el carrito 
  
if (empty($searchItem)) { 
  
//si no existe agregamos el item con la cantidad y su precio32.     
  
$itemsEnCesta[$item] = array( 
  
  
'cantidad'=>$cantidad
  
'precio'=>$precio          ); 
  }else { 
  
//si existe el item solo aumentamos la cantidad .    
  
$itemsEnCesta[$item]['cantidad'] += $cantidad;
  
  
$sesiones count ($itemsEnCesta[$item]['item'] += $item);

     
$sumaO;

$_SESSION['total'] = $suma $sesiones

  
  } 
  } 
    
//guardamos los cambios en la sesión 
    
$_SESSION['itemsEnCesta']=$itemsEnCesta
    } 
  
$_SESSION['itemsEnCesta']=$itemsEnCesta
?>  
<html>  
<body>  
<tt>  
<form action="#" method="post">  
Dime el producto <input type="text" name="item" size="20"><br>  
Cuantas unidades <input type="text" name="cantidad" size="20"><br>  
Precio<input type="text" name="precio" 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 $item => $info){  
    
      echo  
' Artículo: '.$item.' ud: '.$info['cantidad'].' Precio: '.$info['precio'].' ';  
      echo 
'<a href="borrar.php?nombre<?'.$item.'?>">Salir</a> <br>';
      
      
      
   }  
}  

?> 
<div>Total:<?      
     $_SESSION
['total'];
       
?></div>

</tt>  
</body>  
</html>
  #7 (permalink)  
Antiguo 07/11/2011, 16:40
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: variables de sesion

Estas intentando sumar una cantidad que no existe "$itemEnCesta[$item]['item]" aunque le das mucha vueltas al asunto, en el foreach donde muestras los items es el lugar indicado donde sumar los items, si estas sumando y restando en una variable de sesión se presta a que se sume o reste mal y tengas incoherencias en el total...

Código PHP:
Ver original
  1. $totalItems = 0;
  2. if (isset($itemsEnCesta)){  
  3.    echo'El contenido de la cesta de la compra es:<br>';
  4.    foreach($itemsEnCesta as $item => $info){  
  5.      
  6.       echo  ' Artículo: '.$item.' ud: '.$info['cantidad'].' Precio: '.$info['precio'].' ';  
  7.       echo '<a href="borrar.php?nombre<?'.$item.'?>">Salir</a> <br>';
  8.        
  9.        $totalItems += $info['cantidad'];
  10.        
  11.    }  
  12. }
  13. ?>  
  14. <div>Total:<?      
  15.      $totalItems;
  16.        ?></div>

Ahora, se desaconseja completamente usar short tags <?, ya que estos pueden estar deshabilitado en el servidor, es mejor usar el tag completo <?php

Nota: esta linea de código esta mal, no debes ingresar los short tag ya que el código esta dentro de PHP...
echo '<a href="borrar.php?nombre<?'.$item.'?>">Salir</a> <br>';
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #8 (permalink)  
Antiguo 08/11/2011, 17:03
 
Fecha de Ingreso: agosto-2010
Ubicación: mexico
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Exclamación Respuesta: variables de sesion

Gracias por la ayuda con lo del contador... ahora tengo otra duda con respecto a borrar la session deacurdo a el nombre de item.


Este es el codigo que utilizo para destruir la sesion pero me destruye todas las sesiones que voy agregadno y no quiero eso, solo quiero quitar los item que no pedire.

Código PHP:
<?php // Manual de PHP de WebEstilo.com  
session_start(); 
  
  
  
 
//Session register esta obsoleto a partir de PHP 5.3.x se desaconseja usarlo!!! 
 //session_register('itemsEnCesta'); 

 
if (isset($_POST['item'])){    


 
 
$item=$_POST['item']; 
 
$cantidad=$_POST['cantidad']; 
 
$precio=$_POST['precio']; 
 
 
$itemsEnCesta=$_SESSION['itemsEnCesta']; 
 
 if (empty(
$itemsEnCesta)){ 
  
//Aquí guardamos el item, pero en vez de indicar como valor la cantidad indicamos un array18.   
  //con los valores "cantidad" y "precio" 
  
$itemsEnCesta[$item]=array( 
  
  
'cantidad'=>$cantidad
  
'precio'=>$precio      ); 
  
   

    
  }else{ 
  
//obtenemos el item27.  
  
$searchItem $itemsEnCesta[$item]; 
  
//verificamos si existe o no el item en el carrito 
  
if (empty($searchItem)) { 
  
//si no existe agregamos el item con la cantidad y su precio32.     
  
$itemsEnCesta[$item] = array( 
  
  
'cantidad'=>$cantidad
  
'precio'=>$precio          ); 
  }else { 
  
//si existe el item solo aumentamos la cantidad .    
  
$itemsEnCesta[$item]['cantidad'] += $cantidad;
    
  } 
  } 
    
//guardamos los cambios en la sesión 
    
$_SESSION['itemsEnCesta']=$itemsEnCesta
    } 
  
$_SESSION['itemsEnCesta']=$itemsEnCesta
?>  
<html>  
<body>  
<tt>  
<form action="#" method="post">  
Dime el producto <input type="text" name="item" size="20"><br>  
Cuantas unidades <input type="text" name="cantidad" size="20"><br>  
Precio<input type="text" name="precio" 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 $item => $info){  
    
      echo  
' Artículo: '.$item.' ud: '.$info['cantidad'].' Precio: '.$info['precio'].' ';  
      echo 
'<a href="borrar.php?Articulo=<?'.$item.'?>">Salir</a> <br>';
      
          
   }  
 

?> 


<div align="center"><span class="prod">Total de Artículos: <?php echo count($itemsEnCesta); 
//el total de items va a ser igual 
//a la cantidad de elementos que 
//tenga la matriz $carro, valor 
//que obtenemos con la función 
//count o con sizeof  
 
?></span>
<? 
?>
</tt>  
</body>  
</html>
Borrar
Código PHP:
<? 

session_start
(); 

$itemsEnCesta=$_SESSION['itemsEnCesta']; 



unset(
$item);

$_SESSION['itemsEnCesta']=$itemsEnCesta



header ("Location:Index.php");


?>
  #9 (permalink)  
Antiguo 08/11/2011, 17:33
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: variables de sesion

Eso es muy sencillo, solo borra el indice (item) del array carrito...

Código PHP:
Ver original
  1. $itemABorrar = $_GET['id'];
  2.  
  3. if (isset($itemsEnCesta[$itemABorrar])) {
  4.       unset($itemsEnCesta[$itemABorrar]);
  5. }
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #10 (permalink)  
Antiguo 08/11/2011, 18:18
 
Fecha de Ingreso: agosto-2010
Ubicación: mexico
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Exclamación Respuesta: variables de sesion

Hola mi estimado eh utilizado el ejemplo que me mostrate dejandolo de la siguiente forma:

Sin embargo sigue borrandome todas las sesiones... que otra cosa puedo hacer


Código PHP:
<? 

session_start
(); 

$itemABorrar $_GET['item'];  

if (isset(
$itemsEnCesta[$itemABorrar])) 
{
unset(
$itemsEnCesta[$itemABorrar]);
}
header ("Location:Index.php");
?>
Código PHP:
<form action="#" method="post">  
Dime el producto <input type="text" name="item" size="20"><br>  
Cuantas unidades <input type="text" name="cantidad" size="20"><br>  
Precio<input type="text" name="precio" 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 $item => $info){  
    
      echo  
' Artículo: '.$item.' ud: '.$info['cantidad'].' Precio: '.$info['precio'].'<br> ';  
    
?>
<td align="center"><a href="borrar.php&item=<?php echo $item ?>"><img src="trash.gif" width="12" height="14" border="0"></a></td> 
<td align="center">  
<?
   
}  
 
?> 
<div align="center"><span class="prod">Total de Artículos: <?php echo count($itemsEnCesta); 
  
?></span>
<? 
?>
  #11 (permalink)  
Antiguo 08/11/2011, 19:06
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: variables de sesion

Código PHP:
Ver original
  1. <?  
  2.  
  3.  
  4. $itemABorrar = $_GET['item'];  
  5.  
  6. if (isset($itemsEnCesta[$itemABorrar]))  
  7. {
  8. unset($itemsEnCesta[$itemABorrar]);
  9. }
  10. header ("Location:Index.php");
  11. ?>

En primera, esto esta mal, no estas llamando a la sesión, por lo cual ni borrará el item indicado ni tampoco la sesión...

El código que te di era un ejemplo, no para que hicieras copy/paste, tenias que adaptarlo

Ahora, dices que borra todas las sesiones no es correcto, al menos con el código que has mostrado no es posible, algo debes estar haciendo mal, o no estas mostrando todo el código y tienes una parte donde o borras/vacías $_SESSION['itemsEnCesta'] o borras/vacías $itemsEnCesta y luego lo asignas a la variable de sesión

El código que te di funciona bien, borra el item indicado sin alterar los demás items...

Código PHP:
Ver original
  1.  
  2. $itemsEnCesta = $_SESSION ['itemsEnCesta'];
  3. $itemABorrar = $_GET['id'];
  4.  
  5. if (isset($itemsEnCesta[$itemABorrar])) {
  6.       unset($itemsEnCesta[$itemABorrar]);
  7. }
  8.  
  9. $_SESSION['itemsEnCesta'] = $itemsEnCesta;
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #12 (permalink)  
Antiguo 09/11/2011, 10:05
 
Fecha de Ingreso: agosto-2010
Ubicación: mexico
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Exclamación Respuesta: variables de sesion

Hola, realize todas la pruebas que me habias recomendado pero no funciono por loq ue deje el codigo que tu me habias posteado, sin emabrgo, aun me sigue borraondo los demas items que voy guardando.

Ahora bien solo utilizo dos archivos; el priemro voy agregando los item y si lo tengo ya solo aumento la cantidad, y el otro es solo pra borrar el cual es el que nome funciona jejejeje....No se si sea la forma de enviar la variable al archivo de borrar.php o que otra cosa puede ser.

Estos son los codigos completos.

Código PHP:
<?php // Manual de PHP de WebEstilo.com  
session_start(); 
  
 
//Session register esta obsoleto a partir de PHP 5.3.x se desaconseja usarlo!!! 
 //session_register('itemsEnCesta'); 

 
if (isset($_POST['item'])){    
 
 
$item=$_POST['item']; 
 
$cantidad=$_POST['cantidad']; 
 
$precio=$_POST['precio']; 
 
 
$itemsEnCesta=$_SESSION['itemsEnCesta']; 
 
 if (empty(
$itemsEnCesta)){ 
  
//Aquí guardamos el item, pero en vez de indicar como valor la cantidad indicamos un array.   
  //con los valores "cantidad" y "precio" 
  
$itemsEnCesta[$item]=array( 
  
  
'cantidad'=>$cantidad
  
'precio'=>$precio      ); 
    }else{ 
  
//obtenemos el item.  
  
$searchItem $itemsEnCesta[$item]; 
  
//verificamos si existe o no el item en el carrito 
  
if (empty($searchItem)) { 
  
//si no existe agregamos el item con la cantidad y su precio.     
  
$itemsEnCesta[$item] = array( 
  
'cantidad'=>$cantidad
  
'precio'=>$precio ); 
  }else { 
  
//si existe el item solo aumentamos la cantidad .    
  
$itemsEnCesta[$item]['cantidad'] += $cantidad;
    
  } 
  } 
    
//guardamos los cambios en la sesión 
    
$_SESSION['itemsEnCesta']=$itemsEnCesta
    } 
 
?>  
<html>  
<body>  
<tt>  
<form action="#" method="post">  
Dime el producto <input type="text" name="item" size="20"><br>  
Cuantas unidades <input type="text" name="cantidad" size="20"><br>  
Precio<input type="text" name="precio" 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 $item => $info){  
    
      echo  
' Artículo: '.$item.' ud: '.$info['cantidad'].' Precio: '.$info['precio'].'<br> ';  
    
?>
<td align="center"><a href="borrar.php?item=<?php echo $item ?>"><img src="trash.gif" width="12" height="14" border="0"></a></td> 
<td align="center">  
<?
   
}  
 
?> 
<div align="center"><span class="prod">Total de Artículos: <?php echo count($itemsEnCesta); 
  
?></span>
<? 
?>
</tt>  
</body>  
</html>
borrar

Código PHP:
<? 

session_start
(); 

extract($_GET);

$itemsEnCesta $_SESSION ['itemsEnCesta'];

$itemABorrar $_GET['item']; 

if (isset(
$itemsEnCesta[$itemABorrar])) 
{
unset(
$itemsEnCesta[$itemABorrar]);

 
$_SESSION['itemsEnCesta'] = $itemsEnCesta;
}

 
 
header ("Location:Index.php"); 



?>

Última edición por acse; 09/11/2011 a las 10:15
  #13 (permalink)  
Antiguo 09/11/2011, 11:05
 
Fecha de Ingreso: agosto-2010
Ubicación: mexico
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
De acuerdo Respuesta: variables de sesion

Gracias, ya quedo esto, tenia mal las lines de guardar las variables de sesion en ambos archivos jejeje, pero ya esta .



Espero seguire estudiando como trabajar con sessiones ya qeu para oq ue lo voy a emplear es para un carrito de compra. ahora a implementar esto con una base de datos.

Saludos
  #14 (permalink)  
Antiguo 24/11/2011, 16:18
 
Fecha de Ingreso: agosto-2010
Ubicación: mexico
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta Respuesta: variables de sesion

Hola a todos una vez mas acudo a ustedes para que me ayuden con una progamacion avanzada que tratode realizar. el punto es que todo lo que selecione en dos formularios me lo guarde en una variable de sesion y asi poder agregar otra mas, la estructura que quiero es la misma que una carrito de compra.

Les comento mi primer fomulario selecciono membresia la cual me dice cuantas sesiones puedo agragar. despues en el mismo seleciono, dias, horario, sala; ahi me manda a lo que seria la selecion de la bicicleta, cuando le doy clic a la bici que selecione me manda a otro php el cual me deberia de guarde todo en una variable de sesion y me permita realizar otra seleccion.

Espero su gran diosa ayuda

Los php ya los tengo pero el ultimo en donde me deberia de guardar mis seleciones y seguir agregando no me muestra nada

Código PHP:
<?
session_start
(); 
/*************************************************************************************
        Notas:
 *************************************************************************************/
//Nombre de la pagina


define "PAGE""Reservaciones " );

//seguridad
include_once '../security.php';

//Consultas
    
include_once '../includes/config.php';
    include_once 
'../includes/general.php';
    include_once 
'../clases/clases.php';
    include_once 
'../clases/bicicletas.php';
    include_once 
'../clases/salas.php';
    include_once 
'../clases/horarios.php';
    include_once 
'../clases/tipomembresias.php';
    include_once 
'../clases/reservaciones.php';
    include_once 
'../clases/cliente.class.php';
    include_once 
'../clases/status.php';
    
//Variables
//print_r($_SESSION); 
$Cargo $_SESSION ['SESS_Cargo'];
$IdUsuario $_SESSION ['SESS_MEMBER_ID'];


if (isset ( 
$_POST ['IdBicicleta'] )) {


 
 
$IdBicicleta $_POST['IdBicicleta'];
 
$IdUsuario $_SESSION ['SESS_MEMBER_ID']; 
 
$Sesiones$_POST['Sesiones'];
 
$IdHorario=$_POST['IdHorario']; 
 
$FechaIni=$_POST['FechaIni']; 
 
$IdSala=$_POST['IdSala']; 
 
$Lunes=$_POST['Lunes']; 
 
$Martes=$_POST['FechaIni']; 
 
$Miercoles=$_POST['IdTipoMembresia']; 
 
$Jueves=$_POST['IdHorario']; 
 
$Viernes=$_POST['FechaIni']; 
 
$Sabado=$_POST['IdTipoMembresia']; 
 
$idTipoMembresia=$_POST['IdHorario']; 
 
$FechaIni=$_POST['FechaIni']; 

 
$SesionSocio=$_SESSION['SesionSocio'];
 
 
 if (empty(
$SesionSocio)){ 
  
//Aquí guardamos el item, pero en vez de indicar como valor la cantidad indicamos un array.   
  //con los valores "cantidad" y "precio" 
  
$SesionSocio[$IdBicicleta]=array( 
  
 
'IdUsuario' => $_SESSION ['SESS_MEMBER_ID'],
 
'IdBicibleta'=> $IdTipoMembresia
 
'Sesiones'=> $Sesiones,
 
'IdHorario'=> $IdHorario,
 
'FechaIni'=> $FechaIni,
 
'IdSala'=> $IdSala,
 
'Lunes'=> $Lunes,
 
'Martes'=> $FechaIni
 
'Miercoles'=> $IdTipoMembresia
 
'Jueves'=> $IdHorario
 
'Viernes'=> $FechaIni
 
'Sabado'=> $IdTipoMembresia
 
'idTipoMembresia'=> $IdHorario
 
'FechaIni'=> $FechaIni 

 
); 
    }else{ 
  
//obtenemos el item.  
  
$searchItem $SesionSocio[$IdBicicleta]; 
  
//verificamos si existe o no el item en el carrito 
  
if (empty($searchItem)) { 
  
//si no existe agregamos el item con la cantidad y su precio.     
  
$SesionSocio[$IdBicicleta] = array( 
 
'IdUsuario' => $_SESSION ['SESS_MEMBER_ID'],
 
'Sesiones'=> $Sesiones,
 
'IdBicibleta'=> $IdTipoMembresia
 
'IdHorario'=> $IdHorario,
 
'FechaIni'=> $FechaIni,
 
'IdSala'=> $IdSala,
 
'Lunes'=> $Lunes,
 
'Martes'=> $FechaIni
 
'Miercoles'=> $IdTipoMembresia
 
'Jueves'=> $IdHorario
 
'Viernes'=> $FechaIni
 
'Sabado'=> $IdTipoMembresia
 
'idTipoMembresia'=> $IdHorario
 
'FechaIni'=> $FechaIni 
 
); 
  }else { 
  
//si existe el item solo aumentamos la cantidad .    
  // $itemsEnCesta[$item]['cantidad'] += $cantidad;
    
  

  } 
    
//guardamos los cambios en la sesión 
    
$_SESSION['SesionSocio']=$SesionSocio
    } 
 

if (isset ( 
$HTTP_POST_VARS ['Msg'] )) {
    
$Msg $HTTP_POST_VARS ['Msg'];
} else {
    if (isset ( 
$_GET ['Msg'] )) {
        
$Msg $_GET ['Msg'];
    } else {
        
$Msg '';
    }
}

?>
<? 
if (isset($SesionSocio)){
$suma =  count($SesionSocio
?>
<div align="center"><span class="prod">Sesiones: <?php echo $suma;?></span> </div><br>

<?
 
if ( $suma  >= $_POST['Sesiones'])
{
?>
<div align="center"><span class="Inset"><a href="addregister.php">Registar Selecciones</a></span></div>

<?
echo ' El numero de sesiones alcanzo su maximo<br>';
  foreach(
$SesionSocio as $IdBicicleta => $info){  
    
        echo 
'Tipo de Membresia '.$info['IdTipoMembresia'].'<br/>';        
        echo 
'Usuario'.$info['IdUsuario'].'<br/>';
        echo 
'Hora: '.$info['IdHorario'].'<br/>';
        echo 
'Sala: '.$info['IdSala'].'<br/>';
        echo 
'Fecha de Reservacion '.$info['FechaIni'].'<br/>';
        echo 
'Status: '.$info['IdStatusr'].'<br/>';
        echo 
'Dias <br/>';
        echo 
'Lunes: '.$info['Lunes'].'<br/>';     
        echo 
'Martes: '.$info['Martes'].'<br/>';      
        echo 
'Miercoles: '.$info['Miercoles'].'<br/>';    
        echo 
'Jueves: '.$info['Jueves'].'<br/>';     
        echo 
'Viernes: '.$info['Viernes'].'<br/>';      
        echo 
'Sabado: '.$info['Sabado'].'<br/>';    
        echo 
'Bicibleta: '.$info['IdBicicleta'].'<br/>';    
    
      echo 
"Sesion Guardada Satisfactoriamente";

      
?>
      <td align="center"><a href="borrar.php?IdBicicleta=<?php echo $IdBicicleta ?><img src="trash.gif" width="12" height="14" border="0"></a></td> 
<td align="center">      
<?}
}
else
{
echo
'Sesiones Seleccionadas:<br>';  
         
     foreach(
$SesionSocio as $IdBicicleta => $info){  
    
        echo 
'Tipo de Membresia '.$info['IdTipoMembresia'].'<br/>';        
        echo 
'Usuario'.$info['IdUsuario'].'<br/>';
        echo 
'Hora: '.$info['IdHorario'].'<br/>';
        echo 
'Sala: '.$info['IdSala'].'<br/>';
        echo 
'Fecha de Reservacion '.$info['FechaIni'].'<br/>';
        echo 
'Status: '.$info['IdStatusr'].'<br/>';
        echo 
'Dias <br/>';
        echo 
'Lunes: '.$info['Lunes'].'<br/>';     
        echo 
'Martes: '.$info['Martes'].'<br/>';      
        echo 
'Miercoles: '.$info['Miercoles'].'<br/>';    
        echo 
'Jueves: '.$info['Jueves'].'<br/>';     
        echo 
'Viernes: '.$info['Viernes'].'<br/>';      
        echo 
'Sabado: '.$info['Sabado'].'<br/>';    
        echo 
'Bicibleta: '.$info['IdBicicleta'].'<br/>';    
    
?>
<td align="center"><a href="borrar.php?IdBicicleta=<?php echo $IdBicicleta ?>"><img src="trash.gif" width="12" height="14" border="0"></a></td> 
<?
  
  

  
?>
  <a href="mireservacion.php">Continuar Agregando</a></td> 
  <?
}   
 }
 
?> 
  


<?php
        
        
        
//       $result = InsertaReservacion($IdUsuario,$IdSala,$IdHorario,$IdBicicleta,$FechaIni,$FechaFin, $Activo,$IdTipoMembresia,$IdStatusr,$Lunes,$Martes,$Miercoles,$Jueves,$Viernes,$Sabado);
            
        
  //      if($result) {
            
    //    echo "Sesion Guardada Satisfactoriamente";
        
    //    exit();
//    }else {
    //    die("Erro Al Guardar La Sesion");
//    }
        
        
            
?>

Etiquetas: html, variables
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 14:58.