PHP_ZIMBA Postado Outubro 21, 2004 Denunciar Share Postado Outubro 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Woody Postado Outubro 21, 2004 Denunciar Share Postado Outubro 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é+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabyo Postado Outubro 21, 2004 Denunciar Share Postado Outubro 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Woody Postado Outubro 21, 2004 Denunciar Share Postado Outubro 21, 2004 Por isso que eu digo:O manual do PHP é uma fonte e tanto de informações... utilize-a....Até+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 PHP_ZIMBA Postado Outubro 22, 2004 Autor Denunciar Share Postado Outubro 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......... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
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 para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.