Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Problema session_start(); dentro de una clase

Estas en el tema de Problema session_start(); dentro de una clase en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola amigos tengo una web modular index la cual tiene un session_start(); pero como es modular uso un carrito de compras que = tiene un ...
  #1 (permalink)  
Antiguo 18/10/2006, 13:28
Avatar de omegafunky  
Fecha de Ingreso: diciembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 3.534
Antigüedad: 20 años, 4 meses
Puntos: 33
Problema session_start(); dentro de una clase

hola amigos tengo una web modular index la cual tiene un session_start(); pero como es modular uso un carrito de compras que = tiene un session_start(); el problema es k si kito el session_start(); del index no me pasa unas cosas k uso y si kito el session_start(); del lib_carrito no me pasa los articulos al carrito es un rollo, habria alguna forma de hacer un tipo if (!isset(session_start();)... weno k si no ha sido iniciada la sesion k la inicie? les dejo mis codigos

index.php
Código PHP:
<?php
session_start
();
include(
'conex.php');
error_reporting E_ALL ); 
ini_set('register_globals''off');  
//$_SESSION["secc"] = $_GET["secc"];
//$_SESSION["item"] = $_POST["item"];
if (isset($_POST['item'])) { $_SESSION["item"] = $_POST["item"];} else {$_SESSION["item"] = "1";}
if (isset(
$_GET['cve'])) { $_SESSION["cve"] = $_GET["cve"];} else {$_SESSION["cve"] = "1";}
if (isset(
$_GET['secc'])) { $_SESSION["secc"] = $_GET["secc"];} else {$_SESSION["secc"] = "inicio";}
//if (!isset($_SESSION["ocarrito"])){ $_SESSION["ocarrito"] = new carrito();}
?>

lib_carrito.php
Código PHP:
<?php
class carrito {
 
//atributos de la clase
    
var $num_productos;
    var 
$array_id_prod;
    var 
$array_nombre_prod;
    var 
$array_precio_prod;
 
//constructor. Realiza las tareas de inicializar los objetos cuando se instancian
 //inicializa el numero de productos a 0
 
function carrito () {
     
$this->num_productos=0;
 }
 
 
//Introduce un producto en el carrito. Recibe los datos del producto
 //Se encarga de introducir los datos en los arrays del objeto carrito
 //luego aumenta en 1 el numero de productos
 
function introduce_producto($id_prod,$nombre_prod,$precio_prod){
  
$this->array_id_prod[$this->num_productos]=$id_prod;
  
$this->array_nombre_prod[$this->num_productos]=$nombre_prod;
  
$this->array_precio_prod[$this->num_productos]=$precio_prod;
  
$this->num_productos++;
 }
 
//Muestra el contenido del carrito de la compra
 //ademas pone los enlaces para eliminar un producto del carrito
 
function imprime_carrito(){
  
$suma 0;
  echo 
"<table border=0 border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=730 >
     <tr>
    <td width=680><div class=\"txtb\"><b>Nombre producto</b></div></td>
    <td width=50><div class=\"txtb\"><b>Precio</b></div></td>
    <td width=20>&nbsp;</td>
     </tr>"
;
  for (
$i=0;$i<$this->num_productos;$i++){
   if(
$this->array_id_prod[$i]!=0){
    echo 
'<tr height=20>';
    echo 
"<td><div class=\"txtb\">" $this->array_nombre_prod[$i] . "</div></td>";
    echo 
"<td ><div class=\"txtb\">" $this->array_precio_prod[$i] . "</div></td>";
    echo 
"<td><a href='eliminar_producto.php?linea=$i'><img src=\"../images/borra.gif\" border=0></td>";
    echo 
'</tr>';
    
$suma += $this->array_precio_prod[$i];
   }
  }
  
//muestro el total
  
echo "<tr><td class=\"txt_precio\"><b>TOTAL:</b></td><td class=\"txta\"> <b>$suma</b></td><td>&nbsp;</td></tr>";
  
//total más IVA
  
echo "<tr><td class=\"txt_precio\"><b>IVA (16%):</b></td><td class=\"txta\"> <b>" $suma 1.16 "</b></td><td>&nbsp;</td></tr>";
  echo 
"</table>";
 }
 
 
//elimina un producto del carrito. recibe la linea del carrito que debe eliminar
 //no lo elimina realmente, simplemente pone a cero el id, para saber que esta en estado retirado
 
function elimina_producto($linea){
  
$this->array_id_prod[$linea]=0;
 }

//inicio la sesión
session_start(); //AQUI ESTA EL QUE ME CAUSA EL PROBLEMAAAAAAAAAAAAAAA =(
//si no esta creado el objeto carrito en la sesion, lo creo
if (!isset($_SESSION["ocarrito"])){
 
$_SESSION["ocarrito"] = new carrito();
}
?>
  #2 (permalink)  
Antiguo 18/10/2006, 13:34
Avatar de omegafunky  
Fecha de Ingreso: diciembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 3.534
Antigüedad: 20 años, 4 meses
Puntos: 33
si kito el session_start() del carrito me marca esto

Fatal error: main() [<a href='function.main'>function.main</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition &quot;carrito&quot; of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in C:\wamp\www\ver_carrito.php on line 15
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 10:18.