Planet eZ publish
In this second part of a three-part series, we take up the topic of server-side validation. By the time you finish this article, you'll have the general guidelines for how to build a form validating class. You'll use some PHP built-in introspection functions, along with regular expressions, to assist you in building this class.
They create several functions, including validateEmpty, validateInteger, validateNumber, validateRange, and validateEmail. Each one (obviously) serves their own purpose, and some are more complex that others (validating an integer versus a valid email address), but they walk you through each, showing you plenty of code and explainations along the way...
Via Chris' blog, I came across this posting that discusses the perceived lack of security in PHP. Others have already made excellent points in response to the author's claims

For the eZ components we are currently writing introductionary tutorials for each component. These tutorials should be a first start in understanding the abilities of each specific component without having to go through the full API documentation.
As good programmers we hate to document and thus the easier we can make the process the better documentation we will get. For our internal documents we use plain text files in SVN, describing guidelines and conventions. Those text files are formatted using reStructuredText, a format used by the Python community. It is a very easy to remember syntax, wiki-like, and it is easy to convert to HTML. We also decided to used the same format for our tutorials because it is such an easy format. With a specific PHP script we generate HTML from the tutorials, and add links to the other documentation that is generated by phpDocumentor from our inline API documentation.

wopr-mobile ~ # emerge -vp ezc-eZcomponents These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild N ] app-admin/php-toolkit-1.0-r2 0 kB [ebuild N ] dev-lang/php-5.1.2 0 kB [3] [ebuild N ] dev-php/PEAR-PEAR-1.4.6 0 kB [2] [ebuild N ] dev-php5/ezc-Base-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Database-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-PhpGenerator-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Configuration-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-ImageAnalysis-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Archive-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Translation-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Cache-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-ConsoleTools-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-PersistentObject-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-ImageConversion-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Mail-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-UserInput-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Debug-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-EventLog-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Execution-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-eZcomponents-1.0_rc1 0 kB [2] Total size of downloads: 0 kB Portage overlays: [1] /usr/local/overlay/personal [2] /usr/local/overlay/cvs [3] /usr/local/overlay/php/testing [4] /usr/local/overlay/php/experimental [5] /usr/local/overlay/gentopia [6] /usr/local/overlay/xgl

wopr-mobile ~ # emerge -vp ezc-eZcomponents These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild N ] app-admin/php-toolkit-1.0-r2 0 kB [ebuild N ] dev-lang/php-5.1.2 0 kB [3] [ebuild N ] dev-php/PEAR-PEAR-1.4.6 0 kB [2] [ebuild N ] dev-php5/ezc-Base-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Database-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-PhpGenerator-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Configuration-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-ImageAnalysis-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Archive-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Translation-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Cache-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-ConsoleTools-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-PersistentObject-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-ImageConversion-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Mail-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-UserInput-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Debug-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-EventLog-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Execution-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-eZcomponents-1.0_rc1 0 kB [2] Total size of downloads: 0 kB Portage overlays: [1] /usr/local/overlay/personal [2] /usr/local/overlay/cvs [3] /usr/local/overlay/php/testing [4] /usr/local/overlay/php/experimental [5] /usr/local/overlay/gentopia [6] /usr/local/overlay/xgl

wopr-mobile ~ # emerge -vp ezc-eZcomponents These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild N ] app-admin/php-toolkit-1.0-r2 0 kB [ebuild N ] dev-lang/php-5.1.2 0 kB [3] [ebuild N ] dev-php/PEAR-PEAR-1.4.6 0 kB [2] [ebuild N ] dev-php5/ezc-Base-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Database-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-PhpGenerator-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Configuration-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-ImageAnalysis-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Archive-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Translation-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Cache-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-ConsoleTools-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-PersistentObject-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-ImageConversion-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Mail-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-UserInput-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Debug-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-EventLog-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-Execution-1.0_rc1 0 kB [2] [ebuild N ] dev-php5/ezc-eZcomponents-1.0_rc1 0 kB [2] Total size of downloads: 0 kB Portage overlays: [1] /usr/local/overlay/personal [2] /usr/local/overlay/cvs [3] /usr/local/overlay/php/testing [4] /usr/local/overlay/php/experimental [5] /usr/local/overlay/gentopia [6] /usr/local/overlay/xgl
Being someone with a degree in English...
This is in response to Chris Shiflett's "Technical Vocabulary and Grammar" post. My comment became so long that I decided to blog it instead.
He talks about collective nouns being plural (making it okay to use something like "PHPDeveloper.org are..."), periods inside quotation marks, a suggestion for aiding understanding of actual commands typed for programming books (loose the quotes and go bold), and his own view on what "PC" really means...

Norway is a somewhat strange country. When I got there - 2 weeks ago to work with Amos, Derick, Fred and Ray on the eZ components - it had the expected amount of snow. A few days later, there was nothing anymore. We had positive celsius values and the weather was really crappy... until Monday. Since then it has been snowing all the time and yesterday we left when it looked like this:

Nice to watch, but not real fun to walk onto. :) Anyway, it's been another great stay in Skien, where the eZ headquarter is and I'm pretty much looking forward to our summer conference, where we plan to have the complete eZ team there and lots of people from the PHP world. Thanks for the great time, folks!

Norway is a somewhat strange country. When I got there - 2 weeks ago to work with Amos, Derick, Fred and Ray on the eZ components - it had the expected amount of snow. A few days later, there was nothing anymore. We had positive celsius values and the weather was really crappy... until Monday. Since then it has been snowing all the time and yesterday we left when it looked like this:

Nice to watch, but not real fun to walk onto. :) Anyway, it's been another great stay in Skien, where the eZ headquarter is and I'm pretty much looking forward to our summer conference, where we plan to have the complete eZ team there and lots of people from the PHP world. Thanks for the great time, folks!
