Ir para conteúdo

POWERED BY:

Arquivado

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

*_Charles Potter_*

[Resolvido] Problema com Cookie

Recommended Posts

Ahe gente,

 

 

 

 

Tipo tenho dois arquivo

 

 

 

 

TesteA.php

 

TesteB.php

 

 

 

 

O testeA.php abre o TesteB.php via file_get_contents. 

 

Mas Não conseguido criar cookie dentro do TesteB.php, ja tentei de tudo possivel e nada funciona,

 

 

 

 

Alguem tem alguma dica?

 

 

 

 

Nota: Precisa manter o TesteB sendo aberto por file_get_contents.

 

 

 

 

Tenho acesso e controle dos dois.

 

 

 

 

VLw;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola André,

 

 

 

 

Não o A.php esta em um servidor, o B.php em outro, o include de arquivo externo esta desativado e não pode ser ativado. e o objetivo de utilizar o file get é exatamente parecer que o B esta no A.

 

 

 

 

Não tem como alterar algo para todos os cookies ou session que eu criar no B.php tenham efeito normal como se fosse no A?

 

 

 

 

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se estiverem em dominios diferentes, você tem que especificar isso ao criar o cookie.

Veja: http://br.php.net/manual/en/function.setcookie.php

 

O 5º parâmetro é o que determina o dominio do cookie.

 

e o objetivo de utilizar o file get é exatamente parecer que o B esta no A.

Só que fazendo dessa maneira, B não está em A. Você está pegando o retorno (se tiver algum) do arquivo já processado pelo servidor onde está B.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde andre,

 

 

 

 

Exato,

 

 

 

 

O A pega o retorno do B e exibe na tela.

 

Mas por exemplo, posso criar um cookie dentro do B ( QUe e chamado pelo file get ) e definir como dominio o A ? Se sim, nas proximas chamadas do B ele conseguiria abrir o cookie?

 

 

 

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então não tem como um cookie criado por A ser acessado por A e por B (note que usei "e" e não "ou"). Ou ele pode ser acessado por A ou por B, nunca os dois ao mesmo tempo. O que você pode fazer é criar 2 cookies, um para A e outro para B.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola andre beleza, mas tipo se eu criar um cookie no B ( que é aberto pelo A lembrando ), quando eu der refresh no A eu continuo com o acesso ao cookie que criei no B ( acesso dentro do B ) ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu continuo com o acesso ao cookie que criei no B

Você NUNCA (veja a força da palavra hehe) terá acesso ao cookie criado por B, já que ele está em um dominio diferente. O que estou tentando dizer é que um cookie só é acessível pelo servidor com o dominio que o criou. Não tem como um cookie criado em A ser acessado por B.

 

Isso só é possível se você encontrar uma brecha no navegador do usuário que permita o roubo de cookies de outros dominios. Assim você pode roubar o cookie do orkut (e consequentemente o roubar a conta do orkut), e todos os outros cookies que a pessoa tiver.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola andre,

 

 

 

 

Força mesmo em,muhaua

 

 

 

 

Mas tipo,

 

Se o B dar include em um arquivo qye esta no A chamado CriaCookieNoA.php dae o B ( que foi acesso pelo A através do file_get ) conseguiria forçar o A a gera um cookie no A, isto é possivel?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o B dar include em um arquivo qye esta no A chamado CriaCookieNoA.php

O include já muda tudo. Eu não sei mais se estou entendo ou não isso rs, sério mesmo.

 

conseguiria forçar o A a gera um cookie no A, isto é possivel?

A resposta está no post #4 desde tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola andre,

 

vlw pela ajuda, vou fazer uns testes hoje, qualquer coisa retorno aq,,

 

vlw mesmo,,

 

Bom Dia Gente, 

 

CASO RESOLVIDO!!

 

Então consegui fazer o que queria de uma forma bem interessante.

 

Em resumo:

 

O A.php gera uma SessionID que é passada ao B.php através do 

 

$opts 	= array	(
							'http' 		=> array	(
													'method' 	=> 'GET',
													'header' 	=> 'Cookie: PHPSESSID=' . session_id()
													)
							);
			$context 	= stream_context_create($opts);

			$Html 		= file_get_contents($Arquivo, false, $context);

 

 

 

 

O B.php recebe este valor e cria uma seção temporaria com o SessionID fixo, e manipula todas as rotinas envolvendo session através do banco de dados:

 

 

 

 

class MySQL_Session
{
	
	private static $_sess_id;

	public static function open ()
	{
		
	}
	
	public static function close ()
	{
	}

	public static function read($id)
	{
		$ConsSes	= mysql_query(	"
									Select
										*
									From
										com_session
									Where
										CodigoSessao = '" . $id . "'
									");
		$TotaSes	= mysql_num_rows($ConsSes);
		$DadoSes	= mysql_fetch_array($ConsSes);
		
		if($TotaSes)
		{
			
			return $DadoSes["Valor"];
			
		}else{
			
			return "";	
			
		}
		
	}

	public static function write ( $id, $data)
	{	
	
		
		$ConsSes	= mysql_query(	"
									Select
										*
									From
										com_session
									Where
										CodigoSessao = '" . $id . "'
									");
		$TotaSes	= mysql_num_rows($ConsSes);
		$DadoSes	= mysql_fetch_array($ConsSes);
		
		if($TotaSes)
		{
			
			mysql_query("
						Update
							com_session
						Set
							Valor = '" . $data . "',
							Expira = '" . mktime() . "'
						Where
							Codigo = '" . $DadoSes["Codigo"] . "'
						");
			
		}else{
			
			mysql_query("
						Insert Into
						com_session
						(
							CodigoSessao,
							Valor,
							Expira
						) VALUES (
							'" . $id . "',
							'" . $data . "',
							'" . mktime() . "'
						)
						");
			
		}
		
	}

	public static function destroy( $id)
	{
		
		mysql_query("
					Delete From
						com_session
					Where
						CodigoSessao = '" . $id . "'
					");
		
	}

	public static function gc ( $max )
	{
		
		$Maximo		= 86400;
		
		mysql_query("
					Delete From
						com_session
					Where
						Expira < " . ( mktime() - $Maximo ) . "
					");
		
	}

	function __construct ($SessionID = "0")
	{
		
		if($SessionID!="0")
		{

			session_id($SessionID);
			
			//Define que o usuário vai definir os handler
			ini_set ( "session.save_handler", "user");
			
			//Define as funções
			session_set_save_handler ( array ( &$this, "open"), array ( &$this, "close"), array ( &$this, "read"), array ( &$this, "write"), array ( &$this, "destroy"), array ( &$this, "gc"));
		
		}
		
		return true;
		
	}
	
}
$Session 		= new MySQL_Session($_COOKIE["PHPSESSID"]);

session_start();

 

 

 

 

Desta forma o B.php vai utilizar o SessionID criado pelo A.php para armazenar e utilizar as session diretamente pelo Banco de dados.

 

 

 

 

Show né,

 

uhauha,,

 

 

 

 

Vlw andre pela ajuda

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.