bestandje schrijven en lezen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jasper Zegikniet

Jasper Zegikniet

23/11/2010 22:08:33
Quote Anchor link
Hallo mensen :)
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
  $playeramount
= $_GET("players");
  $playeramounttf = is_int ($playeramount);
  if $playeramounttf
  {
    $file = fopen ("players.db","w");
    fwrite ($file,$playeramount);
    fclose ($file);
    echo ("no Error!");
  }

  else
  {
    echo ("Error!");
  }

?>

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
  $file
= fopen ("players.db","r");
  $playeramount = fread ($file,filesize($file));
  echo ($playeramount);
  fclose ($file);
?>

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 :$
 
PHP hulp

PHP hulp

23/11/2024 09:01:14
 
Jordi Kroon

Jordi Kroon

23/11/2010 22:13:08
Quote Anchor link
$_GET('players')

Moet zijn

$_GET['players']

Toevoeging op 23/11/2010 22:18:43:

Mischien klein tipje
Gebruik een database stukke makkelijker
 
Aad B

Aad B

23/11/2010 22:23:12
Quote Anchor link
Bezoekers tonen kan redelijk eenvoudig en zonder databees bij te houden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>
 
Jasper Zegikniet

Jasper Zegikniet

23/11/2010 22:25:58
Quote Anchor link
Bedankt voor de snelle reacties ;)
@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.
 
Bas Cost Budde

Bas Cost Budde

24/11/2010 08:32:04
Quote Anchor link
Witte pagina? Dan staan je foutmeldingen misschien uit.
Even spelen met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
error_reporting(E_ALL);
ini_set('display_errors', true);

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
 

24/11/2010 08:36:33
Quote Anchor link
Is XML niet iets, met dom.
 
Jordi Kroon

Jordi Kroon

24/11/2010 08:37:24
Quote Anchor link
Ben jij niet ergens een { vergeten te afsluiten of je hebt er 1 teveel
 

24/11/2010 08:41:25
Quote Anchor link
Nee, hij is wel de haakjes bij de if () vergeten.
 
Jordi Kroon

Jordi Kroon

24/11/2010 08:45:31
Quote Anchor link
Had ik al gezegt ja maar stel dat hij nog een fout aangeeft
 

24/11/2010 08:53:01
Quote Anchor link
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.
 
Jasper Zegikniet

Jasper Zegikniet

24/11/2010 21:31:20
Quote Anchor link
Debugscript scriptje van Bas zegt dat er geen fouten zijn,
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 :)
 
Kris Peeters

Kris Peeters

29/11/2010 15:58:01
Quote Anchor link
Gewoon even melden:
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$content
= file_get_contents($file_location);
?>


Met file_put_contents kan je even gemakkelijk een string naar file schrijven.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.