Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alchemist

Armazenar e recuperar obj na sessão

Recommended Posts

Setando ou guardando.

<?php
session_start();
$var = "Texto";
$_SESSION['var'] = $var;
?>

Agora recuperando em outra página por exemplo:

 

<?php
session_start();
echo $_SESSION['var'];
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tive que usar assim pq era objeto !! Desta forma que você colocou não funciona:

 

COLOCANDO

session_start();
$_SESSION["usuario"] = serialize($usuario);

 

PEGANDO

include('model/bean/Usuario.php');
session_start();
$var = unserialize($_SESSION['usuario']);
echo $teste = $var->getDsEmail();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Implemente a interface Serializable

 

Um exemplo simples:

class Teste implements Serializable {
private $teste = 1;
private $nome = 'Neto';

public function __construct(){
	echo 'Construindo ' , __CLASS__ , '<br />';
}

public function mostra(){
	printf( 'Teste: %d<br />Nome: %s<br />' , $this->teste , $this->nome );
}

public function setTeste( $teste ){
	$this->teste =& $teste;
}

public function setNome( $nome ){
	$this->nome =& $nome;
}

public function serialize(){
	echo __CLASS__ , '::serialize() chamado' , '<br />';
	return serialize( get_object_vars( $this ) );
}

public function unserialize( $data ){
	echo __CLASS__ , '::unserialize(' , $data , ') chamado' , '<br />';

	$data = unserialize( $data );

	foreach ( $data as $name => $value ) $this->$name = $value;
}
}

 

Usando:

 

session_start();

if ( isset( $_SESSION[ 'dados' ] ) ) $dados =& $_SESSION[ 'dados' ];
else {
$dados = new Teste();
$dados->setTeste( 30 );
$dados->setNome( 'João Batista Neto' );

$_SESSION[ 'dados' ] = $dados;
}

$dados->mostra();

 

A saída na primeira vez:

Construindo Teste

Teste: 30

Nome: João Batista Neto

Teste::serialize() chamado

 

Na segunda vez:

Teste::unserialize(a:2:{s:5:"teste";i:30;s:4:"nome";s:18:"João Batista Neto";}) chamado

Teste: 30

Nome: João Batista Neto

Teste::serialize() chamado

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.