Date: Fri, 25 Mar 2011 11:47:04 -0500 From: Ryan Coleman <editor@d3photography.com> To: FreeBSD Mailing List <freebsd-questions@freebsd.org> Subject: Re: why does this simple counter fail? Message-ID: <12F2AE40-58EE-455D-91B8-608A3925674F@d3photography.com> In-Reply-To: <20110325164445.GA16901@thought.org> References: <20110323164504.GA25317@thought.org> <kggr59xpv0c.fsf@pc-df-302.priv.enst-bretagne.fr> <20110324230049.GB31958@thought.org> <89898D0E-B4A9-41E9-B829-DF7CA8D3FF06@d3photography.com> <20110325053630.GA6722@thought.org> <BE6D7321-0B4A-4762-9270-CC34E52ECBED@d3photography.com> <20110325164445.GA16901@thought.org>
next in thread | previous in thread | raw e-mail | index | archive | help
That would cause a lot of file hanging, with locking, if you get any decent amount of traffic... I'd just stick to the simple TXT counter for the time being. If you did a mass file, your best bet would be to use arrays and serialize the data... but that's a lesson for another day. On Mar 25, 2011, at 11:44 AM, Gary Kline wrote: > On Fri, Mar 25, 2011 at 06:36:34AM -0500, Ryan Coleman wrote: >> 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. > > > True enough. I could have everything in one file and simply > print the filename and number. I didn't know that I had the > option of using short flags or not. Where do I set that? (I'm > sure there are more places where i have "<?" anf "?>" rather > than "<?php" and "?>"; be nice to _not_ have this cause me grief > again....) > > tx, > > gary > > >> >> -- >> 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@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@freebsd.org mailing list >>>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions >>>>>> To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org" >>>>> >>>>> -- >>>>> Gary Kline kline@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@freebsd.org mailing list >>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions >>>>> To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org" >>>> >>>> >>> >>> -- >>> Gary Kline kline@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@freebsd.org mailing list >>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions >>> To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org" >> >> > > -- > Gary Kline kline@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 >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?12F2AE40-58EE-455D-91B8-608A3925674F>
