A brief unofficial history about register_globals in PHP

It’s been a long road and exactly five years (35 releases) since the much discussed and highly controversial PHP directive register_globals has been disabled by default in PHP. After sifting through the mailing list archives, the following set of information has been compiled. Feel free to make additions, corrections, and report register_globals memories!

First, a few tidbits

  • As of today, April 22, 2007, register_globals has been disabled (by default) for five years. That’s when PHP 4.2.0 was released.
  • PHP 3 did not have register_globals because it was simply how PHP behaved. However, some people used $HTTP_*_VARS if track_vars was on (it was on by default, and always on since PHP 4.0.3).
  • You cannot set register_globals at runtime, and there have been at least 100 [deleted] user comments within the manual showing hacks how. This FAQ shows how. Don’t do it though.
  • The order variables are registered via register_globals is determined by variables_order, a directive that also affects which variables (including superglobals) will exist in PHP. Don’t let the name fool you, this is one powerful PHP directive! In PHP 3, gpc_order was used instead.
  • Most “Why PHP is insecure” articles show how to write insecure code with register_globals = on, and eventually register_globals (not poor programming) is blamed as the culprit. It rarely is.
  • Strangely the 4.2.0 release announcement does not contain the string “register_globals” but of course it refers to it, and is highlighted in the ChangeLog.
  • There’s plenty of code within cvsold.php.net that requires register_globals = on but that’s okay because it’s not a big concern. It however is slowly being updated.

A somewhat brief timeline

Continue reading A brief unofficial history about register_globals in PHP

a little roshambo dot org

This was from awhile ago:

a screenshot of roshambo.org
sometime early april 2007

And now today:

roshambo taken recently, on april 18, 2007

Is it random? What is random? Yes it’s random.

UPDATE: Some have asked if the numbers here are special… they aren’t. Well, the 925,952,925 struck me whereas the other was randomly chosen while writing this post.

another rabbit is reborn

As stated previously, I needed a reliable vehicle that will go from point A to point B and do so in an efficient and desirable manner. So, it’s time for me to introduce the world to my new Volkswagen rabbit!


 chic magnet

Feel free to pause to clean up the saliva that’s now soaking your chin. Below I’ll describe the pure awesomeness that is this wonderful awe inspiring 1980 Volkswagen Rabbit.

who needs a radio?

Now, you might be asking yourself “So… why a VW rabbit?” but really… why not?! Notice the convertible top, pretty cool huh?! This little beauty was created in 1980 and has roughly 180,000 miles on it. Although it uses gas (not diesel) the plan is to learn a lot by working on this car and eventually move towards diesel land. A new and well diagramed service manual has been purchased and although its 800 pages of text is intimidating, it’s nice to have and will prove handy.

lock that cap!

From the photos you’ll observe the locking gas cap, an increasingly important feature these days. And notice the almost wood dash and steering wheel, nothing says style more than wood trim! Next we have the [what could be] leather interior, a true luxurious mobile. And every serious sports car driver deserves the informative central console gauges for when you need to know your vehicles temperature, the number of volts the battery is holding currently, and of course a clock for logging all those 0-100 kmh (0-62mph) time trials on the race track.

living the dream…

One picture shows the five gears, yes that’s right, 1-2-3-4-…5 gears! This is my first manual (stick), a type of vehicle I’ve been preaching against forever now. Sure I’ll have one less arm and one less leg to use for other things while driving but who cares… it’s a rabbit!

five gears!

I’m not sure what the L means near the logo but I assume it’s German for Awesome.

L = Awesome

So we’ll see what happens. I’ve already compiled a lengthy TODO list for fixing this little hummer up and do look forward to learning about automobile maintenance. I’ll of course keep you all updated :-)