PHP_ZIMBA Posted October 21, 2004 Report Share Posted October 21, 2004 O galera estou com problema com o session;Quando atualizo a página (F5) ele perde o valor registrado.Estou fazendo assim:PAGINA_FAZER_LOGIN.HTM (essa página chama o LOGIN.PHP)campologin e camposenha botão submit-----LOGIN.PHP<? include "../abertura.inc"; // .inc inclui a abertura $resultado = mysql_query("select * from operador where lg_operador = '$campologin'"); $linhas = mysql_num_rows($resultado); if ($linhas ==0){ //testa se a consulta retornou algum registro echo "Operador não encontrado'>"; }else{ if ($camposenha != mysql_result($resultado, 0, "sh_operador")){//confere a senha echo "A Senha Não Confere"; }else{ $login_operador = $campologin; $senha_operador = $camposenha; session_start(); session_register("login_operador"); session_register("senha_operador"); header("Location: padrão.php?id=63"); (CHAMA A PÁGINA SECRETA = OPERADOR.PHP) } }?>--------------------------OPERADOR.PHP ( ESSA PÁGINA CONSEGUE RESGATAR O NOME E A SENHA DAS SESSÕES, MAS SE EU ATUALIZO A PÁGINA (F5) ELE PERDE ESSAS SESSÕES;<? include("../operador/valida_session_operador.php"); //INICIO PUXANDO OS DADOS DA VALIDA_SESSION_OPERADOR.PHP?><HTML> <? session_start(); echo $HTTP_SESSION_VARS["login_operador"]; echo $HTTP_SESSION_VARS["senha_operador"]; ?> ..TODO CONTEUDO DA PÁGINA</HTML>------------------------VALIDA_SESSION_OPERADOR.PHP (CREIO QUE O PROBLEMA ESTÁ AQUI)(NESSA PAGINA EU VERIFICO SE O LOGIN E SENHA ESTÁ REGISTRADOS...)<? session_start(); if ((session_is_registered("login_operador") AND session_is_registered("senha_operador"))) { session_register('login_operador', 'senha_operador'); } /*aqui primeiro ele checa para ver se exite essas Sessoes, e depois ele coloca o valor das sessoes nessas variaveis... para fazermos os testes!*/ else{ echo "Você precisa se logar"; exit();/*caso não tinha session.. quer dizer.. ele não logou*/ } if(!(empty($login_operador)|| empty($senha_operador))){ include "../abertura.inc"; // .inc inclui a abertura $sql= "select * from operador where lg_operador = 'maicon' and sh_operador= '999999'"; $ver=mysql_query($sql,$conexao); // envia os dados pro banco $num = mysql_num_rows($ver); if ($num == 0){ /*caso exista*/ session_unregister('login_operador'); session_unregister('senha_operador'); /*apaga a session que existia mas era errada..*/ exit(); } }else{ session_unregister('login_operador'); session_unregister('senha_operador'); /*apaga a session que existia mas era errada..*/ Echo 'Você Não Efetuou Login'; exit(); } ?>------------------Gostaria de saber o erro que está ocorrendo...Preciso fazer muito issoobrigado. Quote Link to comment Share on other sites More sharing options...
0 Woody Posted October 21, 2004 Report Share Posted October 21, 2004 Eu costumo, logo depois de setar a session, redirecionar para uma outra página....Faça o mesmo e verifique se o valor foi perdido ou não...Ahh e coloca o session_start(): antes de qualquer linha de código.. porque é um campo que fica no header do cabeçalho HTTP... e se você escrever depois que mandou o cabeçalho.. aí num funciona... BELE???Até+ Quote Link to comment Share on other sites More sharing options...
0 Fabyo Posted October 21, 2004 Report Share Posted October 21, 2004 Manual do php:CuidadoSe você quer que seu script funcione independentemente do uso de register_globals, você precisa usar a matriz $_SESSION já que $_SESSION é automaticamente registrada. Se o seu script usa session_register(), ele não irá funcionar em ambientes onde a diretiva de configuração register_globals esteja desabilitada. Nota importante sobre register_globals:: Desde o PHP 4.2.0, o valor padrão para a diretiva register_globals é off. A comunidade do PHP encoraja a todos a não alterarem esta diretiva mas, ao invés, utilizar superglobals. session_register Quote Link to comment Share on other sites More sharing options...
0 Woody Posted October 21, 2004 Report Share Posted October 21, 2004 Por isso que eu digo:O manual do PHP é uma fonte e tanto de informações... utilize-a....Até+ Quote Link to comment Share on other sites More sharing options...
0 PHP_ZIMBA Posted October 22, 2004 Author Report Share Posted October 22, 2004 Bah mas tah tudo certojá conferi o manual.........Não posso usar o $_session nem $HTTP_VARS_SESSION (POR CAUSA DE MEU REGISTER GLOBAL (POIS não POSSO MUDAR))alguém manja, pra dizer aonde pode estar erradovaleu......... Quote Link to comment Share on other sites More sharing options...
Question
PHP_ZIMBA
O galera estou com problema com o session;
Quando atualizo a página (F5) ele perde o valor registrado.
Estou fazendo assim:
PAGINA_FAZER_LOGIN.HTM (essa página chama o LOGIN.PHP)
campologin e camposenha
botão submit
-----
LOGIN.PHP
<?
include "../abertura.inc"; // .inc inclui a abertura
$resultado = mysql_query("select * from operador where lg_operador = '$campologin'");
$linhas = mysql_num_rows($resultado);
if ($linhas ==0){ //testa se a consulta retornou algum registro
echo "Operador não encontrado'>";
}else{
if ($camposenha != mysql_result($resultado, 0, "sh_operador")){//confere a senha
echo "A Senha Não Confere";
}else{
$login_operador = $campologin;
$senha_operador = $camposenha;
session_start();
session_register("login_operador");
session_register("senha_operador");
header("Location: padrão.php?id=63"); (CHAMA A PÁGINA SECRETA = OPERADOR.PHP)
}
}
?>
-------------
-------------
OPERADOR.PHP ( ESSA PÁGINA CONSEGUE RESGATAR O NOME E A SENHA DAS SESSÕES,
MAS SE EU ATUALIZO A PÁGINA (F5) ELE PERDE ESSAS SESSÕES;
<?
include("../operador/valida_session_operador.php"); //INICIO PUXANDO OS DADOS DA VALIDA_SESSION_OPERADOR.PHP
?>
<HTML>
<?
session_start();
echo $HTTP_SESSION_VARS["login_operador"];
echo $HTTP_SESSION_VARS["senha_operador"];
?>
..TODO CONTEUDO DA PÁGINA
</HTML>
------------
------------
VALIDA_SESSION_OPERADOR.PHP (CREIO QUE O PROBLEMA ESTÁ AQUI)
(NESSA PAGINA EU VERIFICO SE O LOGIN E SENHA ESTÁ REGISTRADOS...)
<?
session_start();
if ((session_is_registered("login_operador") AND session_is_registered("senha_operador"))) {
session_register('login_operador', 'senha_operador');
} /*aqui primeiro ele checa para ver se exite essas Sessoes, e depois ele coloca o valor das sessoes nessas variaveis... para fazermos os testes!*/
else{
echo "Você precisa se logar";
exit();/*caso não tinha session.. quer dizer.. ele não logou*/
}
if(!(empty($login_operador)|| empty($senha_operador))){
include "../abertura.inc"; // .inc inclui a abertura
$sql= "select * from operador where lg_operador = 'maicon' and sh_operador= '999999'";
$ver=mysql_query($sql,$conexao); // envia os dados pro banco
$num = mysql_num_rows($ver);
if ($num == 0){ /*caso exista*/
session_unregister('login_operador');
session_unregister('senha_operador');
/*apaga a session que existia mas era errada..*/
exit();
}
}else{
session_unregister('login_operador');
session_unregister('senha_operador');
/*apaga a session que existia mas era errada..*/
Echo 'Você Não Efetuou Login';
exit();
}
?>
---------
---------
Gostaria de saber o erro que está ocorrendo...
Preciso fazer muito isso
obrigado.
Link to comment
Share on other sites
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.