Online tid!

Tags:    php

Hej allesammen.

Jeg er igang med et community og har prøvet at lave online tid i det, jeg kan ikke rigtig få det til at virke, derfor ville jeg prøve at se om jeg kunne finde et svar her inde.

Jeg ville her give jeg koderne så i kan se om der er fejl, jeg ville starte ud med feltet "logintid" det har jeg lavet således:

navn: logintid
datatype: varchar(255)
Nulværdi: Nej
Standardværdi: 0

Det var feltet som jeg har lavet i mysql.

Her er så login.php:
----------------------------------------------------------------------------
<?
session_start();
include("mysql/mysql.php");
?>
<html>

<head>

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

</head>

<?
if($_POST[action] == 'login') {
if($_POST[brugernavn] == NULL OR $_POST[kodeord] == NULL) {

} else {

$s_tjekbruger = mysql_query("SELECT brugernavn, kodeord FROM community_avis WHERE brugernavn LIKE '$_POST[brugernavn]' AND kodeord = '$_POST[kodeord]'");
$tjekbruger = mysql_fetch_array($s_tjekbruger);
if($tjekbruger[brugernavn] == NULL) {

print "<script language=\\"javascript\\">parent.location.replace('login&login=nej');</script>";

} else {

$_SESSION[brugernavn] = $_POST[brugernavn];
$_SESSION[kodeord] = $_POST[kodeord];
$tid = time();
mysql_query("UPDATE community_avis SET online = 'ja', logintid = '$tid' WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error());

$fejl == 'nej';
print "<script language=\\"javascript\\">parent.location.replace('loggetind.php');</script>";
}
}
} else {
}
?>
<?
if($_GET[login] == "nej")
{
print "<font color=red>Forkert kodeord eller brugernavn!</font>";
}
?>
<form action="login.php" method="POST">
<input type="hidden" name="action" value="login">
Brugernavn
<input type="text" class="input" name="brugernavn" size="20" maxlength="20">
Kodeord
<input type="password" class="input" name="kodeord" size="20" maxlength="20">

<input type="submit" class="input" value="Login" name="login">
</form>

</body>

</html>
----------------------------------------------------------------------------
Det var login.php.

Her for i opret_ok.php:
----------------------------------------------------------------------------
<html>

<head>

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

</head>

</body>

<?
include("mysql/mysql.php");
$opret = &$HTTP_POST_VARS['opret'];
if(empty($opret)) {
print "<font color=red>Du skal komme fra opret.php!</font>"
?>

<?
} else {

$brugernavn = htmlspecialchars($_POST[brugernavn]);
$kodeord = htmlspecialchars($_POST[kodeord]);
$email = htmlspecialchars($_POST[email]);
$kon = htmlspecialchars($_POST[kon]);
$navn = htmlspecialchars($_POST[navn]);
$alder = htmlspecialchars($_POST[alder]);
$status = htmlspecialchars($_POST[status]);
$msn = htmlspecialchars($_POST[msn]);
$icq = htmlspecialchars($_POST[icq]);
$hp = htmlspecialchars($_POST[hp]);
$yting = htmlspecialchars($_POST[yting]);
$yrum = htmlspecialchars($_POST[yrum]);
$lejnr = htmlspecialchars($_POST[lejnr]);

if(empty($brugernavn) OR empty($kodeord) OR empty($email) OR empty($kon) OR empty($navn) OR empty($alder) OR empty($yting) OR empty($yrum) OR empty($lejnr)) {
echo '<font color=red>Alle felter er ikke udfyldt</font>';}
else {

$result = mysql_query("SELECT brugernavn FROM community_avis WHERE brugernavn = '$brugernavn'")
or die (mysql_error());
$number = mysql_num_rows($result);
if ($number > 0) {
print '<font color=red>Dette brugernavn er desværre taget find et nyt!</font>';
} else {
mysql_query("INSERT INTO community_avis (brugernavn, kodeord, email, kon, navn, alder, status, msn, icq, hp, yting, yrum, lejnr) values ('$brugernavn', '$kodeord', '$email', '$kon', '$navn', '$alder', '$status', '$msn', '$icq', '$hp', '$yting', '$yrum', '$lejnr')")
or die(mysql_error());
print "<font color=green><div align=center><b>$brugernavn</b> er nu oprettet!</font>";
?>
<a href="login.php">Login</a>
</html>
<?
}
}
}
?>
----------------------------------------------------------------------------
Det var opret_ok.php opret.php er blot ren html og der kan ikke være noget galt... jeg har ikke lavet noget med online tid i opret_ok.php det regner jeg heller ikke med der skal.. men for en sikkerheds skyld har jeg oplyst den.

Nu mangler vi kun den fil man kommer til når man er logget ind nemlig loggetind.php den ser således ud:
----------------------------------------------------------------------------
<?
session_start();
if (session_is_registered("brugernavn") AND ("kodeord")) {
include("mysql/mysql.php");
$hent = mysql_query("SELECT * FROM community_avis WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error());
$vis = mysql_fetch_array($hent);
?>
<html>

<head>

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

</head>

<body>
<?
//tjekker brugerens onlinetid
$timer2 = $vis[onlinetid]/3600;
$timer = floor($timer2);
$min = floor(($timer2-$timer)*60);
if($min < 10)$min = "0".$min;
?>Hej <b><? echo $_SESSION[brugernavn]; ?></b>
<b>Din status på www.specks.dk er:</b> <? echo $vis[status]; ?>
<b>Din onlinetid er:</b> <? echo $timer; ?> t. & <? echo $min; ?> m.
<?
//Skriver hvor mange brugere der er i communityet ialt.
$hent = mysql_query("SELECT * FROM community_avis ORDER BY id DESC");
$alle_brugere = mysql_num_rows($hent);
echo("Oprettede brugere ialt: <b>$alle_brugere</b>.");
?>


</body>

</html>
<?
}else{
print "<font color=red>Du er ikke logget ind!</font>";
}
?>
----------------------------------------------------------------------------
Så er der vist ikke flere filer, jeg håber virkelig der er nogen der kan hjælpe, der hvor der er FEJL, der ville jeg meget gerne have at i retter det og sætter det ind der hvor det skal være så jeg kan kopiere det og sætte det ind og så sig lige hvorfor og sådan :).

Håber virkelig nogen ville hjælpe mig :).

Forresten når man har logget ind 1 gang så skriver den databasen under logintid:

1108494053

Lige meget hvor lang tid man har været logget ind.

Udover dette tror jeg måske osse i skal have logaf.php den ser således ud:
----------------------------------------------------------------------------------------------------
<?
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>

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

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

Ja det var vist det jeg håber virkelig nogen kan hjælpe!! :).

[Redigeret d. 15/02-05 20:29:44 af Henrik Nielsen]



1 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Hej!

Sikke dog en masse kode!

Nå men jeg har selv lavet noget online script, og min fejl var jeg jeg formatere tiden inden jeg lagde den i databasen.

ved login ligges hele den mystiske kode i databasen
ved visningen af online tid, tages nuværende tid, træk logind tid fra, også formateres tiden til noget vi kan forstå ;)

Håber det kan hjælpe!



t