Comunidad de diseño web y desarrollo en internet online

Problemas con variables session [ayudaaaa]

Citar            
MensajeEscrito el 14 Jun 2007 02:41 pm
Hola, que tal.

Estoy tratando de diseñar un carrito de compra, para esto utilizo la variable session. Pero el problema es que una vez yo declaro la session cuando paso a otra pagina esta no me mantien el valor.

Es decir en el index creo mi variable:

include("carrito.php"); //clase donde se crea el carrito de compra
if (!isset($_SESSION["carrito"])){
session_start();
$_SESSION["carrito"] = new carrito();
}

luego cuando intento introducir un valor en el carrito de compra obtengo el siguiente error:

Fatal error: Call to a member function on a non-object in /home/universi/public_html/fotogaleria/view.php on line 6

siendo la linea 6 la siguiente:

$_SESSION["carrito"]->introduce_producto($id);

este es parte del codigo de view.php
<?php include("carrito.php");
$insert = $_GET["insert"];
$id = $_GET["id"];
$_SESSION["carrito"]->introduce_producto($id);// linea 6
?>

Haciendo unas pruebas me di cuenta que es que no se esta manteniendo la variable session entre las paginas. Tienen alguna idea de cual sea el error.

Espero puedan ayudarme.
Saludos.
Ana Azuaje

Por maygreth

20 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 14 Jun 2007 05:06 pm

Código :

session_start(); 


Coloca esa en la primera linea de cualquier script que quieras utilizar sesiones.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 14 Jun 2007 06:43 pm
En cualquier script? o solo en el script donde voy a declarar la variable session?

Por maygreth

20 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 14 Jun 2007 07:20 pm
Donde uses sesiones

No importa si no agregas nada a $_SESSION, pero si quieres utilizar un valor de alli debes hacerlo.

Primer archivo

Código :

<?php
session_start();
if (!isset($_SESSION["contador"]))
{
    $_SESSION["contador"] = 1;
}
else
{
   $_SESSION["contador"]++;
}


echo "Has actualizado esta pagina: " . $_SESSION["contador"];
?>

en otro archivo....

Código :

<?php
  session_start();
echo "La otra pagina la actualizaste: " . $_SESSION["contador"];
?>


Si quitas session_start en alguna, no verás el valor de "contador" correctamente.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 20 Jun 2007 03:15 pm
Hola Maikel

Muchas gracias por tu respuesta. Todo funciono bien. Ahora tengo otro problema pero con la cookie, donde guardo el id del usuario. Antes te menciono que decidi usar cookie para poder tener mas control con el tiempo de expiración, asi que manejo el id de usuario con una cookie y el carro de compra con la variable session.

En fin, cuando hago login deberia de inicializar la cookie y no lo hace solo la segunda vez que inserto los datos de usuario me inicializa la cookie y puedo seguir navegando. Hasta que expire la session y luego debo loguearme 2 veces para poder volver a inicar la cookie. Este es mi codigo de login.php

<?php
$correo = $_POST["correo"];
$contrasena = $_POST["contrasena"];
include("database.php");
$id = verifica_login($correo,$contrasena);
if ($id<>0) {
setcookie("id",$id,time() + 60);
echo "<br>se asigno la cookie" . $_COOKIE["id"];
include("catalog.php");
}
else {
echo "Usuario no registrado";
}
?>

Por maygreth

20 de clabLevel



Genero:Femenino  

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.