En uendelig session?
Hej eksperter.Jeg har lavet et community hvor man kan oprette en bruger og logge ind. Når man har logget ind i communityet så begynder man at få onlinetid / mønter.
Men hvis nu man lader sin computer stå i 1 time og er i mit community, så efter der er gået den time og man ville trykke opdatere så ville den sige "Du er ikke logget ind!" selvfølgelig pga. session har smidt en af efter man ikke har været aktiv i communityet. Det syntes jeg er irreterende og det ville jeg gerne have lavet om på. Altså sådan man f.eks. kan lade sin computer stå hele natten og få onlinetid / mønter hvis det skulle være.
Er du muligt at lave en uendelig session? Jeg har spurgt hos min internetudbyder og fik afvide at jeg skulle kigge på linket:
http://ws1.surf-town.net/phpinfo.php
Men det forstår jeg ikke lige frem specielt meget af.
Men hvis det nu er umuligt at lave en uendelig session, er det så muligt at lave sådan at online tiden / mønterne bliver opdateret hvert eneste minut?
Det ville jo gøre sådan at man ikke bliver smidt af. For så begynder session at tælle forfra til omkring de 40 minutter mener jeg det er.
Min database til communityet ser således ud:
CREATE TABLE `community_avis` (
`ID` int(10) unsigned NOT NULL auto_increment,
`brugernavn` varchar(100) NOT NULL default '',
`online` char(3) NOT NULL default 'nej',
`logintid` varchar(100) NOT NULL default '',
`onlinetid` varchar(100) NOT NULL default '0',
`mønter` varchar(100) NOT NULL default '0',
`status` varchar(100) NOT NULL default 'normal',
`kodeord` varchar(100) NOT NULL default '',
`email` varchar(100) NOT NULL default '',
`navn` varchar(100) NOT NULL default '',
`kon` varchar(100) NOT NULL default '',
`toj` varchar(100) NOT NULL default '',
`msn` varchar(100) NOT NULL default '',
`icq` varchar(100) NOT NULL default '',
`fritekst` longtext NOT NULL,
PRIMARY KEY (`ID`)
) TYPE=MyISAM;
Min login fil ser således ud:
<?
session_start();
?>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body oncontextmenu="return false"ondragstart="return false"onselectstart="return false">
<?
include "mysql/mysql.php";
if($_POST[action] == "login") {
if($_POST[brugernavn] == "") {
print "Du skal skrive et brugernavn!";
print "<br><br>";
}else{
if($_POST[kodeord] == "") {
print "Du skal skrive et kodeord!";
print "<br><br>";
}else{
$tjek_bruger = mysql_query("SELECT * FROM community_avis WHERE brugernavn LIKE '$_POST[brugernavn]' AND kodeord = '$_POST[kodeord]'") or die(mysql_error());
$tjek = mysql_fetch_array($tjek_bruger);
if($tjek[brugernavn] == "") {
print "Forkert brugernavn eller kodeord!";
print "<br><br>";
}else{
$_SESSION[brugernavn] = $_POST[brugernavn];
$_SESSION[kodeord] = $_POST[kodeord];
$_SESSION[logintid] = time();
$logintid = date('h:i:s');
mysql_query("UPDATE community_avis SET logintid = '$logintid', online = 'ja' WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error());
print "<meta http-equiv=\"refresh\" content=\"0;url=login_ok.php\">";
}
}
}
}else{
}
?>
<form action="login.php" method="POST">
<input type="hidden" name="action" value="login">
Brugernavn <br>
<input type="text" name="brugernavn"><br>
Kodeord <br>
<input type="password" name="kodeord"><br><br>
<input type="submit" name="submit" value="Login">
</form>
</body>
</html>
Og min login_ok.php fil ser så således ud:
<?
session_start();
if (session_is_registered("brugernavn") AND ("kodeord") AND ("logintid")) {
include "mysql/mysql.php";
?>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body oncontextmenu="return false"ondragstart="return false"onselectstart="return false">
<?
echo("Hej <b>$brugernavn</b> og velkommen.");
?>
<hr>
<?
//tjekker brugerens onlinetid
$timer2 = $vis[onlinetid]/60;
$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;
?>
Din onlinetid er: <? echo $timer; ?> Timer, og <? echo $min; ?> Minutter
<br>
<b>Mønter:</b> <? echo $mønter; ?> Mønter.<br>
<br><br>
<a href="logud.php">Log af</a>
<br><br>
</body>
</html>
<?
}else{
print "Du er ikke logget ind!";
}
?>
Jeg håber nogen kan hjælpe, det er noget jeg har arbejdet meget med og bare ikke kan få til at virke. Hvis i mangler mere inspiration så tjek evt. disse sider hvor tiden opdatere sig selv hvert minut:
www.unicraft.dk, www.smaq.dk, http://ct.ting-sager.dk
I skal lige oprette en bruger i deres community og så vente et minut... Håber nogen af jer kan hjælpe mig med at lave noget lignende hvor den opdatere hvert minut.
Tak på forhånd.
