|
| 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
| |
|
|