bestandje schrijven en lezen
Ik ben pas weer begonnen met PHP (Dit keer serieus en niet copy-pasten uit bestaande dingen) en liep vrijwel gelijk tegen mijn eerste probleem op.
Ik ben zegmaar programmeur in een spelletje met servers die werken met LUA bestanden (en de lua programmeertaal) en blahblahblah.
Nu wil ik, dat ik met een simpel snippetje met de server het aantal bezoekers kan tellen, en als wanneer iemand joint of verlaat, de server naar de webserver een signaal stuurt om het bezoekersaantal te weizigen, zodat de mensen op de site kunnen zien hoeveel mensen erin zitten.
Het klinkt simpel, en volgens mij is de fout ook heel erg sullig :<
Maar m'n script klinkt alsvolgt.
setplayers.php (moet ik nog een remote_ ding aan toevoegen die alleen geld voor het IP van de server)
Quote:
De fout hier is, dat het in plaats van "Error!" of "no Error!" heel logisch een lege pagina geeft.
getplayers.php (die later in de homepage word gebouwd)
Quote:
De fout hier is, dat ik geen tekst zie :o
het players.db script is alleen gevuld met een getal.
Verder zou ik het graag bij een .db bestand houden, of een andere extensie, en niet overhaast overstappen op een SQlite geval, omdat ik de basis op dit moment belangrijker vind ;)
Ik hoop dat jullie mij snel met dit hele sullige foutje kunnen helpen (A)
Groetjes Jasper.
Toevoeging op 23/11/2010 22:11:43:
Achteraf gezien een beetje te veel getypt :$
Moet zijn
$_GET['players']
Toevoeging op 23/11/2010 22:18:43:
Mischien klein tipje
Gebruik een database stukke makkelijker
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
/* Start the session */
session_save_path('phpsessions');
session_start();
$_SESSION["viewer"] = $_SERVER["REMOTE_ADDR"];
/* Define how long the maximum amount of time the session can be inactive. */
define("MAX_IDLE_TIME", 2);
function getOnlineUsers(){
/* Default directory: /var/lib/php/session */
if ( $directory_handle = opendir( session_save_path() ) )
{
$count = 0;
while ( false !== ( $file = readdir( $directory_handle ) ) )
{
if($file != "." && $file != "..")
{
if(time()- fileatime(session_save_path() . "/" . $file) < MAX_IDLE_TIME * 60)
{
$count++;
}
else //remove files with PHP - Unlink()
{
unlink(session_save_path() . "/" . $file);
}
}
}
closedir($directory_handle);
return $count;
}
else
{
return false;
}
}
// echo "Website bezoekers online: " . getOnlineUsers() . "<br />";
?>
<html>
<head>
<style type="text/css">
<!-- BODY {background:none transparent;}-->
</style>
</head>
<body>
<font face="trebuchet ms" size="2" color="white">
<b>
Website bezoekers online: <?echo getOnlineUsers(); ?>
</b>
</font>
</body>
</html>
/* Start the session */
session_save_path('phpsessions');
session_start();
$_SESSION["viewer"] = $_SERVER["REMOTE_ADDR"];
/* Define how long the maximum amount of time the session can be inactive. */
define("MAX_IDLE_TIME", 2);
function getOnlineUsers(){
/* Default directory: /var/lib/php/session */
if ( $directory_handle = opendir( session_save_path() ) )
{
$count = 0;
while ( false !== ( $file = readdir( $directory_handle ) ) )
{
if($file != "." && $file != "..")
{
if(time()- fileatime(session_save_path() . "/" . $file) < MAX_IDLE_TIME * 60)
{
$count++;
}
else //remove files with PHP - Unlink()
{
unlink(session_save_path() . "/" . $file);
}
}
}
closedir($directory_handle);
return $count;
}
else
{
return false;
}
}
// echo "Website bezoekers online: " . getOnlineUsers() . "<br />";
?>
<html>
<head>
<style type="text/css">
<!-- BODY {background:none transparent;}-->
</style>
</head>
<body>
<font face="trebuchet ms" size="2" color="white">
<b>
Website bezoekers online: <?echo getOnlineUsers(); ?>
</b>
</font>
</body>
</html>
@jordi: ik probeer het morgen even :) bedankt
@Aad: bedankt voor de reactie, maar ik wil niet te moeilijk beginnen en weten waar ik mee bezig ben :x, misschien kan ik later ook zoiets dergelijks maken.
Even spelen met:
Kijk ook in het handboek voor de mogelijkheden bij error_reporting: http://nl2.php.net/manual/en/function.error-reporting.php
edits: bbcode en phptag beter niet samen gebruiken?
Gewijzigd op 24/11/2010 08:45:38 door Bas Cost Budde
dom.
Is XML niet iets, met Ben jij niet ergens een { vergeten te afsluiten of je hebt er 1 teveel
Nee, hij is wel de haakjes bij de if () vergeten.
Had ik al gezegt ja maar stel dat hij nog een fout aangeeft
Jordi kroon op 24/11/2010 08:45:31:
Had ik al gezegt ja maar stel dat hij nog een fout aangeeft
Nee, je had het over de $_GET variabele gezegd.
En dan moet hij maar error reporting aanzetten.
ronde haakjes zijn door vierkante haakjes vervangen
en rond het if-geval staan nu haakjes
Quote:
if ($playeramounttf)
Ik wist niet dat dat moest in PHP, ik dacht dat het net als in m'n bekende programmeertaal gewoon los kon :$
Toevoeging op 24/11/2010 21:33:08:
en setplayers.php doet het :D het enige wat hij zegt is: Error! (van mijn script), maar zoiets verwachte ik al omdat "5" uit $_GET een string is, geen int.
Toevoeging op 24/11/2010 21:36:47:
Jaah! eindelijk opgelost
de fout bij filesize was dat je het 'path' moest invoeren, niet de file-var zoals ik had gedaan.
Bedankt voor jullie hulp mensen :)
Als je al die if ( $directory_handle = opendir( session_save_path() ) ) ...
wil omzeilen...
De inhoud van een file lezen, kan ook met 1 regel code:
Met file_put_contents kan je even gemakkelijk een string naar file schrijven.