<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Mon, 08 Sep 2008 05:37:22 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Matthew Turland's Blog: Environmental Awareness Quickie]]></title>
      <guid>http://www.phpdeveloper.org/news/10691</guid>
      <link>http://www.phpdeveloper.org/news/10691</link>
      <description><![CDATA[<p>
<i>Matthew Turland</i> <a href="http://ishouldbecoding.com/2008/07/26/environmental-awareness-quickie">came across</a> someone having an issue running his PHP-based IRC bot (<a href="http://phergie.org/">Phergie</a>) an an environment where the <a href="http://www.php.net/exec">exec function</a> wasn't allowed:
</p>
<blockquote>
This causes a warning in the <a href="http://trac2.assembla.com/phergie/browser/trunk/Phergie/Plugin/Quit.php">Quit</a> plugin, which uses exec to automatically detection of the full path to the PHP CLI binary on non-Windows systems that it will later use that path to initiate a new PHP CLI process to "restart" the bot.
</blockquote>
<p>
It check this setting for the future, it was recommended that he look at the <a href="http://us3.php.net/manual/en/language.oop5.reflection.php#language.oop5.reflection.reflectionfunction">SPL ReflectionFunction class</a> (a part of the Standard PHP Library) that would let him check the disabled status of any PHP function (looking at the result of the isDisabled call).
</p>]]></description>
      <pubDate>Mon, 28 Jul 2008 07:57:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Developer Tutorials Blog: Running background processes in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/10636</guid>
      <link>http://www.phpdeveloper.org/news/10636</link>
      <description><![CDATA[<p>
New on the Developer Tutorials blog today is <a href="http://www.developertutorials.com/blog/php/running-background-processes-in-php-349/">this look</a> at handling background processes from your PHP script:
</p>
<blockquote>
You've checked and double checked the integrity of user input, and you're doing some serious processing. There's only one problem: it's too slow. There's a simple solution: forking your processing script, and running the code as a background process asynchronously. It can email your user when it's done: they'll wait. In this tutorial, I'll show you how to get started with background processes in PHP.
</blockquote>
<p>
<i>Akash</i> gives examples of the three keys to background processes - starting the script via an exec, talking to the process by passing additional parameters and including code to monitor the state of the background process via something like a MySQL "sessions" table that the script writes to.
</p>]]></description>
      <pubDate>Fri, 18 Jul 2008 11:18:21 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHP Discovery Blog: Dangers of Remote Execution]]></title>
      <guid>http://www.phpdeveloper.org/news/9092</guid>
      <link>http://www.phpdeveloper.org/news/9092</link>
      <description><![CDATA[<p>
On the PHP Discovery blog, there's a <a href="http://phpdiscovery.com/dangers-of-remote-execution/">new post</a> reminding PHP developers of some of the more dangerous ways that remote execution could effect your site and some of the common entry points it can have.
</p>
<blockquote>
PHP has numerous ways to execute raw PHP code unless you the programmer stops it.  Best way in preventing these methods is making sure you check the input of what your users are inputting, and making sure you escape all malicious actions that a hacker,cracker, kiddy scripter might want to do to your website. 
</blockquote>
<p>
He summarizes four of the things from the <a href="http://apress.com/book/view/1590595084">Pro PHP Security</a> book from Apress (by <i>Chris Snyder</i> and <i>Michael Southwell</i>) that can leave holes in you application for would-be explots - preg_replace, shell_exec/exec, eval (which we all know is only one letter from "evil" anyway) and require/include.
</p>]]></description>
      <pubDate>Wed, 21 Nov 2007 13:48:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Nessa's Blog: Using PHP to Display Version Info (I and II)]]></title>
      <guid>http://www.phpdeveloper.org/news/8869</guid>
      <link>http://www.phpdeveloper.org/news/8869</link>
      <description><![CDATA[<p>
<i>Nessa</i> has <a href="http://www.v-nessa.net/2007/10/15/using-php-to-display-version-info/">two</a> <a href="http://www.v-nessa.net/2007/10/17/using-php-to-display-version-info-part-ii/">posts</a> that talk about how to use PHP to display the versions of software running on the local machine.
</p>
<blockquote>
I've been working on this application for work that does some simple server reporting, part of which involves displaying the versions of major software running on the machines. [...] I need to be aware of this to make sure that customers are being moved to servers with compatible versions. It's also good in tracking and planning upgrades.
</blockquote>
<p>
In the <a href="http://www.v-nessa.net/2007/10/15/using-php-to-display-version-info/">first post</a> she recommends using the exec function in PHP to run system commands to get things like the cpanel version, python version and what perl you have installed.
</p>
<p>
<a href="http://www.v-nessa.net/2007/10/17/using-php-to-display-version-info-part-ii/">Part two</a> shows a little bit different way to get some of the same information - using the data in the /proc/version file as a single resource to get OS information.
</p>]]></description>
      <pubDate>Fri, 19 Oct 2007 11:23:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[EdFinkler's Blog: Determining if a function is *really* available in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/7523</guid>
      <link>http://www.phpdeveloper.org/news/7523</link>
      <description><![CDATA[<p>
In <a href="http://funkatron.com/wp/archives/php/determining-if-a-function-is-really-available-in-php/">this new post</a> to his blog, <i>Ed Finkler</i> talks about some tests he worked up to discover if a function is available in PHP or not while working on the latest version of <a href="http://phpsecinfo.com/">PHPSecInfo</a>).
</p>
<blockquote>
is_callable() will return TRUE even if a function has been disabled in php.ini with disabled_functions (which, in my mind, is contrary to what 'is_callable' implies). function_exists() will return FALSE if the function is disabled in php.ini, but will return TRUE if the function is being blocked by safe_mode.
</blockquote>
<p>
So, to help counter these issues, he checks first to see if the exec('id') option works - checking it work function_exists and the setting for safe_mode (disabled). If it doesn't pass, he moves on to the posix_* function and tests then with a function_exists.
</p>]]></description>
      <pubDate>Thu, 29 Mar 2007 07:02:14 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[ThinkPHP Blog: Handling large files with(out) PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/5929</guid>
      <link>http://www.phpdeveloper.org/news/5929</link>
      <description><![CDATA[<p>
On the ThinkPHP blog today, there's a <a href="http://blog.thinkphp.de/archives/131-Handling-large-files-without-PHP.html">quick hint</a> about dealing with larger files both with and whithout PHP.
</p>
<blockquote>
As <a href="http://www.microsoft.com/billgates/default.asp">one man</a> <a href="http://groups.google.com/group/alt.folklore.computers/msg/99ce4b0555bf35f4">was quoted</a> "640K of memory should be enough for anybody" no one will need to access more than 2 GB data. What happens if you - just for scientific reasons of course - try to access larger files using your 32bit hardware and your favorite programming language PHP?
</blockquote>
<p>
They <a href="http://blog.thinkphp.de/archives/131-Handling-large-files-without-PHP.html">give the example</a> of opening a large 2 gig file with PHP and the resulting error that would pop up. They try a few differnt ways before getting down to more of a non-PHP PHP solution (yes, you read that right). They decided, instead, to create a script to work with the file chunked, using an exec() call to the unix split command to break it up.
</p>]]></description>
      <pubDate>Wed, 02 Aug 2006 05:47:06 -0500</pubDate>
    </item>
  </channel>
</rss>
