I would like the make the file on Flash-db named "Simple Live Counter with PHP" work without being reset. Basically it works with a flash file that shows the count, a php file that opens a text file and increases the number in that text file as a variable for flash, then the flash file reads the text file. The problem is that I'm having too many people viewing the web page with the counter at the same time and the text file gets reset. So, in the docs of "Simple Live Counter with PHP" it has a "modification" that is supposed to keep the file from being reset and I can't get it to work. The basic php file works fine...except that it gets reset. Here is what it says in the docs about the basic method (Part 1) and then the modification (Part 2):
PART 1
For this part you can use the attached script by just adding it to the same directory as the PHPCounter.swf. Not much else has to be done. I'm going to go over the script in Detail however in the hopes that you'll have a better understanding of how it works and so that you can create your own modifications in the Future. (For example purposes Line numbers where used here for the example - do not use line numbers in the actual script.
1) <?
2) $filename = "PHPCounter.txt";
3) $fp = fopen( $filename,"r");
4) $Old = fread($fp, 100);
5) fclose( $fp );
6) $Old = split ("=", $Old, 5);
7) $NewCount = $Old[1] + '1';

$New = "Count=$NewCount";
9) $fp = fopen( $filename,"w+");
10) if (flock($fp, 2)) {
11) fwrite($fp, $New, 100);}
12) fclose( $fp );
13) print "Count=$NewCount";
14) ?>
Line 1 - Tells the server to start processing this script as a PHP script.
Line 2 - Sets the variable filename to the name of the text file that we are going to be using to store the number of visits or Counts. Remember in PHP whenever you see a $ that indicates a scaler variable.
Line 3 - Opens the text file for reading.
Line 4 - This line basically places the content of the text file into the variable Old.
Line 5 - Closes the text file.
Line 6 - This line splits the text file where ever an = sign occurs and puts the two parts into an array that can be referenced as follows: $Old[0] references the Count part of the string, $Old[1] references the Number part of the string. This is important because we only want to read and add to the number and not the whole string (Count=Number).
Line 7 - Adds 1 to the current Count.
Line 8 - Creates a new string that can be placed into the text file. We need to add the 'Count=' part again because we got rid of it when we split the string into the array.
Line 9 - Opens the file for writing to.
Line 10 - An optional argument that locks the file (file locking) so that we do not write over the same file at the same time - this can cause the Count to reset and may cause other errors. This is mostly important if you think a large number of people will be visiting your site at any one moment.
Line 11 - This writes over the current text file with the New value - the count is increased by one.
Line 12 - Closes the text file for writing to.
Line 13 - Prints out Count=(The new Count) which is returned to the Flash movie - the value of Count then appears in the dynamic text box named Count in the Flash movie.
Line 14 - Ends the PHP script.
PART 2
Code Modification: The following code works in exactly the same way as the above mentioned however there is increased file locking capabilities. This is important if you think that your going to have lots of calls to this script at the exact same time. File Locking (flock) makes sure that only one file is being written to at any one instant. Notice that the main change to this script is the inclusion of the lines: $fd = fopen( $filename,"a"); flock($fd,2); This creates a dummy file lock on that text file being used, which prevents the extremely rare case of the the script opening another write connection before it has time to lock it. This is however extremely rare and in most cases does not have to be considered.
<?
$filename = "FooterCounter.txt";
$fd = fopen( $filename,"r");
flock($fd,1);
$Old = fread($fd, 200);
fclose($fd);
$Old = split ("=", $Old, 3);
$NewCount = $Old[1] + '1';
$Old <bracket>0<bracket> = ereg_replace("[^0-9]", "", $Old<bracket>0<bracket>);
$New = "Count=$NewCount";
$fd = fopen( $filename,"a");
flock($fd,2);
$fp = fopen( $filename,"w+");
fwrite($fp, $New, 200);
fclose($fp);
fclose($fd);
?>
Thanks again for your help.
Note: <bracket> in the code above equals [ ], it would change when pasted in.