/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Offline/Online i tekstdokument
Fra : Dimsen


Dato : 11-02-07 18:45

Hejsa. Jeg arbejder med et "manuelt" login system.

Jeg sprøger om der er nogen der kender nogle kode, der gør at man
kan se om brugeren er online eller offline (som bliver skrevet i
en txt dokument).

Selve brugeren: Når statusen skiftes til online, når han er på,
eller offline, når han logger af eller lukker siden.

Profilen: Hvor man kan se brugerens status fra tekstdokumentet.

Er der nogen der vil gøre mig den glæde, at hjælpe? :)

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Martin (12-02-2007)
Kommentar
Fra : Martin


Dato : 12-02-07 08:23

Dimsen wrote:
> Hejsa. Jeg arbejder med et "manuelt" login system.
>
> Jeg sprøger om der er nogen der kender nogle kode, der gør at man
> kan se om brugeren er online eller offline (som bliver skrevet i
> en txt dokument).
>
> Selve brugeren: Når statusen skiftes til online, når han er på,
> eller offline, når han logger af eller lukker siden.

Det nemmeste er at skrive hvornår en bruger har set en side, også
udregne tiden.

Hvis tiden er højere end 5 min. så er brugeren højst sandsynligt ikke
online.

For at skrive i en fil

<?php
$fil = "brugere.txt";
// Filen der skal skrives i
$fil_indhold = file_get_contents($fil);
// Her henter vi lige hele filens indhold...
$nu = time();
// Vi sætter $nu til at være nutiden, i UNIX format
// (rigtig godt format, man kan en masse sjovt med :)
$bruger = "hansen";
// Skal selvfølgelig hentes fra en session eller lign.

file_put_contents($nu."|||".$bruger."\r\n".$fil_indhold,$fil);
// Vi bruger ||| så er det lidt nemmere at splitte tingene ad senere

// Eller onelineren
file_put_contents(time()."|||".$bruger."\r\n".file_get_contents($fil),$fil);
?>

Bemærk at file_put_contents() først er kommet til efter PHP5

> Profilen: Hvor man kan se brugerens status fra tekstdokumentet.

<?php
$min = 300;
// Antal sekunder før en bruger vises som "offline"
$fil = "brugere.txt";
// Filen der skal læses fra
$fil_indhold = file_get_contents($fil);
// Læs indhold

$fil_indhold = explode("\r\n",$fil_indhold);
// Lav hver række til et array

foreach($fil_indhold AS $indhold) {
// Løkker lige alle linjer af vores array igennem
list($time,$user) = explode("|||",$indhold);
// Her bruger vi så vores demiliter ||| som vi også
// brugte da vi satte brugere ind, så vi kan se forskel på
// tid og brugernavn.
if($time > time()+$min) {
// Hvis tiden fra filen, er højere end nutiden + $min så...
echo $user." er online!";
// Hov vores bruger er online - så vi skriver det lige
} else {
break;
// Da vi ved at de nyeste brugere er i toppen af filen,
// så ved vi også at alle brugere der er højere end $min
// faktisk ikke er online,
// så derfor kan vi ligeså godt stoppe løkken her.
}
}
?>

En helt anden ting...
Da sådan en fil her kan vokse til sig MEEEEGET stor, på rimelig kort tid
(alt efter antal brugere selvfølgelig) så er det klart at fortrække en
database løsning.

Dimsen (12-02-2007)
Kommentar
Fra : Dimsen


Dato : 12-02-07 13:08


Warning: explode() [function.explode]: Empty delimiter. in
/var/www/(PRIVAT).dk/users/(PRIVAT-HJEMMESIDE)/profil.php on line 14

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Martin (12-02-2007)
Kommentar
Fra : Martin


Dato : 12-02-07 14:02

Dimsen wrote:
> Warning: explode() [function.explode]: Empty delimiter. in
> /var/www/(PRIVAT).dk/users/(PRIVAT-HJEMMESIDE)/profil.php on line 14

Det er nok pga. den tomme linje som vil være der tilsidst.
Du kan evt override warningen med en @ foran explode

Eller du kan lige lave et kontrol
if(strpos("|||",$indhold))

Dimsen (12-02-2007)
Kommentar
Fra : Dimsen


Dato : 12-02-07 18:33

Jeg kan ikke se den skriver i tekstdokumentet?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Martin (12-02-2007)
Kommentar
Fra : Martin


Dato : 12-02-07 21:45

Dimsen wrote:
> Jeg kan ikke se den skriver i tekstdokumentet?

1: Har du PHP 5?
2: Kalder du 1. del af scriptet?
3: Får du nogle fejlmeddelser?
4: Har du rettigheder til at skrive til filen, og eller biblioteket?
5: Er brugernavnet korrekt sat?

Hvis alt andet fejler - så test denne.

<?php
$fil = "test.txt";
file_put_contents("Hej med dig",$fil);
?>

Får du nogle fejlmeddelser på denne?
Bliver filen skrevet?

Dimsen (13-02-2007)
Kommentar
Fra : Dimsen


Dato : 13-02-07 17:04

Jeg siger sgu mange tak! :D Jeg har også fundet JavaScript løsninger og
HTML (<body onunload="">).

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste