Exacto uno de los problemas es poner espacios en blanco antes del
session_start y ponerla la primera linia de todas.
Después deberias serializar un objeto antes de guardarlo en session. Y antes de recuperlo cargar el include donde se define la clase y deserializarlo.
Hoy estoy de muy buen rollito (algunos paises de sudamerica se dice buena onda creo jeje) te he picado un pequeño ejemplo a ver si te ayuda.
Primero hacemos una clase que la guardaremos en sesion algo facil así que crearemos el fichero
Persona.php Código PHP:
<?php
class Persona{
private $_nombre;
private $_apellidos;
public function __construct($nombre, $apellidos){
$this->_nombre = $nombre;
$this->_apellidos = $apellidos;
}
public function getNombre(){
return $this->_nombre;
}
public function setNombre($nombre){
$this->_nombre = $nombre;
}
public function getApellidos(){
return $this->_apellidos;
}
public function setApellidos($apellidos){
$this->_apellidos = $apellidos;
}
}
?>
Bien ahora lo que vamos a hacer es pasar este objeto desde la pagina inicio (index.php) a la pagina mostrar (mostrar.php)
El codigo de
index.php Código PHP:
<?php
session_start();
require_once("Persona.php");
$persona1 = new Persona("Juan", "Perez Garrido");
$_SESSION['persona'] = serialize($persona1);
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" />
<title>Ejemplo Persona</title>
</head>
<body>
<a href="mostrar.php" alt="mostrar persona" >Ver la session persona</a>
<br />
</body>
</html>
y el codigo de
mostrar.php Código PHP:
<?php
session_start();
require_once("Persona.php");
$persona = unserialize($_SESSION['persona']);
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" />
<title></title>
</head>
<body>
<p>El nombre de la persona es--><?echo $persona->getNombre(); ?></p>
<br />
</body>
</html>
Si sigues teniendo problemas mira el php.ini que tengas todo bien configurado mira el apartado de sesiones y que tengas permisos sobre todo si el handler es de ficheros. Espero que te sirva de ayuda.
Ojo !!! la serialización de objetos no se lleva a cabo si el objeto lleva variables tipo "resource" u objetos con referencias circulares. (es decir objetos que pasan referencia a otros objetos de si mismos ) Un pelin complicado no? jejeje
+ info sobre sesiones
http://es.php.net/session