Jump to content


Photo

Como Faço Isso... (relação A Data E Login)


  • Faça o login para participar
15 replies to this topic

#1 Naruto

Naruto

    12 Horas

  • Usuários
  • 186 posts
  • Sexo:Não informado

Posted 12/09/2004, 13:09

Queria tipo fazer o seguinte: Quando tal pessoa fizesse login... Estimular um horario num campo "tempo" na database (esse comando tem q ser do tipo TIME). Exemplo 00h10min... E ESSE TEMPO DE 10 MINUTOS FOSSE DIMINUINDO atéh ficar 00h00min...

Depois eu queria q daki 5 minutos... o php checasse os usuarios q estão com o tempo esgotado e deletassem eles.

if (daki 5 minutos) {

cheque na tabela kem tem 00h00min e delete ele

}


Edição feita por: Naruto, 12/09/2004, 13:15.

uzumaki.naruto
-----------------------------------------------
"Eu não vou contra minhas palavras. Este é meu estilo ninja."
» Uzumaki Naruto

#2 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 12/09/2004, 15:11

Queria tipo fazer o seguinte: Quando tal pessoa fizesse login... Estimular um horario num campo "tempo" na database (esse comando tem q ser do tipo TIME). Exemplo 00h10min... E ESSE TEMPO DE 10 MINUTOS FOSSE DIMINUINDO atéh ficar 00h00min...

Depois eu queria q daki 5 minutos... o php checasse os usuarios q estão com o tempo esgotado e deletassem eles.

if (daki 5 minutos) {

cheque na tabela kem tem 00h00min e delete ele

}

ih Naruto, não vamos complicar...
pra que ficar "regredindo" os valores no mysql?

o que vc quer fazer pode ser feito de outra forma... crie um campo timestamp na sua tabela... o formato dele é em segundos, algo assim: 1045456454654

bom, imagine que o cara se logou agora, e agora seja 1045456454654(valor ficticio).

e vc quer que, ao se passarem 10 minutos(chamado por alguns programadores de 600 segundos, hehehe) depois do login eles fossem deletados...
bom, no seu script de login, coloque o seguinte:

$apagar=time()-600;

mysql_query("delete from suatabela where campo_timestamp<$apagar");

claro que essa verificação, em vez de ser no login, pode ser em todas as paginas, ou num arquivo separado, agendado num cronjob, mas aí é a sua escolha (y)

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#3 Naruto

Naruto

    12 Horas

  • Usuários
  • 186 posts
  • Sexo:Não informado

Posted 12/09/2004, 22:30

e como eu insiro o tempo nesse campo ?
uzumaki.naruto
-----------------------------------------------
"Eu não vou contra minhas palavras. Este é meu estilo ninja."
» Uzumaki Naruto

#4 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 12/09/2004, 22:36

com time();

$timestamp = time();

mysql_query("INSERT INTO tabela (tempo) VALUES ('$timestamp')");


Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#5 Naruto

Naruto

    12 Horas

  • Usuários
  • 186 posts
  • Sexo:Não informado

Posted 13/09/2004, 17:57

com time();

$timestamp = time();

mysql_query("INSERT INTO tabela (tempo) VALUES ('$timestamp')");

colokei esse comando e continua tudo 000000000000 nos valores dos campos =/
uzumaki.naruto
-----------------------------------------------
"Eu não vou contra minhas palavras. Este é meu estilo ninja."
» Uzumaki Naruto

#6 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 13/09/2004, 18:24

rapaz, deveria funcionar... posta seu codigo aih...

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#7 Naruto

Naruto

    12 Horas

  • Usuários
  • 186 posts
  • Sexo:Não informado

Posted 13/09/2004, 22:14

PHP
<?
include "config.php"; //inclui o arquivo de configurações

$db  = mysql_connect ($host, $login_db, $senha_db); //conecta ao mysql
$basedados = mysql_select_db($database); //conecta a base de dados

$timestamp = time();

mysql_query("INSERT INTO users_online VALUES ('$login', '$timestamp')");
?>

uzumaki.naruto
-----------------------------------------------
"Eu não vou contra minhas palavras. Este é meu estilo ninja."
» Uzumaki Naruto

#8 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 14/09/2004, 08:19

cara, tah funcionando :-D

sua tabela users_online tem só dois campos? se tiver mais de 2 vc vai ter que defini-los na query

mysql_query("INSERT INTO users_online (campoX, campoY) VALUES ('$login', '$timestamp')");

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#9 Naruto

Naruto

    12 Horas

  • Usuários
  • 186 posts
  • Sexo:Não informado

Posted 14/09/2004, 17:42

num funciona =(

o q deveria aparecer no campo ao invez dess emonte de 000000?

será q é por causa q eu to testando o php no meu pc ao invez de testar na net?

Edição feita por: Naruto, 14/09/2004, 17:44.

uzumaki.naruto
-----------------------------------------------
"Eu não vou contra minhas palavras. Este é meu estilo ninja."
» Uzumaki Naruto

#10 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 14/09/2004, 18:10

num funciona =(

o q deveria aparecer no campo ao invez dess emonte de 000000?

será q é por causa q eu to testando o php no meu pc ao invez de testar na net?

deveria aparecer algo assim:
1095160634


cara, por via das duvidas, faça a query assim:

mysql_query("INSERT INTO users_online (campoX, campoY) VALUES ('$login', '$timestamp')");


de um echo na variavel $timestamp pra ver o que tem nela tambem...

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#11 Naruto

Naruto

    12 Horas

  • Usuários
  • 186 posts
  • Sexo:Não informado

Posted 14/09/2004, 19:05

foi isso q eu fiz e num deu em nada
uzumaki.naruto
-----------------------------------------------
"Eu não vou contra minhas palavras. Este é meu estilo ninja."
» Uzumaki Naruto

#12 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 15/09/2004, 05:21

Vê assim:

PHP
<?
include "config.php"; //inclui o arquivo de configurações

mysql_connect ($host, $login_db, $senha_db); //conecta ao mysql
mysql_select_db($database); //conecta a base de dados

$timestamp = time();

mysql_query("INSERT INTO users_online VALUES ('$login', '$timestamp')");
?>

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#13 snkneo

snkneo

    Normal

  • Usuários
  • 118 posts
  • Sexo:Não informado
  • Localidade:Brazil
  • Interesses:Girls, Sexo, Games

Posted 15/06/2005, 01:14

bom.. estou com uma duvida semelhante...

<?
$bt = mysql_query("SELECT u_acesso FROM usuarios WHERE email_user='{$email_user}' LIMIT 1");
$we = mysql_fetch_array($bt);

$u_acesso = $we["u_acesso"];

$agora = time()-60;

if ($u_acesso < $agora) {

header("Location: login.php");

} else {

$timestamp = time();

mysql_query("UPDATE usuarios SET u_acesso='$timestamp' WHERE email_user='{$email_user}' LIMIT 1");


?>


Bom.. criei esse codigo ae... oq seria ? bom... tenho um sistema de login, por session. Quero que a cada tempo determinado, por exemplo 5min (300seg) desconecte o usuario e vá para a tela de login.

na tentativa do codigo acima... inserido em todas as paginas... ele pegaria o valor do time() com a hora atual e gravaria na tabela u_acesso em valor timestamp.

Depois, deveria a cada acesso a determinadas paginas, verificar o tempo que foi gravado e o atual e fazer a acao....

porem... o query do sql nao ta gravando.. la ta ficando 000000000000.

Fiz um echo pra ver se a variavel timestamp ta passando e aparentemente está normal...

alguem poderia dar uma ajuda nessa parte?

como eu deveria montar isso ?

grato.

#14 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 15/06/2005, 07:30

de fato um campo timestamp no mysql não tem o formato unix timestamp :huh:

Tanto eu quanto o Justice erramos feio :wacko:

o formato do campo timestamp é aaaa-mm-dd hh-ii-ss

colocando um campo timestamp na tabela, cada vez que um registro for atualizado, automaticamente(Sem dar valor pra ele) ele vai pegar o "agora".

bom, mude o formato do campo da sua tabela para int(11) que deve funcionar

o Naruto deve ter ficado furioso, hehehe (y)

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#15 snkneo

snkneo

    Normal

  • Usuários
  • 118 posts
  • Sexo:Não informado
  • Localidade:Brazil
  • Interesses:Girls, Sexo, Games

Posted 15/06/2005, 11:48

bom.. resolveu... porem tenho um segundo caso...

como fazer carregar o script ao mudar de pagina...?

pois, colocando isso em todas as paginas, irá verificar e fazer a acao.. porem, na pagina de login nao poderia ser colocado isso.. ou nao sairia dali .. redirecionando sem fim... entende ?

teoricamente deveria ser com o onunload... mas ae, qual a funcao javascript pra rodar o arquivo .php dentro da propria pagina (sem popup).. ??




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq