Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 448

Eliminar Dados do usuario junto com sessão no BD

08-01-2016 03:49

Essa é minha pagina de logof.php ela elimina sessions quando o usuário clica em sair.
<?php $logoutGoTo = "../index.php"; if (!isset($_SESSION)) { session_start(); } $_SESSION['MM_Username'] = NULL; $_SESSION['MM_UserGroup'] = NULL; $_SESSION['id'] = NULL; $_SESSION['nome_p'] = NULL; $_SESSION['nome_i'] = NULL; unset($_SESSION['MM_Username']); unset($_SESSION['MM_UserGroup']); unset($_SESSION['id']); unset($_SESSION['nome_p']); unset($_SESSION['nome_i']); if ($logoutGoTo != "") {header("Location: $logoutGoTo"); exit; } ?>

como eu faço para quando o usuario clicar em sair excluir os dados online dele do banco de dados
por que essa função abaixo não funciona junto com a de cima ? tem algum erro ? obrigado
if (isset($_SESSION['id'])){ $expira_em = 1; //DEFINE EM MINUTOS A EXPIRAÇÃO DO ACESSO DO USUARIO $tempo_fim = date('Y-m-d H:i:s',mktime(date('H'),date('i') - $expira_em,date('s'),date('m'),date('d'),date('Y'))); //EXCLUI USUARIOS QUE ESTEJAM INATIVOS NO TEMPO DEFINIDO COMO EXPIRAÇÃO mysql_query("DELETE FROM usuarios_online WHERE tempo <= '$tempo_fim'"); }

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 13:14

Pelo que vejo você salva o nome do usuário na SESSION, não salva também no banco de dados?
Porque se salvar basta aplicar o DELETE onde o usuário for igual ao da SESSION.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 448

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 14:10

sim, exato e por isso que estou com dúvida de como integrar o primeiro código que é a session com o segundo código que é a exclusão dos dados do banco de dados.
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 448

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 14:18

Agora eu entedi sua pergunta, eu salvo sim o nome de usuário dentro da tabela usuários_online o nome da tabela é o nome das duas colunas que gravam nome são nome_p ( Proprietário ), nome_i( Inquilino ) e temos a coluna id_usuario, eu gostaria de excluir os dados via id pois como tenho duas colunas de nome seria melhor utilizar o id_usuario para não ficar dando AND ou você acha que é utilizar o nome ? como eu faria ? obrigado
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 14:38

Se você usa uma coluna para o id do usuário com auto increment não tem problema nenhum.

Já com o id do usuário salvo em SESSION você pode fazer algo assim:

mysql_query("DELETE FROM usuarios_online WHERE id_usuario = '".$_SESSION['id']."' ");

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 448

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 14:45

certo mas como eu para manter essa parte pois ela determina que serão excluidos os usuarios inativo em 1 minuto ?
tempo <= '$tempo_fim'

preciso manter esse if tambem ?
if (isset($_SESSION['id'])){

0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 448

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 14:48


<?php $logoutGoTo = "../index.php"; if (!isset($_SESSION)) { session_start(); } $_SESSION['MM_Username'] = NULL; $_SESSION['MM_UserGroup'] = NULL; $_SESSION['id'] = NULL; $_SESSION['nome_p'] = NULL; $_SESSION['nome_i'] = NULL; unset($_SESSION['MM_Username']); unset($_SESSION['MM_UserGroup']); unset($_SESSION['id']); unset($_SESSION['nome_p']); unset($_SESSION['nome_i']); if (isset($_SESSION['id'])){ $expira_em = 1; //DEFINE EM MINUTOS A EXPIRAÇÃO DO ACESSO DO USUARIO $tempo_fim = date('Y-m-d H:i:s',mktime(date('H'),date('i') - $expira_em,date('s'),date('m'),date('d'),date('Y'))); mysql_query("DELETE FROM usuarios_online WHERE tempo <= '$tempo_fim' AND id_usuario = '".$_SESSION['id']."' "); } if ($logoutGoTo != "") {header("Location: $logoutGoTo"); exit; } ?>

Eu fiz assim e não deu certo tem algum erro ai ? obrigado
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 14:58

Você primeiro apagou "unset" a SESSION id

unset($_SESSION['id']);

Depois tentou verificar se ela está setada

if (isset($_SESSION['id'])){

Teria que colocar todo o bloco do if para deletar antes de fazer o unset.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 448

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 15:05

Mesmo subindo o bloco do if continua não funcionando acabei de fazer o teste aqui , quando eu clico em logoff ele não elimina o registro no banco de dados.

<?php $logoutGoTo = "../index.php"; if (!isset($_SESSION)) { session_start(); } $_SESSION['MM_Username'] = NULL; $_SESSION['MM_UserGroup'] = NULL; $_SESSION['id'] = NULL; $_SESSION['nome_p'] = NULL; $_SESSION['nome_i'] = NULL; if (isset($_SESSION['id'])){ $expira_em = 1; //DEFINE EM MINUTOS A EXPIRAÇÃO DO ACESSO DO USUARIO $tempo_fim = date('Y-m-d H:i:s',mktime(date('H'),date('i') - $expira_em,date('s'),date('m'),date('d'),date('Y'))); mysql_query("DELETE FROM usuarios_online WHERE tempo <= '$tempo_fim' AND id_usuario = '".$_SESSION['id']."' "); } unset($_SESSION['MM_Username']); unset($_SESSION['MM_UserGroup']); unset($_SESSION['id']); unset($_SESSION['nome_p']); unset($_SESSION['nome_i']); if ($logoutGoTo != "") {header("Location: $logoutGoTo"); exit; } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 15:16

Tem um NULL para a SESSION do id antes.

$_SESSION['MM_Username'] = NULL; $_SESSION['MM_UserGroup'] = NULL; $_SESSION['id'] = NULL; // AQUI ..

Também não acho necessário o uso do tempo, já que vai deletar baseado no id.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 448

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 15:25


<?php $logoutGoTo = "../index.php"; if (!isset($_SESSION)) { session_start(); } if (isset($_SESSION['id'])){ mysql_query("DELETE FROM usuarios_online WHERE id_usuario = '".$_SESSION['id']."' "); } $_SESSION['MM_Username'] = NULL; $_SESSION['MM_UserGroup'] = NULL; $_SESSION['nome_p'] = NULL; $_SESSION['nome_i'] = NULL; unset($_SESSION['MM_Username']); unset($_SESSION['MM_UserGroup']); unset($_SESSION['id']); unset($_SESSION['nome_p']); unset($_SESSION['nome_i']); if ($logoutGoTo != "") {header("Location: $logoutGoTo"); exit; } ?>

Removi o tempo e removi o id = null e continua não excluindo o registro após o logoff
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 15:31

Observei uma coisa. Você não tem um include para conexão com o banco de dados. Assim a consulta não vai funcionar.

Tem que por sua conexão com o banco de dados no início, após o session_start.

Fiz um código para você testar e capturar os erros caso ocorram.

<?php session_start(); $logoutGoTo = "../index.php"; // FALTA AQUI UM INCLUDE PARA CONECTAR AO BANCO DE DADOS echo $_SESSION['id']; if (isset($_SESSION['id'])){ mysql_query("DELETE FROM usuarios_online WHERE id_usuario = '".$_SESSION['id']."' ") or die(mysql_error()); } $_SESSION['MM_Username'] = NULL; $_SESSION['MM_UserGroup'] = NULL; $_SESSION['nome_p'] = NULL; $_SESSION['nome_i'] = NULL; unset($_SESSION['MM_Username']); unset($_SESSION['MM_UserGroup']); unset($_SESSION['id']); unset($_SESSION['nome_p']); unset($_SESSION['nome_i']); // DESCOMENTAR APÓS O TESTE //if ($logoutGoTo != "") {header("Location: $logoutGoTo"); //exit; //} ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 448

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 15:34

Um não havia reparado isso , rsrsrs

deu este erro aqui
1No database selected

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 15:36

Esse erro é exatamente por não ter o mysql_connect.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 448

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 15:40

Deu certinho, preferi tirar a restrição de tempo mesmo pois se usuário entrasse e ficasse menos de 1 minuto o registro do banco não seria excluido tendo em vista de que é necessário que ele seja obrigatoriamente excluido na saída do usuário.

Código.
<?php include 'config.php' ;?> <?php $logoutGoTo = "../index.php"; if (!isset($_SESSION)) { session_start(); } if (isset($_SESSION['id'])){ mysql_query("DELETE FROM usuarios_online WHERE id_usuario = '".$_SESSION['id']."' "); } $_SESSION['MM_Username'] = NULL; $_SESSION['MM_UserGroup'] = NULL; $_SESSION['id'] = NULL; $_SESSION['nome_p'] = NULL; $_SESSION['nome_i'] = NULL; unset($_SESSION['MM_Username']); unset($_SESSION['MM_UserGroup']); unset($_SESSION['id']); unset($_SESSION['nome_p']); unset($_SESSION['nome_i']); if ($logoutGoTo != "") {header("Location: $logoutGoTo"); exit; } ?>

1
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 448

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 15:48

Deixa eu te fazer mais uma pergunta existe como o auto incremente voltar em 1 toda hora que for feita essa exclusão de usuários ? para que não fique gerando numero de id cada vez maiores pois a minha tabela está assim

*tabela * usuarios_online *colunas* id(auto increment), id_usuario, nome_p, nome_i, sessao, tempo, ip

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 21:51

Seria zerar ou reiniciar a contagem do auto increment dos usuários já existente na tabela?
Isso não vai gerar um conflito no seu sistema? Por exemplo, se você faz associações com o id para o sistema. Mudando o id vai dar conflitos.

Zerar seria você definir um número para a partir daquele momento começar o auto increment. Ou seja, se você tem uma tabela com:

1 João
2 Maria


E rodar o seguinte código:

ALTER TABLE tabela.bancodedados AUTO_INCREMENT=0

Se fizer um INSERT vai continuar a contagem:

1 João
2 Maria
3 Pedro


Agora, se você rodar por exemplo

ALTER TABLE tabela.bancodedados AUTO_INCREMENT=20

E fizer um INSERT colocando o valor 20 por exemplo vai ficar:

1 João
2 Maria
20 Pedro
21..


Agora reiniciar a contagem você vai conflitar o sistema se usa o id, por exemplo:

WHERE id='..'

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 448

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 23:07

Você está com skype ainda ? obrigado.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Eliminar Dados do usuario junto com sessão no BD

08-01-2016 23:53

Sim, envio por MP.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado