why does this simple counter fail?

Ryan Coleman editor at d3photography.com
Fri Mar 25 11:36:49 UTC 2011


You're using a completely stock php.ini file.

Look for short tags. Turn that on.

<?php is long form... most scripts are using short tags.

I don't see why you need the file name in the file itself... just have a number there. Much faster on the CPU.

--
Ryan

On Mar 25, 2011, at 12:36 AM, Gary Kline wrote:

> On Thu, Mar 24, 2011 at 06:25:39PM -0500, Ryan Coleman wrote:
>> Gary, you missed the put... fput($fp, $file); means you're dropping the filename INTO the storage file.
> 
> 
> 	okay.  [maybe].  i think what the script does is create
> 	./countdir/$file ; in this case, ./countdir/index where i create
> 	the file named "index\n" and below it the integer count.  e.g.:
> 
> 	in directory countdir, in file index is:
> 
> 	index
> 	60311
> 
> 	to track the hits for my homepage.   in defense of this crude
> 	hack with no error-checking is that i have used the same script
> 	in at least three other virtual thought.org websites.   
> 
> 	i was wrong is saying that the script bombed; it just failed;
> 	the reason was that the initial tag had been "<?" rather than
> 	"<?php"
> 
> 	gary
> 
> 
>> 
>> 
>> On Mar 24, 2011, at 6:00 PM, Gary Kline wrote:
>> 
>>> On Wed, Mar 23, 2011 at 07:11:15PM +0100, Fr?d?ric Perrin wrote:
>>>> Gary Kline <kline at thought.org> writes:
>>>>> 	Can any of you php hackers tell me why this simple self-hacked
>>>>> 	counter bomb?
>>>> 
>>>> As others said, what does 'this simple counter bomb' means?
>>>> 
>>>>> $fp = fopen($directory.$file, "r+");
>>>>> flock($fp, 1);
>>>> 
>>>> You want an exclusive lock (LOCK_EX, which is 2 is you use some ancient
>>>> PHP), not a shared lock.
>>>> 
>>>> When updating the file:
>>>> 	> fputs($fp, $count);
>>>> 	> fputs($fp, "\n");
>>>>> fputs($fp, $file);
>>>> 
>>>> Why do you feel the need to store the filename inside the file itself?
>>>> You don't seem to need it after.
>>> 
>>> 
>>> 	$file is passed from the calling php file.  index.php is by-hand
>>> 	set to
>>> 
>>> 	$file='index'; 
>>> 
>>> 	and so on.  
>>> 
>>> 	Because of my shoulder/typing woes, it was great that I got clued in
>>> 	above by Brad's thought that perhaos there were mis-matched "<?" 
>>> 	and "?>" tags.  A simply recursive grepping found out that it some 
>>> 	places I had "<?" <cr> instead of "<?php"> <cr>.   Adding the "php" 
>>> 	fixed everything.  
>>> 
>>> 	Finally, you're right; this really, really is ancient php.
>>> 	Somthing i found pre-2004 and hacked until it worked.  The
>>> 	counter is missings lots of features, but I'll fix that pretty
>>> 	soon.
>>> 
>>> 	thanks to everybody ,
>>> 
>>> 
>>>> 
>>>> -- 
>>>> Frédéric Perrin -- http://tar-jx.bz
>>>> 
>>>> _______________________________________________
>>>> freebsd-questions at freebsd.org mailing list
>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>>>> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
>>> 
>>> -- 
>>> Gary Kline  kline at thought.org  http://www.thought.org  Public Service Unix
>>>          Journey Toward the Dawn, E-Book: http://www.thought.org
>>>         The 7.98a release of Jottings: http://jottings.thought.org
>>> 
>>> _______________________________________________
>>> freebsd-questions at freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>>> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
>> 
>> 
> 
> -- 
> Gary Kline  kline at thought.org  http://www.thought.org  Public Service Unix
>           Journey Toward the Dawn, E-Book: http://www.thought.org
>          The 7.98a release of Jottings: http://jottings.thought.org
> 
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"



More information about the freebsd-questions mailing list