Avatar billede chrisson Nybegynder
30. juli 2006 - 13:35 Der er 33 kommentarer og
1 løsning

En tæller der tæller ned til kick

Hej exp,

jeg skal bruge en tæller der fx. tæller ned fra 250 sekunder, og når de er gået, skal man blive kicket! kicker folk ved at sætte kick til 1, Og hvis man fx. skriver imens den tæller ned, nulstiller den tælleren til 250 sekunder igen!

Kan det lade sig gøre?
Avatar billede zynzz Praktikant
30. juli 2006 - 18:28 #1
Jeg har lavet noget her, jeg har taget højde for det var mySQL..


// tjek tiden
$tid_tjek = time();


// indsæt den under dit login
mysql_query("UPDATE brugere SET kick = '0' WHERE id = '$_SESSION[id]'");
mysql_query("UPDATE brugere SET tjektid = '$tid_tjek' WHERE id = '$_SESSION[id]'");


//fortæller den skal opdatere brugere som ikke har haft opdatere feltet "tid" i 250 sekunder - hvis ikke, så laver den "kick" til 1 og reseter "tid".
mysql_query("UPDATE `brugere` SET `status` = 'offline', `tjektid` = '0' where `tjektid` < $tid_tjek - 250");

//opdatere bruger data
mysql_query("UPDATE `brugere` SET `tjektid` = '$tid_tjek' WHERE `id` = '$_SESSION[id]'");

//logger brugeren af
$resultat = mysql_query("SELECT * FROM `brugere` WHERE id = '$_SESSION[id]'");
$row = mysql_fetch_array($resultat);
if($row[kick] == 1){
session_destroy();
Avatar billede chrisson Nybegynder
30. juli 2006 - 22:04 #2
Prøver lige den
Avatar billede chrisson Nybegynder
30. juli 2006 - 22:17 #3
Den laver den straks tjektid til 1154290583
Avatar billede showsource Seniormester
30. juli 2006 - 22:27 #4
En i java script:
http://users.showsource.dk/install.php?dir=users/includes&file=show_logud_time.php
$_SESSION["login_tid"]["re_login"] sættes ved login, time() + x-antal sekunder

Ved hver request tjekkes om $_SESSION["login_tid"]["re_login"] > time() og hvis ikke den er det, så får man en loginform, og ellers opdateres tiden igen med x-antal sekunder.

I stedet for at vise en besked, "du er logget ud", kan der så laves en redirect med javascript.
Avatar billede chrisson Nybegynder
30. juli 2006 - 22:29 #5
Hvordan laver jeg $_SESSION["login:tid"]["re_login"]
Avatar billede showsource Seniormester
30. juli 2006 - 22:30 #6
Ved login, eller hvornår du nu vil.

Det er time()+600 f.eks. d.v.s nu + en halv time
Avatar billede showsource Seniormester
30. juli 2006 - 22:31 #7
hmm, 1800 er selvf. en halv time! :O)
Avatar billede chrisson Nybegynder
30. juli 2006 - 22:32 #8
Altså

$_SESSION["login_tid"] = time()+600
Avatar billede showsource Seniormester
30. juli 2006 - 22:33 #9
Jups, linket er en includefil!!!
Altså, på selve hovedfilen, tjekker du om session er større end time(), og er den det, så includer du filen.
Avatar billede chrisson Nybegynder
30. juli 2006 - 22:33 #10
Og

$_SESSION["re_login"] = time()+600
Avatar billede chrisson Nybegynder
30. juli 2006 - 22:34 #11
Er det nomalt at time() skriver 1154290583 ved start?
Avatar billede showsource Seniormester
30. juli 2006 - 22:35 #12
Er nødt til at smutte, er tilbage igen om ca. en times tid.
Så vil jeg godt lave et eks. til test, hvis ikke du har fundet ud af det selvf.!!!
Avatar billede showsource Seniormester
30. juli 2006 - 22:35 #13
time() er antal sekunder siden 1-1-1970
Avatar billede chrisson Nybegynder
30. juli 2006 - 22:35 #14
Prøver mig frem, melder tilbage om en times tid!
Avatar billede chrisson Nybegynder
30. juli 2006 - 22:36 #15
Kan man lave fra login den tæller?
Avatar billede showsource Seniormester
30. juli 2006 - 22:37 #16
yes da, og nu er jeg gone!!!
Men tænk på at session skal opdateres til f.eks. time()+600 når brugeren "gør noget"
Avatar billede showsource Seniormester
31. juli 2006 - 01:11 #17
well, dem jeg skulle hente endte i lufthavnen, så det tog længere tid end ventet.
Og skal sove nu! :O)
Avatar billede zynzz Praktikant
31. juli 2006 - 08:46 #18
ja $tid_tjek skal indsættes til databasen...
Avatar billede chrisson Nybegynder
31. juli 2006 - 16:48 #19
Kunne du lave en test når du er udvilet?
Avatar billede chrisson Nybegynder
01. august 2006 - 02:21 #20
Nu har jeg fået lavet hvor langtid man har været online ialt, i på næsten samme måde laver jeg kick, bare lave en ny tabel, og så indsætte den her

mysql_query("UPDATE `brugere` SET `status` = 'offline', `tjektid` = '0' where `tjektid` < $tid_tjek - 250");

Og så skulle den køre!

Men hvordan laver jeg så tælleren, så de kan se hvornår de bliver kicket?
Avatar billede chrisson Nybegynder
01. august 2006 - 04:12 #21
har fået lavet det her, men den tæller ikke ned, men op. Og når den siger: du er blevet kicket, tæller den stadig! Og når jeg prøver at sætte den rigtigt, er der bare hvid skærm!

<?
session_start();
?>

<html>
<body>
<?
// Tjekker om brugeren er logget ind
if (session_is_registered("Brugernavn")) {
?>
<?
include("connect.php");
$query = mysql_query("SELECT * FROM brugeroplysninger WHERE brugernavn='$_SESSION[Brugernavn]'") or print mysql_error();
while($r = mysql_fetch_array($query)) {
$id = $r["id"];
$navn = $r["brugernavn"];
$password = $r["password"];
$Rang = $r["Rang"];
$allesekunder = $r["tjektid"];
$sekunder = $allesekunder % 60;
$alleminutter = floor( $allesekunder / 60 );
$minutter = $alleminutter % 60;
$alletimer = floor( $alleminutter / 60 );
$timer = $alletimer % 24;
$alledage = floor( $alletimer / 24 );
//tiden nu:
  $current_time = time();

//find onlinetid siden sidst
$online_add = ($r['kicktid'] > 0) ? $current_time - $r['kicktid'] : 0;

//totale onlinetid
  $online_total = $r['tjektid'] + $online_add;

//opdater databasen
  $sql = "UPDATE brugeroplysninger SET kicktid = $current_time, tjektid = $online_total WHERE id = $r[id]";
  mysql_query($sql);
  if($r[level] == "1") {
      echo "Du er blevet kicket!";
      }else{
  if($r[tjektid] == "250") {
  mysql_query("UPDATE `brugeroplysninger` SET `level` = '1', `tjektid` = '0', `kicktid` = '0' where id = '$r[id]'");
}
}
}
?>
  <? echo "$allesekunder" ?>
<?
// Hvis brugeren ikke er logget ind
} else {
?>
ALERT: Du skal logge ind
<?
}
?>
<script type="text/JavaScript">
window.onload = function() {
    setTimeout('location.reload()', 1000)
    parent.writeChat(this);
}
</script>
</body>
</html>
Avatar billede chrisson Nybegynder
01. august 2006 - 04:13 #22
Vil gerne have den skal tælle ned, og så skal den stoppe med at tælle, når man er kicket!

Min måde at kicke på er ved at sætte level til 1
Avatar billede zynzz Praktikant
01. august 2006 - 10:29 #23
Kan du ikke bare bruge min metode + sætte noget mere i update ?
Avatar billede zynzz Praktikant
01. august 2006 - 10:31 #24
// tjek tiden
$tid_tjek = time();


// indsæt den under dit login
mysql_query("UPDATE brugere SET kick = '0' WHERE id = '$_SESSION[id]'");
mysql_query("UPDATE brugere SET tjektid = '$tid_tjek' WHERE id = '$_SESSION[id]'");


//fortæller den skal opdatere brugere som ikke har haft opdatere feltet "tid" i 250 sekunder - hvis ikke, så laver den "kick" til 1 og reseter "tid".
mysql_query("UPDATE `brugere` SET `kick` = '1', `tjektid` = '0' where `tjektid` < $tid_tjek - 250");

//opdatere bruger data
mysql_query("UPDATE `brugere` SET `tjektid` = '$tid_tjek' WHERE `id` = '$_SESSION[id]'");

//logger brugeren af
$resultat = mysql_query("SELECT * FROM `brugere` WHERE id = '$_SESSION[id]'");
$row = mysql_fetch_array($resultat);
if($row[kick] == 1){
mysql_query("UPDATE brugere SET kick = '1' WHERE id = '$_SESSION[id]'");
session_destroy();
Avatar billede chrisson Nybegynder
01. august 2006 - 11:54 #25
Jo, men der er ingen tæller på, som jeg godt ville have
Avatar billede zynzz Praktikant
01. august 2006 - 12:47 #26
Hvad mener du med tæller ?, det er en tæller på når der er gået 250 sek og brugeren ikke har opdateret siden sætter den kick = 1
Avatar billede chrisson Nybegynder
01. august 2006 - 13:34 #27
Kunne godt tænke mig en der viser hvornår man bliver kicket,
Avatar billede zynzz Praktikant
01. august 2006 - 14:08 #28
Så skal du over og have noget JS for at vise det...
Avatar billede chrisson Nybegynder
01. august 2006 - 14:42 #29
Hvordan det?
Avatar billede zynzz Praktikant
01. august 2006 - 14:58 #30
Nu er jeg ikke lige den bedste til js, men ved du kan finde noget her: www.dynamicdrive.com
Avatar billede chrisson Nybegynder
01. august 2006 - 15:06 #31
Den skulle kunne kontakte databasen
Avatar billede showsource Seniormester
03. august 2006 - 00:22 #32
JS afvikles i brugens browser.
Men en DB henter når siden starter med at loades.

Altså DB kan bruges ved stsrt, men vil du noget efter brugere har loadet siden, ja så er det JS
Avatar billede chrisson Nybegynder
29. september 2006 - 19:19 #33
Lukker, hvis nogle vil have ponits, skriv lige og opretter et nyt spm.
Avatar billede chrisson Nybegynder
29. september 2006 - 19:20 #34
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester