Avatar billede BTEngineer Novice
15. april 2005 - 10:21 Der er 4 kommentarer og
1 løsning

Opdatering med tid og penge

Hej.

Jeg har lavet onlinetid og mønter til mit community. Men man bliver smidt ud efter omkring 40 min hvis man ikke er aktiv i communityet. Det ville jeg gerne have lavet om.

Jeg har prøvet i min fil man kommer ind til når man er logget ind at bruge:

<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=<? echo $vis[brugernavn]; ?>;
    setTimeout( 'countminiute()', timetick )
}

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

Med dette js script henter den hvert minut filen minut.php med brugernavnet man er logget ind med. Men minut.php giver den alt for meget onlinetid og mønter! Jeg ved ikke hvad fejlen er. Men her er den minut.php fil jeg prøvede at lave:

<?
session_start();
if (session_is_registered("brugernavn") AND ("kodeord")) {
include("mysql/mysql.php");
$query = mysql_query("SELECT * FROM community_avis 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 oncontextmenu="return false"ondragstart="return false"onselectstart="return false">

</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_avis SET onlinetid = onlinetid+$nytid, mønter = mønter+$mønternu, logintid = 0 WHERE brugernavn = '$_SESSION[brugernavn]'")
?>

<?
}else{
echo("<font color=red>Du er ikke logget ind!</font>");
}
?>

Måske skal i osse have sql filen for at kunne se hvad der er ivejen:

CREATE TABLE `community_avis` (
  `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',
  `status2` varchar(100) NOT NULL default '',
  `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 '',
  `yting` varchar(255) NOT NULL default '',
  `yrum` varchar(200) NOT NULL default '',
  `fritekst` text NOT NULL,
  `onlinetid` int(10) NOT NULL default '0',
  `mønter` int(10) NOT NULL default '0',
  `toj` varchar(255) NOT NULL default '',
  `hits` varchar(100) NOT NULL default '0',
  `ip` varchar(20) NOT NULL default '',
  `dato` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;

onlinetid feltet er det felt hvor tiden bliver gemt i.

mønter feltet er det felt hvor mønterne bliver gemt i.

logintid er det felt som tæller hvor lang tid man har været logget ind i, og ud fra det giver den når man logger af onlinetid og mønter. Men vi skulle have lavet sådan at man ikke behøves at logge af. Jeg har lavet scriptet som henter minut.php hvert minut.

Håber nogen kan hjælpe.

Tak på forhånd.
Avatar billede BTEngineer Novice
15. april 2005 - 11:19 #1
hvis det kan hjælpe så ser min bruger sådan ud i databasen (har rettet lidt password selvfølgelig og sådan):

INSERT INTO `community_avis` VALUES (1, 'MIT BRUGERNAVN', 'MIT PASSWORD', 'STATUS', 'Offline', 'nej', 'LOGINTID:1113556441', 'MSN', 'mand', 'Henrik', '14', 'EMAIL', '..', 'HJEMMESIDE', 'YNDLINGS TING', 'YNDLINGS RUM', 'FRITEKST', ONLINETID:390041, MØNTER:288041, 'MIN FIGUR', '258', 'MIN IP', '24/03/2005 18:09:30');

Jeg har sat ONLINETID: foran osv for i kan se hvad det er =). Håber det kunne hjælpe
Avatar billede splab Nybegynder
15. april 2005 - 13:51 #2
Dit problem er at du opdaterer uanset hvad - du skal overveje hvornår folk skal have "penge" og så kun lave opdateringen på penge hvis de rammer den værdi. - Det betyder du skal huske hvornår de sidst fik penge så du kan regne i forhold til den værdi, men det kunne du f.eks. gemme i deres session.
Avatar billede BTEngineer Novice
15. april 2005 - 16:57 #3
Fatter jeg ikke lige :S
Avatar billede BTEngineer Novice
15. april 2005 - 16:57 #4
Det virker på www.unicraft.dk
Avatar billede BTEngineer Novice
16. april 2005 - 11:21 #5
pis!
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