Ir para conteúdo

POWERED BY:

Arquivado

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

Fernando C

Sessões não funcionam no Firefox 2.0 - PHP 5.2.4

Recommended Posts

Olá..

 

Sou (bem) iniciante em PHP.. estou tentando criar pgs de acesso restrito (login/senha) pelo Dreamweaver;

e testei tb alguns scripts de exemplos de sessoes (neste caso c/ o bloco de notas mesmo).

 

após habilitar o "session start" e configurar o session.save_path (no PHP.ini) estão funcionando quase perfeitas no IE (7),

mas no Firefox a pg de login vai direto p/ pg d erro e os scripts d teste não funcionam nem surgem mensagens de erro..

 

as pgs de teste (são 3) não surge a 2ª pg (o link não funciona);

são essas a seguir (copiei d 1 apostila):

 

<?php
session_start();
$_SESSION['nome']="Fernando";
?>
<html>
<head><title>Exemplo da utilização d uma Session<title></head>
<body>
<A HREF="session_recup.php">Próxima Página</A>
</body>
</html>
(session_inicio.php)

 

<?php
session_start();
if(!isset($_SESSION["nome"]))
header("location:session_inicio.php");
?>
<HTML>
<HEAD><TITLE>Recuperando uma Session</TITLE></HEAD>
<BODY>
<?php
echo "Olá ".$_SESSION["nome"].", como vai?";
?>
<BR /><A HREF="session_finalizar.php">Fechar a sessão</A>
</BODY>
</HTML>
(session_recup.php)

 

<?php
session_start();
unset($_SESSION['nome']);
<html>
<head><title>Finalizando uma Sessão</title></head>
<body>
A variável <?php echo $_SESSION['nome']?>
foi finalizada.
</body>
</html>
(session_finalizar.php)

 

verifiquei o console d erros do firefox; está em branco..

 

Agradeço antecipadamente alguma dica

Compartilhar este post


Link para o post
Compartilhar em outros sites

:mellow: , cara provavelmente deve se algo nesse session.save_path que você disse ter configurado no PHP.ini, n sei, eu nunk precisei configura nada pra sessions.

você ja havia testado sem essas alteraçoes no PHP.ini ?

n sei ne como eu disse , EU nunca precisei configura nada relacionado com sessions , testa ai sem faze alteraçao nenhuma xD http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.. emendei o feriadão, mas d volta ao "batente"...

 

Consegui identificar o problema: é preciso ativar os "cookies"..

 

Carlos Eduardo: a questão das aspas simples e duplas misturadas, já tinha percebido e padronizei, mas da na mesma..

 

cezaarr:

 

você ja havia testado sem essas alteraçoes no PHP.ini

sim, claro, ai n rola nem no IE..

 

Porém, permanece a dúvida: pq isso só ocorre c/ o Firefox??

 

d qqer forma, agradeço e qqer nov retorno, ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.. agradeço a ajuda..

 

usei esse script:

 

simple session test

<?php
/* [EDIT by danbrown AT php DOT net:
   The author of this note named this
   file tmp.php in his/her tests. If
   you save it as a different name,
   simply update the links at the
   bottom to reflect the change.] */

session_start();

$sessPath   = ini_get('session.save_path');
$sessCookie = ini_get('session.cookie_path');
$sessName   = ini_get('session.name');
$sessVar	= 'foo';

echo '<br>sessPath: ' . $sessPath;
echo '<br>sessCookie: ' . $sessCookie;

echo '<hr>';

if( !isset( $_GET['p'] ) ){
	// instantiate new session var
	$_SESSION[$sessVar] = 'hello world';
}else{
	if( $_GET['p'] == 1 ){

		// printing session value and global cookie PHPSESSID
		echo $sessVar . ': ';
		if( isset( $_SESSION[$sessVar] ) ){
			echo $_SESSION[$sessVar];
		}else{
			echo '[not exists]';
		}

		echo '<br>' . $sessName . ': ';

		if( isset( $_COOKIE[$sessName] ) ){
		echo $_COOKIE[$sessName];
		}else{
			if( isset( $_REQUEST[$sessName] ) ){
			echo $_REQUEST[$sessName];
			}else{
				if( isset( $_SERVER['HTTP_COOKIE'] ) ){
				echo $_SERVER['HTTP_COOKIE'];
				}else{
				echo 'problem, check your PHP settings';
				}
			}
		}

	}else{

		// destroy session by unset() function
		unset( $_SESSION[$sessVar] );

		// check if was destroyed
		if( !isset( $_SESSION[$sessVar] ) ){
			echo '<br>';
			echo $sessName . ' was "unseted"';
		}else{
			echo '<br>';
			echo $sessName . ' was not "unseted"';
		}

	}
}
?>
<hr>
<a href=tmp.php?p=1>test 1 (printing session value)</a>
<br>
<a href=tmp.php?p=2>test 2 (kill session)</a>
praticamente mesma coisa; no IE, td ok;

 

no Firefox:

c/ cookies ativados

(ao acionar o 1° link: "test 1 (printing session value)"):

 

simple session test

sessPath: C:\EasyPHP 2.0b1\tmp

sessCookie: /foo: hello world

PHPSESSID: p6dekj3l0585f6iesdq34be2p5 test 1 (printing session value)

test 2 (kill session)

ao desativar os cookies, fica assim:

 

simple session test

sessPath: C:\EasyPHP 2.0b1\tmp

sessCookie: /foo: [not exists]

PHPSESSID: problem, check your PHP settings test 1 (printing session value)

test 2 (kill session)

OBS: em todos os casos, ao acionar o 2° link (test 2 (kill session)), da a seguinte resposta:

 

PHPSESSID was "unseted".

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. qual a versão do firefox ?

 

2. no phinfo(), qual o valor de "session.save_handler" ?

 

3. como está definido "session.cookie_domain" ?

 

 

 

dica,

no php, aplique a definição em temop de execução, caso queira transportar a sessão dentro do dominio e subdominios

ini_set( 'session.cookie_domain', $_SERVER['SERVER_NAME'] );

nota: a dica acima, pode nao ter relação com o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta:

<?php
//reportar resultado na imasters
if(ini_get('session.use_only_cookies')){
	echo 'Ai a razao.Assim eh o recomendado...e o atual estado';
} else {
   echo 'A razao eh outra...';
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola..

 

hinom:

 

Firefox: 2.0.0.18

 

"session.save_handler" = "files"

 

"session.cookie_domain" = "no value"

 

sobre a dica, insiro essa linha no php.ini?

 

eibon:

 

'a razao eh outra'.. :-(

 

agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

aparentemente está tudo "normal"

 

experimente

 

1. teste em outro pc usando a mesma versao do firefox

 

2. teste nesse mesmo pc usando a versão 3 ou atual do firefox

 

mesmo se os problemas persistirem nesses testes,

adicione no arquivo php

 

ini_set( 'session.cookie_domain', $_SERVER['SERVER_NAME'] );

obviamente que ini_set deve ser usado, preferivelmente antes de quaisquer outras execuções.

geralmente num arquivo de inicialização de variáveis.

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.