Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
: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
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?
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'; 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".
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.
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...';
}
?>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
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.
Ok.. vou verificar sim..
Valeu mesmo pela força.. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Não sei se é isto, mas troca $_SESSION["nome"] por isto $_SESSION['nome'] e testa de novo.
Carlos Eduardo