Estas iniciando la sesion dentro de archivo2.php y también de archivo1.php. El inicio de sesión deberias hacerlo sólo una vez. Podrias crear una archivo inicia_sesion.php e incluirlo en todos los scripts donde quieras iniciar la sesion.
inicia_sesion.php
Código PHP:
<?
session_start();
if (!isset($_SESSION["ocarrito"])){
$_SESSION["ocarrito"] = new carrito();
}
if (!isset($_SESSION["clientes"])){
$_SESSION["clientes"] = new clientes();
}
?>
index.php
Código PHP:
<? include ("archivo2.php");
include ("archivo1.php");
include("inicia_sesion.php");
$_SESSION["clientes"]->asignar_nombre('Macarena'); /// funciona
$_SESSION["ocarrito"]->cargar_producto(); // no me crea el objeto carrito en archivo1.php.
?>
archivo1.php
Código PHP:
<?
class carrito {
var $num_productos;
function cargar_producto()
{
//// algo.
}
}
?>
archivo2.php
Código PHP:
<?
class clientes {
var $nombre_cliente;
function asignar_nombre($nombre)
{
//// algo
}
}
?>
No te recomedaria que incluyeras otro código que no sea la definición de la clase en tus scripts que definen clases.
Saludos.