Foros del Web » Programando para Internet » PHP »

$_SESSION no se graba

Estas en el tema de $_SESSION no se graba en el foro de PHP en Foros del Web. buenas, tengo el siguiente codigo para manejar unos productos de un carrito: Código PHP: session_start (); if(isset( $_POST [ "articulo" ])){      $articulo  =  $_POST ...
  #1 (permalink)  
Antiguo 16/05/2005, 15:52
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 2 meses
Puntos: 10
$_SESSION no se graba

buenas, tengo el siguiente codigo para manejar unos productos de un carrito:

Código PHP:
session_start();

if(isset(
$_POST["articulo"])){
    
$articulo $_POST["articulo"];
    
$nombre $_POST["nombre"];
    
$cantidad $_POST["cantidad"];
    
    if(isset(
$_SESSION[$articulo])){
        
$_SESSION[$articulo]["cantidad"] += $cantidad;
    }else{
        
$_SESSION[$articulo]["articulo"] = $articulo;
        
$_SESSION[$articulo]["nombre"] = $nombre;
        
$_SESSION[$articulo]["cantidad"] = $cantidad;
    }

si yo imprimo el articulo justo despues de ejecutar ese codigo con algo como:

Código PHP:
while (list($clave$valor) = each($_SESSION)){
    
$cadena $valor["articulo"]." - ".$valor["nombre"]." - ".$valor["cantidad"]."<br>";
    echo 
$cadena;

se muestra, pero si yo paso a otra pagina o actualizo la misma el articulo ya no esta mas en la session.
No estoy muy familiarizado con el uso de sesiones asi que agradeceria que me den una manitro para encontrar el error.
__________________
oohh... quisiera ser godines!!!

Última edición por safe; 16/05/2005 a las 16:47
  #2 (permalink)  
Antiguo 16/05/2005, 15:55
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
Procura tener como primera linea:
<?php session_start()?>

Ya que esta linea activa las sessiones y podras accesarlas.
  #3 (permalink)  
Antiguo 16/05/2005, 16:09
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 2 meses
Puntos: 10
gracias Dwaks, pero si ves en el codigo que puse si esta session_start() y lo tengo en todas las paginas.
__________________
oohh... quisiera ser godines!!!
  #4 (permalink)  
Antiguo 16/05/2005, 16:18
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Pero lo tienes hasta arriba de todas las páginas (antes de cualquier <html>)?

En caso que no, fíjate en las directivas register_globals de php de tu servidor.
  #5 (permalink)  
Antiguo 16/05/2005, 16:23
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 2 meses
Puntos: 10
hola lado2mx: si lo tengo en todas las paginas y esta arriba de cualquier salida al navegador...

Tengo las register_globals ON ¿asi deberian estar?.
__________________
oohh... quisiera ser godines!!!
  #6 (permalink)  
Antiguo 16/05/2005, 17:54
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 2 meses
Puntos: 10
el condicional

Código PHP:
 if(isset($_SESSION[$articulo])){ 
Siempre devuelve false. como puedo saber si eso es porque no se grabo la sesion o por algun otro error?

otra cosa, recien probando me dio un error en la conexion a la base por lo que los campos del form quedaron vacios, para probar aprete el boton para agregar el producto y se guardo perfectamente el registro en la session (con articulo y nombre vacio obviamente) porque puede ser?
__________________
oohh... quisiera ser godines!!!
  #7 (permalink)  
Antiguo 16/05/2005, 18:22
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... adivinando... prueba con $_SESSION["$arcticulo"]... supongo dicha variable estará en forma de texto...

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 16/05/2005, 18:59
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 2 meses
Puntos: 10
hola jam1138, gracias por responder... en realidad la variable es un numero, lo paso asi:
Código PHP:
<input type='hidden' name='articulo' value='".$rs["id"]."' /> 
antes de usarlo tendria que "decirle" a PHP que es un numero??.
Lo mismo probe con las comillas dobles y tampoco funciono.

Esto me parece un dato importante: si pongo:
Código PHP:
<input type='hidden' name='articulo' value='' /> 
pasa lo que dije antes: me graba todo correctamente (claro que con articulo = "").

Por lo que yo pienso que el problema es donde vos me estas diciendo:
Código PHP:
$_SESSION[$articulo
pero probando por mas que ponga a modo de prueba:
Código PHP:
if(isset($_SESSION[40])){
        
$_SESSION[40]["cantidad"] += $cantidad;
    }else{
        
$_SESSION[40]["articulo"] = $articulo;
        
$_SESSION[40]["nombre"] = $nombre;
        
$_SESSION[40]["cantidad"] = $cantidad;

o
Código PHP:
$_SESSION["40"
(donde 40 es un articulo que estoy usando para las pruebas) No funciona, osea no me graba la variable.
__________________
oohh... quisiera ser godines!!!

Última edición por safe; 16/05/2005 a las 19:13
  #9 (permalink)  
Antiguo 16/05/2005, 19:13
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
.. no, no hay que decirle.. pero hay que verificar que resivas dicho número...

Ese campo lo haces con un echo ¿verdad??... haz uso correcto de las comillas!.
Código PHP:
echo "<input type=\"hidden\" name=\"articulo\" value=\"".$rs['id']."\">"
juraría no estaríaspasando un número.. sino las letras id... (en la forma en que lo tenias). Verifica primero que recivaz de forma correcta los datos que vaz a ocupar.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #10 (permalink)  
Antiguo 16/05/2005, 19:28
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 2 meses
Puntos: 10
en realidad lo estaba pasando asi:

Código PHP:
echo "<input type='hidden' name='articulo' value='".$rs["id"]."' />\n"
y comprobe que se pasa el numero correctamente.
Ademas, como te comente antes, aun poniendo directamente el numero en vez de usar la variable recibida por POST no funciona.

Despues de seguir probando me di cuenta que si pongo:
Código PHP:
 $articulo "cualquiercosa"
en vez de
Código PHP:
 $articulo $_POST["articulo"]; 
si funciona, osea que debe ser algun tipo de problema con que $articulo sea numerico... ¿alguna idea?

gracias por la ayuda
__________________
oohh... quisiera ser godines!!!
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 19:26.