Foros del Web » Programando para Internet » PHP »

problemas con las variables de session en php

Estas en el tema de problemas con las variables de session en php en el foro de PHP en Foros del Web. Saludos a todos Después de todo el fin de semana dándole vueltas a PHP necesito que me echeiss una mano seguro que a alguien le ...
  #1 (permalink)  
Antiguo 18/02/2007, 14:55
Usuario no validado
 
Fecha de Ingreso: febrero-2007
Mensajes: 2
Antigüedad: 17 años, 1 mes
Puntos: 0
problemas con las variables de session en php

Saludos a todos

Después de todo el fin de semana dándole vueltas a PHP necesito que me echeiss una mano seguro que a alguien le ha sucedido esto:

estoy haciendo un proyecto en PHP de una librería virtual y a mí me ha tocado elaborar El carrito y tengo el siguiente problema:



1.- una lista con los datos de los libros según la selección que me interesa.



2.- El código ISBN (que es la clave del libro en la base de datos la paso a otra página de base de datos para Incluirlo en un array de session si es que no en la misma , ó sumar una unidad más si es que éste ya existe en el array.



os adjunto el código:

------------------------------------------------------

<?

session_start();

include('base_datos_libro.php');

if($_GET['codigo'])

{

$codigo=$_GET['codigo'];



if(!session_is_registered('carrito'))

{

$_SESSION['carrito']=array();

$_SESSION["importe"]=0;

session_register('carrito','importe');

}



if(!$_SESSION["carrito[$codigo]"])

$_SESSION["carrito[$codigo]"]=1;

else

$_SESSION["carrito[$codigo]"]++;





?>



Hasta aquí todo es más ó menos normal, he intentado ver algún valor de la tabla para ver si Es que existe y de momento se guardan.


El problema que tengo es que cuando quiero calcular el importe total de la compra ó quiero saber el Número total de unidades de la tabla e incluso ver todos los registros de la tabla mediante un bucle Tipo foreach ó while me es totalmente imposible.



Lo quiero hacer mediante funciones, es decir coger la variable de session del carrito y Pasarlo a una función de php como parámetro:



$_SESSION["unidades"]=calcular_unidades($_SESSION["carrito"]);

$_SESSION["importe"]=calcular_compra($_SESSION["carrito"]);





Y no tengo forma de que me devuelva ningún valor a continuación os detallo las funciones:

------------------------------------------------------



<?php

session_start();

include('conexion.php');

function buscar_precio_libro($isbn)

{

$con=conectarse();

$query="select PRECIO from libros where ISBN=$isbn";

$result=@mysql_query($query);

if(!$result)

return false;

else

return $result;



}



function calcular_compra($carrito)

{



$precio=0;

if(is_array($carrito))

{

$con=conectarse();

foreach($carrito as $isbn => $cantidad)

{

$query="select PRECIO from libros where ISBN=$isbn";

$result=mysql_query($query);

if($result)

{

$parcial=mysql_result($result,0,"PRECIO");

$compra+=$parcial*$cantidad;

echo $compra;

}

}

}



return $compra;

}



function calcular_unidades($carrito)

{

$unidades=0;

if(is_array($carrito))

{

while($elementos=each($carrito))

{

echo $elementos["key"];

$unidades+=$elementos;

}

}

return $cantidad;

}



?>



------------------------------------------------------





Me he fijado que dentro de las funciones el programa no llega a entrar ni en los bucles while ni foreach

Por lo que me temo que el array está mal pasado como valor a las funciones, le he llegado a cambiar También la variable register_globals = On de el fichero de configuración de PHP, y estoy seguro de que cuando Veais esto lo tendréis perfectamente superado.





Muchas gracias



Un saludo
  #2 (permalink)  
Antiguo 18/02/2007, 15:10
Avatar de carlosmbrizuela  
Fecha de Ingreso: enero-2007
Ubicación: La Plata (Argentina)
Mensajes: 490
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: problemas con las variables de session en php

Para verificar la session proba con esto.

if (!isset($_session['variable']))

saludos
__________________
http://www.rollermountain.com
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 22:58.