Avatar billede znow Nybegynder
17. september 2004 - 16:26 Der er 8 kommentarer

Det modsatte af nedtælling, altså "optælling"?

Hej, skal bruge et script, som starter med at tælle fra 0 til 100000000000000000 eller uendeligt når scriptet åbnes, noegn der har et til at ligge eller?

Znow
Avatar billede milo Nybegynder
17. september 2004 - 16:29 #1
$i = 1;
while ($i <= 100000000000000000) {
  echo "hejsa";
  $i++;
}
Avatar billede odni Nybegynder
17. september 2004 - 16:30 #2
Du skal være opmærksom på, at scriptet vil automatisk blive stoppet af serveren, hvis det tager for lang tid at udføre - f.eks. et script, som du vil lave.

Dette er normalt mellem 30 og 60 sekunder. Derudover vil det også belaste serveren meget, så jeg synes, ikke lige det er noget, du burde lave, medmindre du roder rundt på din egen server.
Avatar billede znow Nybegynder
17. september 2004 - 16:33 #3
Måske nogen af jer så har en idé, sidder med en 2DChat, og skal have lavet så ens onlinetid bliver talt. Nogen idéer?
Avatar billede odni Nybegynder
17. september 2004 - 16:35 #4
Så bruger du selvfølgelig de indbyggede tids-funktioner i php.
Avatar billede znow Nybegynder
17. september 2004 - 16:37 #5
Odni - Nu er jeg ikke så kendt med alle de "stamps" i PHP, jeg prøvede at lave så når man åbnede chatten, blev der gemt et "time stamp" altså, $tid = time(); og så gemte den det i mysql på brugeren, men ved at man så kan trække to tal fra hinanden og så burde den udregne onlinetiden? men det script jeg lavede virkede ikke helt til det :S

Ved ik om du kan hjælpe og vil se scriptet så?
Avatar billede odni Nybegynder
17. september 2004 - 16:40 #6
Du er godt på vej.

Det kan laves på flere måder. Først og fremmest skal du vide, hvornår brugeren er på og hvornår brugeren logger af igen.

Når brugeren logger på laver du, som du selv siger, en time(). Mere om time ses her:

http://www.php.net/manual/da/php/function.time.php

I korte træk returnerer funktionen unix epoch - altså tid i sekunder fra 1970.

Når brugeren logger af, minusser du så time() med tiden, du skrev ind i databasen.
Avatar billede znow Nybegynder
17. september 2004 - 16:41 #7
Ja, det har jeg så også prøvet på, meeen :S så skriver den ting som +216 osv. :S

Her er det script som der "lukker og slukker" brugeren der logger af chatten :

<?
session_start();
if (session_is_registered("brugernavn") AND ("kodeord")) {
include 'mysql.php';

$query = mysql_query("SELECT * FROM brugere WHERE brugernavn='$_SESSION[brugernavn]'");
$hent = mysql_fetch_array($query);

$tid = time();
$duration = $tid-$hent[timeout];
$plus = $duration+$hent[onlinetid];

mysql_query("UPDATE brugere SET onlinetid = '$plus', felt = '0' WHERE brugernavn = '$_SESSION[brugernavn]'");
?>
<script>
window.top.close();
</script>
<?
} else {
header("Location: ../../login.php");
}
?>

Sluut

timeout i mysql er det felt hvor time() bliver skrevet når chatten åbnes
Avatar billede odni Nybegynder
17. september 2004 - 17:02 #8
Når du henter dataene ud, skal du sørge for at lave sekunderne om til noget menneskeligt. Kig på funktionen date(), der tager et timestamp i 2. parameter og laver det om til et format, du angiver i 1. parameter.

http://www.php.net/manual/da/function.date.php

Held og lykke.
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