Foros del Web » Programando para Internet » PHP »

Class y session

Estas en el tema de Class y session en el foro de PHP en Foros del Web. Buenas a todos, Tengo una duda tengo dos ficheros (test.php y cart.php) el test es la pagina normal y cart.php una clase, lo que quiero ...
  #1 (permalink)  
Antiguo 08/08/2010, 14:32
 
Fecha de Ingreso: julio-2009
Mensajes: 7
Antigüedad: 14 años, 9 meses
Puntos: 0
Class y session

Buenas a todos,

Tengo una duda tengo dos ficheros (test.php y cart.php) el test es la pagina normal y cart.php una clase, lo que quiero hacer es los siguiente:

Código PHP:
 <?php

class cart{

public 
$_SESSION;
function 
cart(){
    
session_start();
    
    
    if(!isset(
$_SESSION['cart'])){
    
$this->$_SESSION['cart'] = array();  // si esta vacia inicio la session en modo array
    
}
}

function 
add_item($id_item){
    
session_start();
    
    
    if(
$_SESSION['cart'][$id_item]['id'] == $id_item){ // si encuentra en la array la id autoincremento la cantidad
    
$_SESSION['cart'][$id_item]['quantity'] += 1;
    
    }else{
// si no esta la iniciamos
    
$_SESSION['cart'][$id_item]['id'] = $id_item;
    
$_SESSION['cart'][$id_item]['name'] = "ola";
    
$_SESSION['cart'][$id_item]['quantity'] = 1
            
    }
    return 
print_r($_SESSION['cart']);
}
}
?>
y el test.php

Código PHP:
session_start();
include_once(
'class/cart.php');
 
$cart = new cart(); 
$cart->add_item(250); 
Pues el problema esta en que la única manera que consigo introducir algo en la sesión es diciendo en el principio de la función (add_item) que la $_SESSION['cart'] = array(); pero claro esta me elimina todo lo que tenia en la sesión.

Sabe alguien como puedo hacer que no pierda los datos de la array.

Gracias.
  #2 (permalink)  
Antiguo 08/08/2010, 16:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Class y session

solo dos cosas:

- no es necesario usar public ni nada para accesar a $_SESSION (te recuerdo que es una variable super-global)
- por lo mismo tampoco necesitas usar $this->$_SESSION eso esta muy mal planteado...

tan solo con usar $_SESSION directamente es suficiente, por favor lee el manual:
http://www.php.net/manual/en/features.sessions.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: class, session
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:32.