Foros del Web » Programando para Internet » PHP »

Problemas con variables - Segunda parte

Estas en el tema de Problemas con variables - Segunda parte en el foro de PHP en Foros del Web. En una consulta anterior, les preguntaba sobre un problema con variables, lo cual termino siendo que el register_globals estaba en off, por lo cual comenze ...
  #1 (permalink)  
Antiguo 07/03/2011, 09:25
 
Fecha de Ingreso: febrero-2011
Mensajes: 18
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta Problemas con variables - Segunda parte

En una consulta anterior, les preguntaba sobre un problema con variables, lo cual termino siendo que el register_globals estaba en off, por lo cual comenze a pasar las variables a super globales. El problema que tengo ahora es similar, si bien todo va funcionando bien cuando llego al momento de agregar un libro al carrito de compras no lo agrega.

Una vez que llegue al libro que quiero comprar, paso el valor al carrito de la siguiente manera

display_button("show_cart.php?new=$_GET[isbn]", "add-to-cart", "Agregar ".$book["title"]." a mi carrito de compras");

hecha la seleccion continua el siguiente codigo

<?
include ('book_sc_fns.php');
// El carrito de compra necesita sesiones, así que iniciar una.
session_start();

if($new)
{
//nuevo artículo seleccionado
if(!session_is_registered("cart"))
{
$cart = array();
session_register("cart");
$items = 0;
session_register("items");
$total_price = "0.00";
session_register("total_price");
}
if($cart[$new])
$cart[$new]++;
else
$cart[$new] = 1;
$total_price = calculate_price($cart);
$items = calculate_items($cart);

}
if($save)
{
foreach ($cart as $isbn => $qty)
{
if($$isbn=="0")
unset($cart[$isbn]);
else
$cart[$isbn] = $$isbn;
}
$total_price = calculate_price($cart);
$items = calculate_items($cart);
}


do_html_header("Tu carro de compra");

if($_SESSION["cart"]&&array_count_values($_SESSION["cart"]))
display_cart($_SESSION["cart"]);
else
{
echo "<p>No hay artículos en tu carro";
echo "<hr>";
}
$target = "index.php";


// si hemos añadido un artículo al carro, continuar comprando en esa categoría
if($new)
{
$details = get_book_details($new);
if($details["catid"])
$target = "show_cat.php?catid=".$details["catid"];
}
display_button($target, "continue-shopping", "Continuar Comprando");
$path = $PHP_SELF;
$path = str_replace("show_cart.php", "", $path);
display_button("http://".$SERVER_NAME.$path."checkout.php", "go-to-checkout", "Ir a la Caja");
do_html_footer();
?>



El valor que paso es el del isbn del libro, pero veo que aca se crea otra variable $cart que es un array, el cual va guardando los diferentes isbn, que se vallan agregando. Probe cambiando la variable $cart por $_SESSION["cart"], pero no funciona. Se que el problema sigue siendo el tema de las variables super globales, pero no se como debería quedar el código para que funcione. La parte del codigo que esta marca en azul oscuro, si funciona, esa parte del codigo, muestra los libros que se han seleccionado, en esa seccion del codigo la variable superglobal $_SESSION["cart"], funciona. La parte del if($new) es para agregar un libro y la parte if($save), es para guardar la seleccion por si se decide cambiar la cantidad de libros elegidos. En esas dos partes esta mi problema

Alguien me podrá ayudar?.
Espero haber sido claro, o si les falta mas datos para tener un panorama mas claro, cualquier cosa díganme.
Gracias
  #2 (permalink)  
Antiguo 07/03/2011, 13:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problemas con variables - Segunda parte

Mi estimado galloclaudio, duelen un poco los ojos al tratar de ver el codigo con los colores que seleccionaste. A la derecha de la barra de herramientas (donde elegiste el color) hay un selector (dropdown, menu desplegable, select o como prefieras llamarle) que dice Highlight, seleccionas PHP y dentro colocas el codigo para que sea legible.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 09/03/2011, 06:49
 
Fecha de Ingreso: febrero-2011
Mensajes: 18
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Problemas con variables - Segunda parte

PERDON... !!, transcribo nuevamente todo, para que pueda ser legible


En una consulta anterior, les preguntaba sobre un problema con variables, lo cual termino siendo que el register_globals estaba en off, por lo cual comenze a pasar las variables a super globales. El problema que tengo ahora es similar, si bien todo va funcionando bien cuando llego al momento de agregar un libro al carrito de compras no lo agrega.

Una vez que llegue al libro que quiero comprar, paso el valor al carrito de la siguiente manera

Código PHP:
Ver original
  1. display_button("show_cart.php?new=$_GET[isbn]", "add-to-cart", "Agregar ".$book["title"]." a mi carrito de compras");

hecha la seleccion continua el siguiente codigo

Código PHP:
Ver original
  1. <?
  2. include ('book_sc_fns.php');
  3. // El carrito de compra necesita sesiones, así que iniciar una.
  4.  
  5. if($new)
  6. {
  7. //nuevo artículo seleccionado
  8. {
  9. $cart = array();
  10. $items = 0;
  11. $total_price = "0.00";
  12. session_register("total_price");
  13. }
  14. if($cart[$new])
  15. $cart[$new]++;
  16. else
  17. $cart[$new] = 1;
  18. $total_price = calculate_price($cart);
  19. $items = calculate_items($cart);
  20.  
  21. }
  22. if($save)
  23. {
  24. foreach ($cart as $isbn => $qty)
  25. {
  26. if($$isbn=="0")
  27. unset($cart[$isbn]);
  28. else
  29. $cart[$isbn] = $$isbn;
  30. }
  31. $total_price = calculate_price($cart);
  32. $items = calculate_items($cart);
  33. }
  34.  
  35. do_html_header("Tu carro de compra");
  36.  
  37. if($_SESSION["cart"]&&array_count_values($_SESSION["cart"]))
  38. display_cart($_SESSION["cart"]);
  39. else
  40. {
  41. echo "<p>No hay artículos en tu carro";
  42. echo "<hr>";
  43. }
  44.  
  45.  
  46. $target = "index.php";
  47.  
  48. // si hemos añadido un artículo al carro, continuar comprando en esa categoría
  49. if($new)
  50. {
  51. $details = get_book_details($new);
  52. if($details["catid"])
  53. $target = "show_cat.php?catid=".$details["catid"];
  54. }
  55. display_button($target, "continue-shopping", "Continuar Comprando");
  56. $path = $PHP_SELF;
  57. $path = str_replace("show_cart.php", "", $path);
  58. display_button("http://".$SERVER_NAME.$path."checkout.php", "go-to-checkout", "Ir a la Caja");
  59. do_html_footer();
  60. ?>

El valor que paso es el del isbn del libro, pero veo que aca se crea otra variable $cart que es un array, el cual va guardando los diferentes isbn, que se vallan agregando. Probe cambiando la variable $cart por $_SESSION["cart"], pero no funciona. Se que el problema sigue siendo el tema de las variables super globales, pero no se como debería quedar el código para que funcione. La parte del codigo que esta marca en azul oscuro, si funciona, esa parte del codigo, muestra los libros que se han seleccionado, en esa seccion del codigo la variable superglobal $_SESSION["cart"], funciona. La parte del if($new) es para agregar un libro y la parte if($save), es para guardar la seleccion por si se decide cambiar la cantidad de libros elegidos. En esas dos partes esta mi problema

Alguien me podrá ayudar?.
Espero haber sido claro, o si les falta mas datos para tener un panorama mas claro, cualquier cosa díganme.
Gracias

Etiquetas: 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 21:37.