Avatar billede web-geek Nybegynder
23. september 2004 - 08:07 Der er 36 kommentarer og
1 løsning

Start time() i php.

Hvordan starter jeg time(); i login filen herunder?

<?
if(isset($_POST[brugernavn])) {
  $sql = mysql_query("SELECT * FROM chatbrugere WHERE brugernavn='$_POST[brugernavn]' AND kode='$_POST[kode]'") or die(mysql_error());
  $num = mysql_num_rows($sql);

  if($num == 0) {
    echo "<font color=red>*</font> Forkerte dataer.";
    } else {
?>
Hej <?php echo "$_POST[brugernavn]"; ?> velkommen til Hotel-net. Du har du disse funktioner:<br><a href="java script:void(window.open('chat/index_chat.php','_blank','width=640,height=480,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no'))">Log på chatten</a>
<?
$random = rand(0,36);

    mysql_query("UPDATE chatbrugere SET online='1', felt='$random' WHERE brugernavn='$_POST[brugernavn]'") or die(mysql_error());
    $_SESSION[brugernavn] = $_POST[brugernavn];
    exit;
  }a
}
?>
Avatar billede web-geek Nybegynder
23. september 2004 - 08:10 #1
Er det bare $tid = time();

?

Hvis det, er, hvordan slutter jeg den så indtil man logger ud?

  - logud.php:


<?
if(isset($_POST[brugernavn])) {

  mysql_query("UPDATE brugere SET felt='0' WHERE felt='$_GET[felt]'") or die(mysql_error());
  echo "$_GET[brugernavn]";
}
?>
Avatar billede detox Nybegynder
23. september 2004 - 12:03 #2
Jeg kan se du stadig nørkler med det ;O)
Du skal bruge 2 felter i din tabel: 'login' og 'total'.
Når man logger ind sætter du: 'login' = time():

mysql_query("UPDATE chatbrugere SET login=time(), online='1', felt='$random' WHERE brugernavn='$_POST[brugernavn]'") or die(mysql_error());

Når man logger ud sætter du: 'total' = time() - 'login':

mysql_query("UPDATE chatbrugere SET total=total+".time()."-login, online='0' WHERE brugernavn='$_POST[brugernavn]'") or die(mysql_error()); // eller $_SESSION[brugernavn]

Det er alt!
Avatar billede web-geek Nybegynder
23. september 2004 - 15:07 #3
Og når det vises?
Avatar billede web-geek Nybegynder
23. september 2004 - 15:13 #4
Den ville ikke dette:

<?
$random = rand(0,36);
$login = time();
  mysql_query("UPDATE chatbrugere SET login=time(), online='1', felt='$random' WHERE brugernavn='$_POST[brugernavn]'") or die(mysql_error());
    $_SESSION[brugernavn] = $_POST[brugernavn];
    exit;
  }
}
?>
Avatar billede detox Nybegynder
23. september 2004 - 15:16 #5
Du skal ikke bruge: $login = time(); til noget.
Har du lavet INT feltet: 'login'?
Hvilken fejlmelding får du?
Avatar billede web-geek Nybegynder
23. september 2004 - 15:23 #6
Hej Debug velkommen til Hotel-net. Du har du disse funktioner:
Log på chatten You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(), online='1', felt='7' WHERE brugernavn='Debug'' at line 1
Avatar billede detox Nybegynder
23. september 2004 - 15:30 #7
Arhh, brug:

mysql_query("UPDATE chatbrugere SET login=".time().", online='1', felt='$random' WHERE brugernavn='$_POST[brugernavn]'") or die(mysql_error());
Avatar billede web-geek Nybegynder
23. september 2004 - 15:35 #8
Sådan, men når den skal vises?


<?php
include("db.php");

$s = mysql_query("SELECT * FROM chatbrugere WHERE brugernavn='$_GET[brugernavn]'");
$row = mysql_fetch_array($s);


$startsekunder = $row[login];
$timer = FLOOR($startsekunder/3600);
$brugtesekundertiltimer = $timer*3600;
$restsekunder = $startsekunder-$brugtesekundertiltimer;
$minutter = FLOOR($restsekunder/60);
$brugtesekundertilminutter = $minutter*60;
$sekunder = $restsekunder-$brugtesekundertilminutter;

<?php echo "$timer T,  $minutter M.  $sekunder S."; ?>

Sådan?
Avatar billede web-geek Nybegynder
23. september 2004 - 15:39 #9
Den gider ikke opdater total her?

<?
if(isset($_POST[brugernavn])) {

mysql_query("UPDATE chatbrugere SET total=total+".time()."-login, online='0' WHERE brugernavn='$_SESSION[brugernavn]'") or die(mysql_error());  echo "$_GET[brugernavn]";
}
?>
Du er nu logget ud.

Den giver ingen fejl, men den opdater intet i total! :-s
Avatar billede detox Nybegynder
23. september 2004 - 15:40 #10
Jeg har lavet en lille funtion til dig. Du kan jo bare rette i outputtet. Lig den øverst:

function sek2tid($s) {
    $tim = floor($s/3600);
    $tstr = $tim == 1 ? 'time' : 'timer';
    $min = ($s/60)%60;
    $mstr = $min == 1 ? 'minut' : 'minutter';
    $sek = $s%60;
    $sstr = $sek == 1 ? 'sekund' : 'sekunder';
    return sprintf("%u %s, %u %s og %u %s.", $tim, $tstr, $min, $mstr, $sek, $sstr);
}

Så kan du vise det med:

    $res = mysql_query("select * from chatbrugere where brugernavn='$_GET[brugernavn]'");
    $row = mysql_fetch_assoc($res);
    echo 'Logged ind: ' . date('d-m-Y H:i:s', $row['login']) . "<br />";
    echo "Tid på: ".sek2tid(time()-$row['login'])."<br />";
    echo "Total tid på: ".sek2tid($row['total']);
Avatar billede web-geek Nybegynder
23. september 2004 - 15:42 #11
De skal vise som timer , og minutter.
Avatar billede detox Nybegynder
23. september 2004 - 15:43 #12
Lidt forvirrende at du bruger både $_POST, $_SESSION og $_GET[brugernavn]. Er de alle sat?
Avatar billede detox Nybegynder
23. september 2004 - 15:44 #13
15:39:30 -> Får du echo'et $_GET[brugernavn]?
Avatar billede web-geek Nybegynder
23. september 2004 - 15:45 #14
0 timer, 0 minutter og 0 sekunder.

Viser den, men den laver intet i total :-s?

i logud
Avatar billede detox Nybegynder
23. september 2004 - 15:46 #15
15:40:38 -> Er $_GET[brugernavn] sat her?
Avatar billede web-geek Nybegynder
23. september 2004 - 15:47 #16
Sådan..


$res = mysql_query("select * from chatbrugere where brugernavn='$_SESSION[brugernavn]'");
    $row = mysql_fetch_assoc($res);
Avatar billede detox Nybegynder
23. september 2004 - 15:48 #17
ok
Avatar billede web-geek Nybegynder
23. september 2004 - 15:48 #18
Den gider ikke opdater total her?

<?
if(isset($_POST[brugernavn])) {

mysql_query("UPDATE chatbrugere SET total=total+".time()."-login, online='0' WHERE brugernavn='$_SESSION[brugernavn]'") or die(mysql_error());  echo "$_GET[brugernavn]";
}
?>
Du er nu logget ud.

Den giver ingen fejl, men den opdater intet i total! :-s
Avatar billede detox Nybegynder
23. september 2004 - 15:49 #19
Men viser den brugernavnet?
Avatar billede detox Nybegynder
23. september 2004 - 15:50 #20
Jeg tror du må bestemme dig for om du vil bruge: $_POST[brugernavn], $_SESSION[brugernavn] eller $_GET[brugernavn] ;O)
Avatar billede web-geek Nybegynder
23. september 2004 - 15:50 #21
Nej, men den plejer og virke med session, dog virker get ikke, men den bruges aligevel ikke.. Men, det er det med total der er forkert.
Avatar billede detox Nybegynder
23. september 2004 - 15:52 #22
Jo, men i if-sætningen spørger du efter:  $_POST[brugernavn]?
Avatar billede web-geek Nybegynder
23. september 2004 - 15:53 #23
Skal jeg så skrive det? :P *s*
Avatar billede detox Nybegynder
23. september 2004 - 15:53 #24
Prøv:

<?
if(isset($_SESSION['brugernavn'])) {

mysql_query("UPDATE chatbrugere SET total=total+".time()."-login, online='0' WHERE brugernavn='$_SESSION[brugernavn]'") or die(mysql_error());
echo $_SESSION['brugernavn'];
}
?>
Du er nu logget ud.
Avatar billede detox Nybegynder
23. september 2004 - 15:55 #25
Har du husket: session_start(); øverst?
Avatar billede web-geek Nybegynder
23. september 2004 - 15:56 #26
Den overdriver, når jeg er på chatten i 2 sekunder, så skriver den:


0 timer, 21 minutter og 47 sekunder.
Fritekst:
Avatar billede detox Nybegynder
23. september 2004 - 15:56 #27
<?
session_start();
if(isset($_SESSION['brugernavn'])) {
  mysql_query("UPDATE chatbrugere SET total=total+".time()."-login, online='0' WHERE brugernavn='$_SESSION[brugernavn]'") or die(mysql_error());
  echo $_SESSION['brugernavn'];
} else {
  echo "sessionen er ikke sat!";
}
?>
Du er nu logget ud.
Avatar billede web-geek Nybegynder
23. september 2004 - 15:58 #28
Har sat den!
Avatar billede web-geek Nybegynder
23. september 2004 - 15:58 #29
Den overdriver, når jeg er på chatten i 2 sekunder, så skriver den:


0 timer, 21 minutter og 47 sekunder.
Fritekst:
Avatar billede detox Nybegynder
23. september 2004 - 15:59 #30
Du skal osse huske plinger her i login:

$_SESSION[brugernavn] = $_POST[brugernavn];

altså:

$_SESSION['brugernavn'] = $_POST['brugernavn'];
Avatar billede web-geek Nybegynder
23. september 2004 - 16:00 #31
Det jo ******* ligemget, det virker jo? Den giver bare for mange timer..
Avatar billede detox Nybegynder
23. september 2004 - 16:04 #32
Har du så prøvet at logge ud og ind igen? Og det er jo ikke lige meget om du bruger plinger eller ej. Der er jo en grund til at man har vedtaget nogle regler for hvordan en kode skal se ud ;O)
Avatar billede web-geek Nybegynder
23. september 2004 - 16:05 #33
Nej, har jeg faktisk ikke :P, prøver lige
Avatar billede web-geek Nybegynder
23. september 2004 - 16:10 #34
Læg, svar og MANGE, MANGE TAK!
Avatar billede detox Nybegynder
23. september 2004 - 16:11 #35
VELBEKOMMEN :O)
Avatar billede web-geek Nybegynder
23. september 2004 - 16:11 #36
Se mit nye spg, der kan du se noget der ligner timesystemet, bare med penge.
Avatar billede web-geek Nybegynder
23. september 2004 - 16:16 #37
Hvordan siger jeg til serveren af hvis brugeren har 10 minutter så skal den give 5 mønter, og hvis han har 20 minutter giver den 10 mønter osv. Det skulle gerne laves i logud.php filen? og gemme i databasen "penge" fra chatbrugere?


<?
if(isset($_SESSION['brugernavn'])) {
$minutter = 10;
$monter = 5;

mysql_query("UPDATE chatbrugere SET total=total+".time()."-login, online='0' WHERE brugernavn='$_SESSION[brugernavn]'") or die(mysql_error());
echo $_SESSION['brugernavn'];
}
?>
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