shapolin 0 Denunciar post Postado Setembro 27, 2007 Olá pessoal,estou com um problema meio grande.estou construindo um sistema todo O.O , e no login ele cria um objeto... e queria colocar ele na sessao para visualizar nas outras paginas o usuario.... eu tentei utilizar "serialize" mais não entendi o conceito nem como utiliza-loteria um geito mais simples de fazer isso?Desde Já Agradesço. Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Setembro 28, 2007 Bem-vindo ao fórum, shapolin. Recomendaria você a utilizar a função serialize() mesmo ^_ ^ Qual sua dúvida em como utilizá-la? Lembrando que para resgatar a string gerada, deve utilizar unserialize(). Compartilhar este post Link para o post Compartilhar em outros sites
shapolin 0 Denunciar post Postado Setembro 30, 2007 Obrigado por responder.eu faco um objeto de uma classe minhae logo abaixo seto ele com as propriedades que desejo.em seguida eu aplico $user <- eh o objeto.$_SESSION['user']=serialize($user); e na outra pagina que eu quero apresentar.eu incluo o bean nas duas paginas$user = unserialize($_SESSION['user']);seria esses os códigos e da erroCall to a member function get() on a non-objectquando eu serializo e unserializo ele naum dah erro nais quando eu quero pegar um dado desse objeto naum consigo... Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Outubro 1, 2007 Entendi. É possível que o serialize() não está encontrando a classe. Esta classe de usuário está num arquivo separado? Se sim, inclua este arquivo na segunda página, onde irá usar o unserialize(). []s Compartilhar este post Link para o post Compartilhar em outros sites
shapolin 0 Denunciar post Postado Outubro 1, 2007 sim tenho nas duas paginas estrututa de paginas game --index.php --autentica.php --logout.php ->bean -----player.php ->nucleo -----index.php ->banco -----player.xml <- isso naum eh importante :D pagina autentica.php esta na pasta PHP <? include ("bean/player.php"); $player = new player(); $_SESSION['jogador'] = serialize($player); echo "<br>Redirecionando...<br>"; echo "<meta http-equiv='refresh' content='2;url=nucleo/'>"; ?> pagina /nucleo/index.php PHP <? include ("../bean/player.php"); echo "ok"; $player = unserialize($_SESSION['jogador']); print $player->getNome(); ?> bean /bean/player.php PHP <?PHP class player{ private $name, $login, $senha, $email; public function __construct() { }//constructor # public function __toString() { # return $this->name; # }//to string public function get($campo) { return $this->$campo; }//get public function set($campo,$valor) { $this->$campo=$valor; return true; }//set public function mostra(){ return $this->$nome; } }//player-class ?> Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Outubro 2, 2007 shapolin, olhei sua classe e vi que não há o método getNome(), chamado no arquivo index.php, dentro do diretório "nucleo". Se entendi o que precisa, deveria usar: PHP print $player->get('name'); Porém, no construtor da classe você não define nenhuma das propriedades, então retornará vazio mesmo, a não ser que defina com seu método set(). Dê uma revisada na classe, pois o método mostra() está procurando uma propriedade que não existe ($nome - tem apenas $name). Qualquer coisa, posta aí ;) Compartilhar este post Link para o post Compartilhar em outros sites
shapolin 0 Denunciar post Postado Outubro 2, 2007 Anderson,eu fis os metodos revisei todo o código troquei muita coisa errada mais continua na mesma dá o mesmo erro Fatal error: Call to a member function get() on a non-object in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\game\nucleo\index.php on line 5linha 5 print $player->get('nome');já estou com o presentimento que deve ser o meu apache mais instalei tudo no padrão e configurei o php5 normal. Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Outubro 2, 2007 Posta as alterações que fizeste ;) Compartilhar este post Link para o post Compartilhar em outros sites
shapolin 0 Denunciar post Postado Outubro 4, 2007 -- autentica.php -- include ("bean/player.php"); $player = new player(); $player->set('name','shapolin'); $player->set('login','shapolin'); $player->set('senha','teste'); $player->set('email','shapolin@gawab.com'); #vai jogar o objeto na sessao $_SESSION['jogador']=serialize($player); #vai passar a bola para o nucleo do game que vai ser a index do pesonagem echo "<br>Redirecionando...<br>"; echo "<meta http-equiv='refresh' content='2;url=nucleo/'> " -- /nucleo/index.php -- <? echo "ok"; $player = unserialize($_SESSION['jogador']); print $player->get('nome');?> mesmo erro Fatal error: Call to a member function get() on a non-object in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\game\nucleo\index.php on line 5 Compartilhar este post Link para o post Compartilhar em outros sites
MagicalTrevor 0 Denunciar post Postado Outubro 5, 2007 kra, ali no set tu ta usando 'name' e no get ta querendo pega 'nome'... por isso o erro Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Outubro 5, 2007 Justamente, shapolin. Dê uma revisada nos nomes das propriedades e os que estão chamados.É importante adotar um padrão pra tudo, incluindo funções.Qualquer coisa, posta aí ;) Compartilhar este post Link para o post Compartilhar em outros sites
shapolin 0 Denunciar post Postado Outubro 8, 2007 eu denovo... hehe agora tenho certeza que não é um metodo meu que esta dando erro revisei todo o código de cima a baixo esta qki <?PHP -=- /bean/player.php -=-class player{ private $nome, $login, $senha, $email; public function __construct() { }//constructor public function get($campo) { return $this->$campo; }//get public function set($campo,$valor) { $this->$campo=$valor; return true; }//set }//player-class?> -=- /autentica.php -=- include ("bean/player.php"); $player = new player(); $player->set('nome','Fernando'); $_SESSION['jogador'] = serialize($player); echo "<br>Redirecionando...<br>"; echo "<meta http-equiv='refresh' content='2;url=nucleo/'>"; -=- /nucleo/index.php -=- include ("../bean/player.php"); echo "ok"; $player = unserialize($_SESSION['jogador']); print $player->get('nome'); se for um erro de metodos ou de digitacao eu vou meenforcar...... já estou com esse código faz umas 5 semanas..... Compartilhar este post Link para o post Compartilhar em outros sites
shapolin 0 Denunciar post Postado Outubro 13, 2007 Olá,hehe ainda não consegui fazer alguem tem alguma idéia?Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
MagicalTrevor 0 Denunciar post Postado Outubro 13, 2007 Qual o erro que está aparecendo? Ah, e nao esquece sempre de por a tag <?php antes de qualquer codigo php -=- /nucleo/index.php -=-<?phpinclude ("../bean/player.php");(...)?> Compartilhar este post Link para o post Compartilhar em outros sites
Dórian Conde Langbeck 0 Denunciar post Postado Outubro 13, 2007 voce esta iniciando a _SESSION em /nucleo/index.php?!porque senao ele nao vai conseguir recuperar o serialize()... Compartilhar este post Link para o post Compartilhar em outros sites
shapolin 0 Denunciar post Postado Outubro 16, 2007 Olá,o erro Fatal error: Call to a member function get() on a non-object in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\game\game\nucleo\index.php on line 5linha 5 do index.php print $player->get('nome');Já revisei todo o códigoe não tem chamadas de metodos errados ou erros de digitaçãoe quando eu coloco o session_start(); na nucleo/index.phpele dah o seguinte erroFatal error: Call to a member function get() on a non-object in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\game\game\nucleo\play.php on line 5alguem tem uma ideia o que pode estar acontecendo? Compartilhar este post Link para o post Compartilhar em outros sites
MagicalTrevor 0 Denunciar post Postado Outubro 16, 2007 lembrando que tu tem que por session_start(); em todos os arkivos, no autentica.php tambemm Compartilhar este post Link para o post Compartilhar em outros sites
shapolin 0 Denunciar post Postado Outubro 16, 2007 olá, Se eu coloco o session_start(); na autentica.php ele dá o seguinte erro Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\teste\autentica.php:2) in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\teste\autentica.php on line 3 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\teste\autentica.php:2) in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\teste\autentica.php on line 3 -- esse é o codigo do arquivo --<link rel="stylesheet" type="text/css" href="css.css"><?PHP session_start(); $banco = @simplexml_load_file("banco/".$_POST['login'].".xml"); if ( !$banco ){ echo "Desculpe mais voce não eh cadastrado"; echo "click aki para <a href='index.php'>voltar</a>"; }else{ if ($banco->system->senha != $_POST['senha']){ echo "Desculpe mais voce errou a sua senha ..."; echo "<a href='index.php'>Tente denovo</a>"; }else{ echo "<table align=center>"; echo "<tr><td align=center><img src=".$banco->system->img."></td></tr>"; echo "<tr><td class=td-autentica>"; echo " Bem vindo ".$banco->system->name." ";// include "nucleo/bean/player.php";// $player = new player();// $player->set('nome','fernando');// $player->get('nome');// $_SESSION['jogador'] = serialize($player); echo "</td></tr>"; echo "<tr><td align=center class=td-autentica>"; echo " redirecionando... "; echo "</td></tr></table>"; echo "<meta http-equiv='refresh' content='2; url=../game/nucleo/'>";// echo "<meta http-equiv='refresh' content='2; url=../game/nucleo/play.php'>"; } }?> Compartilhar este post Link para o post Compartilhar em outros sites
shapolin 0 Denunciar post Postado Outubro 17, 2007 Olá,consegui passar pala sessao o objeto tive que seguir uma nomenclatura para conseguir- 1º o include da classe - 2º a session_start();- 3º o resto (pegar o objeto da sessao, gravar o objeto da sesao) agora tu tem acesso a classe e a sessao. eu pesquisei e tinha um kra falando que o php se perde quando tem a session_start primeiro do include :Dbom essa eu naum sabia eu estava fazendo tudo errado agora eu testei e funcionou...t+. Compartilhar este post Link para o post Compartilhar em outros sites