Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom meus camaradas, eu estou desenvolvendo um sistema de gerenciamento de ti em php e mysql, beleza. Então agora vou passar para vocês um problema que estou passando e nao estou conseguindo resolver, pois ja tentei de tudo e não consegui.
Só para deixar claro, este sistema já estava funcionando com session e agora eu resolvi mudar para cookies, depois eu explico o motivo.
Vamos ao meu cenário aqui.
1º.: Página index.php:
Nesta pagina eu tenho uma função que verifica se o cookie existe se existir ele joga o usuario para a desktop.php.
if(!isset($_COOKIE["IdUsuario"]) || !isset($_COOKIE["Usuario"])){ }else{ }
blz.
2º.: Página valida_acesso.php
Caso o usuário não esteja logado ele vai informar seus dados de acesso na página index.php, aqui o sistema vai fazer varias validações do acesso e depois criar os cookies com algumas informações importantes para navegação do sistema. abaixo mostro como que eu crio os cookies.
Eu estou criando os cookies desta forma apenas:
**setcookie("IdUsuario", $Usuario["IdUsuario"]);
setcookie("Usuario", $Usuario["Usuario"]);**
3º.: Página desktop.php
Na página desktop.php eu incluir o arquivo valida_sessao.php, para verificar se o usuario esta logado no sistema, caso ele não esteja ele redirecionado para página de login normalmente. A forma que verifico se ele esta logado é a mesma do página index.php.
4º.: Página logoff.php
Esta página é responsavel por deletar os cookies e outras informações do sistema. Segue abaixo a pagina de logoff:
//DELETA O USUÁRIO DA TABELA WO_LOGADOS
$query= $mysql-> delet('user_logados','IdUsuario="'.$_COOKIE["IdUsuario"].'"');
//ATUALIZA A TABELA DE WO_NUM_CONEXAO
$query= $mysql-> select_ct('*','wo_acessos');
$ul= mysql_fetch_array($query);
$user_logados= $ul["Utilizados"]-1;
$query= $mysql-> update('wo_acessos','Utilizados="'.$user_logados.'"');
geralog('Sistema','Logoff com sucesso do sistema');
redirect("index.php");
ob_start();
setcookie ("IdUsuario");
setcookie("Usuario");
if(isset($_COOKIE['IdUsuario'])) {
unset($_COOKIE['IdUsuario']);
setcookie("IdUsuario", "1", "localhost", "/");
}
if(isset($_COOKIE['Usuario'])) {
unset($_COOKIE['Usuario']);
setcookie("Usuario", "welbert.oliveira", "localhost", "/");
}
Espero que até aqui esteja claro para vocês, pois agora vou entrar nos meus erros.
Erro principal: Eu nao estou conseguindo excluir os cookies dos navegadores, eu utilizei o firefox, IE9 e o Crome, em nenhum deles eu consegui. Testei de varias formas encontradas na internet, mais nenhum delas funcionou, esta ai foi a ultima que teste, ontem as 23:00.
O motivo deu estar usuando cookie agora e nao mais session:
1º.: Não pagina index.php quando eu faço a verificação se a sessao esta ativa ele nao funciona, em todos os teste que realizei ela sempre carrega a index.php.
2º.: No sistema eu tenho uma página que me mostra quais são os usuarios que estão logados no momento e uma das funções desta página é que eu possa fazer o logoff de um determinado usuario, com session eu não estou conseguindo e ate agora com o cookie tambem não.
Espero muito que alguem possa me ajudar.
Obrigado.
Obrigado por me ajudar mais eu coloquei esse codigo na minha página de logoff e nao deu certo. Pelo que eu entendi do codigo eu tenho que o colocar a primeira função na página de valida_acesso e a outra na de logoff, estou certo? se for nao deu certo.
Eu alterei o código para:
function SetCookieLive($IdUsuario, $value='', $expire = 0, $path = '', $domain='', $secure=false, $httponly=false){
$_COOKIE[$IdUsuario] = $Usuario["IdUsuario"];
return setcookie($IdUsuario, $value, $expire, $path, $domain, $secure, $httponly);
}
function SetCookieLive($Usuario, $value='', $expire = 0, $path = '', $domain='', $secure=false, $httponly=false){
$_COOKIE[$Usuario] = $Usuario["Usuario"];
return setcookie($Usuario, $value, $expire, $path, $domain, $secure, $httponly);
}vc usou esta função na página de logoff?
function RemoveCookieLive($name)
{
unset($_COOKIE[$name]);
return setcookie($name, NULL, -1);
}
posta o código da página de logoff!
foi. e mesmo assim não deu certo. Eu estou trabalhando com cookies só agora, caso alguem possa me dar os caminhos da pedra eu agradeço com exemplos eu agradeço.
obrigado pela ajuda. Só passei para informar que eu vou continuar trabalhando mesmo com $_SESSION, não vou ficar quebrando cabeça agora com $_COOKIE não, ainda estou desenvolvendo meu sistema, depois eu vejo o que vai ser melhor pra ele.
Valeu pela dica.
estas funções eu encontrei no manual do php, vê se ajuda.