Avatar billede BTEngineer Novice
16. marts 2005 - 17:41 Der er 1 kommentar og
1 løsning

Onlinetid og mønter!

Hej.

Jeg har lavet et community hvor jeg til har lavet onlinetid og mønter!

Men man bliver nemt smidt ud og for ikke sin tid og mønter hvilket selvfølgelig er træls! Og for at man kan få dem skal man logge ud! Jeg ville gerne have lavet sådan at den opdatere ens onlinetid og mønter hvert eneste minut dertil har jeg prøvet at benytte mig af js (JavaScript). I min fil loggetind.php som man kommmer til efter man har logget ind i communityet ser således ud:

<?
session_start();
if (session_is_registered("brugernavn") AND ("kodeord")) {
include("mysql/mysql.php");
$hent = mysql_query("SELECT * FROM community WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error());
$vis = mysql_fetch_array($hent);
?>
<iframe id="timerframe" src="" style="height:1px;width:1px;visibility:hidden"></iframe>
<script language="JavaScript">
var timetick = 15000;
function countminiute() {
    var i = document.getElementById('timerframe');
    i.src = 'minut.php?brugernavn=$_SESSION[brugernavn]';
    setTimeout( 'countminiute()', timetick )
}

setTimeout( 'countminiute()', timetick )
</script>
<html>

<head>

<link rel="stylesheet" HREF="style.css" type="text/css">

</head>

<hr style="border-style: dotted; border-width: 1px" color="#183F66">
<?
//tjekker brugerens onlinetid
$timer2 = $vis[onlinetid]/3600;
$timer = floor($timer2);
$min = floor(($timer2-$timer)*60);
if($min < 10)$min = "0".$min;
$mønter2 = $vis[mønter]/60;
$mønter = floor($mønter2);
$min1 = floor(($mønter2-$mønter)*60);
if($min1 < 10)$min1 = "0".$min1;
?>Logget ind som <b><? echo $_SESSION[brugernavn]; ?></b><br>
<b>Onlinetid:</b> <? echo $timer; ?> Timer, og <? echo $min; ?> Minutter<br>
<b>Points:</b> <? echo $mønter; ?> Points.<br><br>
<?
if($vis[status] == "normal")
{
echo("
<a href='http://www.dounie.dk/community/seprofil.php?brugernavn=$_SESSION[brugernavn]'>Vis min profil!</a>
<br>
<a href='http://www.dounie.dk/community/retprofil.php'>Ret min profil!</a>
<br>
<a href=http://www.dounie.dk/community/logoff.php><b>Log af!</b></a>
<br>
Communityet er overhovedet ikke færdigt endnu!!
");
}

if($vis[status] == "admin")
{
echo("
<b>Normale funktioner:</b><br>
<a href='http://www.dounie.dk/community/seprofil.php?brugernavn=$_SESSION[brugernavn]'>Vis min profil!</a>
<br>
<a href='http://www.dounie.dk/community/retprofil.php'>Ret min profil!</a>
<br>
<a href=http://www.dounie.dk/community/logoff.php><b>Log af!</b></a>
<br><br>
<b>Specielle funktioner:</b><br>
<a href='http://www.dounie.dk/nyheder/tilfoej.php'>Tilføj Nyhed</a><br>
<a href='http://www.dounie.dk/nyheder/alle_nyheder.php'>Ret Nyhed</a><br>
<a href='http://www.dounie.dk/nyheder/slet.php'>Slet Nyhed</a><br>
<a href='http://www.dounie.dk/programmer/tilfoej.php'>Tilføj Program</a><br>
<a href='http://www.dounie.dk/programmer/alle_programmer.php'>Ret Program</a><br>
<a href='http://www.dounie.dk/programmer/slet.php'>Slet Program</a><br>
<a href='http://www.dounie.dk/tutorials/tilfoej.php'>Tilføj Tutorial</a><br>
<a href='http://www.dounie.dk/banner/tilfoej.php'>Tilføj Banner</a><br>
<a href='http://www.dounie.dk/banner/alle_bannere.php'>Ret Banner</a><br>
<a href='http://www.dounie.dk/banner/slet.php'>Slet Banner</a><br>
");
}
?>
</body>

</html>
<?
}else{
print "<link href='style.css' type='text/css' rel='stylesheet'><font color=red>Du er ikke logget ind!</font>";
}
?>

Det er min fil loggetind.php jeg har prøvet at lave sådan at der er et iframe som opdatere ens onlinetid sådan ca hvert minut men jeg har ikke testet det da jeg ikke ved hvordan jeg skal lave minut.php. det må osse godt være hele tiden den opdatere tiden og mønterne bare den gør det og man ikke bliver smidt ud! Når det er session man bruger er det vist noget med omkring 40 minutter som man kan være inaktiv i, i communityet og derefter bliver man så smidt ud! For at lave minut.php skal man vel nærmest lave den som logaf filen for at hjælpe jer så ser min logaf.php således ud:

<?
session_start();
if (session_is_registered("brugernavn") AND ("kodeord")) {
include("mysql/mysql.php");
$query = mysql_query("SELECT * FROM community WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error());
$vis = mysql_fetch_array($query);
?>
<html>

<head>

<link rel="stylesheet" HREF="style.css" type="text/css">

</head>

</body>

</html>
<?
$gltid = $vis[logintid];
$tidnu = time();
$plusminus = $tidnu-$gltid;
$nytid = $plusminus;
$glmønter = $vis[logintid];
$mønternu = time();
$plusminus = $mønternu-$glmønter;
$mønternu = $plusminus;
$query = mysql_query("UPDATE community SET online = 'nej', onlinetid = onlinetid+$nytid, mønter = mønter+$mønternu WHERE brugernavn = '$_SESSION[brugernavn]'")
?>
<?
    session_destroy();
    echo("<font color=green>Du er nu logget ud!</font>");
?>

<?
}else{
echo("<link rel='stylesheet' HREF='style.css' type='text/css'><font color=red>Du er ikke logget ind!</font>");
}
?>

Min tabel i communityet ser således ud:

CREATE TABLE `community` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `brugernavn` varchar(255) NOT NULL default '',
  `kodeord` varchar(255) NOT NULL default '',
  `status` varchar(255) NOT NULL default 'normal',
  `online` varchar(255) NOT NULL default 'nej',
  `logintid` varchar(255) NOT NULL default '0',
  `email` varchar(255) NOT NULL default '',
  `kon` varchar(255) NOT NULL default '',
  `navn` varchar(255) NOT NULL default '',
  `alder` char(2) NOT NULL default '',
  `msn` varchar(255) NOT NULL default '',
  `icq` varchar(255) NOT NULL default '',
  `hp` varchar(255) NOT NULL default '',
  `fritekst` text NOT NULL,
  `onlinetid` int(10) NOT NULL default '0',
  `mønter` int(10) NOT NULL default '0',
  `ip` varchar(20) NOT NULL default '',
  `dato` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;

Logintid feltet tæller hvor lang tid man har været logget ind i!
Og det skal jo nulstilles når den opdatere for ellers for man selvfølgelig alt for meget tid og for mange mønter!

Håber nogen kan hjælpe mig ud fra det! Jeg ville meget gerne have at i indskriver det nye i mine scripts og tilføjer dem så jeg kan kopiere det og indsætte det og så teste det :)

Tak på forhånd!
Avatar billede Daniel.E Praktikant
17. marts 2005 - 09:04 #1
hvis ikke du vil se en forskel hvert minut, kan du bare skive et script som udregner hvor mange eller hvordan hvert minut.  Og når brugeren så opdaretere eller reloadet sitet, bliver den nye udregning udført.
Avatar billede BTEngineer Novice
27. oktober 2005 - 08:59 #2
svar
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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