<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>work in progress ... &#187; PHP</title>
	<atom:link href="http://blog.tobias-olry.de/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.tobias-olry.de</link>
	<description>... Stillstand gibt's nicht! (von Tobias Olry)</description>
	<lastBuildDate>Thu, 24 Sep 2009 06:44:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>extending ezcMvcCatchallRoute</title>
		<link>http://blog.tobias-olry.de/extending-ezcmvccatchallroute</link>
		<comments>http://blog.tobias-olry.de/extending-ezcmvccatchallroute#comments</comments>
		<pubDate>Tue, 01 Sep 2009 05:31:21 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[all]]></category>
		<category><![CDATA[ezcMvcCatchallRoute]]></category>
		<category><![CDATA[ezcMvcTools]]></category>
		<category><![CDATA[ezComponents]]></category>
		<category><![CDATA[Linux Desktop]]></category>
		<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.tobias-olry.de/?p=70</guid>
		<description><![CDATA[<p>I am currently working on a private project and while at it, giving ezvMvcTools a shot. I&#8217;m a big fan of ezComponents and using ezcMail and ezcGraph on a regular basis. So far, ezcMvcTools looks like an interesting MVC implementation with some differences to the typical ones I&#8217;ve used by now.</p>
<p></p>
<p>While adapting the hello world [...]]]></description>
			<content:encoded><![CDATA[<p>I am currently working on a private project and while at it, giving ezvMvcTools a shot. I&#8217;m a big fan of ezComponents and using <a title="ezcMail Tutorial" href="http://www.ezcomponents.org/docs/tutorials/Mail">ezcMail</a> and <a title="ezcGraph Tutorial" href="http://www.ezcomponents.org/docs/tutorials/Graph">ezcGraph</a> on a regular basis. So far, ezcMvcTools looks like an interesting MVC implementation with some differences to the typical ones I&#8217;ve used by now.</p>
<p><span id="more-70"></span></p>
<p>While adapting the <a title="ezcMvcTools Hello World Application" href="http://www.ezcomponents.org/docs/tutorials/MvcTools#a-simple-application-hello-world">hello world application</a> to my needs I ran into some trouble: Since I am pretty lazy and used to comfortable routing from my other MVC symfony, I didn&#8217;t want to set every single route manually. So I found ezcMvcCatchallRoute which maps  URLs of  &#8220;/&lt;controller&gt;/&lt;action&gt;&#8221; automatically, just what I wanted. Only problem was, the url-part &#8220;&lt;controller&gt;&#8221; was translated to the  classname &#8220;&lt;controller&gt;Controller&#8221; and had no option to add some prefix to this.</p>
<p>There was a prefix-option, but this was meant for route-prefixing ( e.g. if you wanted the route to match all routes that look like &#8220;/seo&lt;Controller&gt;/&lt;action&gt;&#8221;).</p>
<p>But it was quite easy to extend the function to fit my needs, so every controller classname would be prefixed with my project&#8217;s class-prefix:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> portfolioCatchAllRoute <span style="color: #000000; font-weight: bold;">extends</span> ezcMvcCatchAllRoute
<span style="color: #009900;">&#123;</span>
    <span style="color: #009933; font-style: italic;">/**
     *
     * @var string
     */</span>
    protected <span style="color: #000088;">$controllerNamePrefix</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #009933; font-style: italic;">/**
     *
     * @return string
     */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> getControllerNamePrefix<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">controllerNamePrefix</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #009933; font-style: italic;">/**
     *
     * @param string $controllerNamePrefix
     */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setControllerNamePrefix<span style="color: #009900;">&#40;</span><span style="color: #000088;">$controllerNamePrefix</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>controllerNamePrefix <span style="color: #339933;">=</span> <span style="color: #000088;">$controllerNamePrefix</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #009933; font-style: italic;">/**
     *
     * overload ezcMvcCatchAllRoute::createControlllerName() to make use of controllerNamePrefix
     *
     * @return string
     */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> createControllerName<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$controllerName</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getControllerNamePrefix</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">ucfirst</span><span style="color: #009900;">&#40;</span> parent<span style="color: #339933;">::</span><span style="color: #004000;">createControllerName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #000088;">$controllerName</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>usage in your router:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> portfolioRouter <span style="color: #000000; font-weight: bold;">extends</span> ezcMvcRouter
<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> createRoutes<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$catchallRoute</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> portfolioCatchAllRoute<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'index'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'index'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$catchallRoute</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setControllerNamePrefix</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'portfolio'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
            <span style="color: #000088;">$catchallRoute</span>
        <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.tobias-olry.de/extending-ezcmvccatchallroute/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php escaping in single-quotes</title>
		<link>http://blog.tobias-olry.de/php-escaping-in-single-quotes</link>
		<comments>http://blog.tobias-olry.de/php-escaping-in-single-quotes#comments</comments>
		<pubDate>Sun, 02 Aug 2009 19:02:47 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[all]]></category>
		<category><![CDATA[backslash]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[single-quotes]]></category>

		<guid isPermaLink="false">http://blog.tobias-olry.de/?p=69</guid>
		<description><![CDATA[<p>just discovered this strange behaviour in php, quite irritating actually:</p>

echo '\\.'.&#34;\n&#34;;
echo '\.'.&#34;\n&#34;;

<p>output:</p>
\.
\.
<p>to get two backslashes while using single-quotes, you need to do the following</p>

echo '\\\.'.&#34;\n&#34;;

]]></description>
			<content:encoded><![CDATA[<p>just discovered this strange behaviour in php, quite irritating actually:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'\\.'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'\.'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p>output:</p>
<pre>\.
\.</pre>
<p>to get two backslashes while using single-quotes, you need to do the following</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'\\\.'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.tobias-olry.de/php-escaping-in-single-quotes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>call me names</title>
		<link>http://blog.tobias-olry.de/call-me-names</link>
		<comments>http://blog.tobias-olry.de/call-me-names#comments</comments>
		<pubDate>Thu, 17 May 2007 20:52:50 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Familie]]></category>
		<category><![CDATA[Linux Desktop]]></category>
		<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.tobias-olry.de/call-me-names/</guid>
		<description><![CDATA[<p>In den letzten Wochen habe ich wenig von mir hören lassen, was vornehmlich daran lag, dass es jede Menge zu tun gab. Sowohl SimpleThings, als auch Freundin, Familie und Freunde wussten mich durchaus zu beschäftigen.</p>
<p>Allerdings habe ich die letzten Wochen auch ein wenig an einem Projekt gearbeitet, dass mir mehr und mehr Freude bereitet:
Meine Mutter [...]]]></description>
			<content:encoded><![CDATA[<p>In den letzten Wochen habe ich wenig von mir hören lassen, was vornehmlich daran lag, dass es jede Menge zu tun gab. Sowohl <a href="http://www.simplethings.de">SimpleThings</a>, als auch Freundin, Familie und Freunde wussten mich durchaus zu beschäftigen.</p>
<p>Allerdings habe ich die letzten Wochen auch ein wenig an einem Projekt gearbeitet, dass mir mehr und mehr Freude bereitet:<br />
Meine Mutter betreibt nun seit über 20 Jahren <a href="http://de.wikipedia.org/wiki/Genealogie">Genealogie</a> als Hobby und hat sich in dieser Zeit einen nicht unbeachtlichen Datenstamm zusammen gesucht. Alles fein säuberlich auf Papier gebannt, versteht sich. </p>
<p><span id="more-50"></span></p>
<p>Da die Standardformulare bereits seit Jahren nicht mehr ausreichen, um einen Familienstamm auf ein Blatt zu bekommen, wurden sie verkleinert, kopiert und zusammen geklebt, um in geschätzter 6pt Schrift noch alle nötigen Daten unterzubringen. Damit sind wir auf einer geschätzten Größe von DIN A1 bis DIN A0 angekommen. Die Handlichkeit lässt dabei natürlich stark zu wünschen übrig.</p>
<p>Hier kommt nun mein Projekt ins Spiel: eine kleine PHP-Anwendung, um diese Daten zu verwalten, anderen zugänglich zu machen, zu Visualisieren, &#8230;</p>
<p>Als Framework habe ich mir <a href="http://www.symfony-project.com">Symfony</a> ausgesucht, da ich nachdem Lesen der Online-Dokumentation restlos begeistert bin, von der Flexibilität, als auch von der sauberen Umsetzung. PHP5 war ein mehr als überfälliger Schritt in Sachen Objekt Orientierung und Frameworks, die voll auf PHP5 setzen, haben hier sicher eine große Zukunft. Zudem scheint mit Symfony mit Propel/Creole die richtige/ausgereifte Wahl getroffen zu haben, was die Datenbankabstraktion betrifft.</p>
<p>Viel ist von der Anwendung gibt es noch nicht zu sehen, da ich mich, wie gesagt, als ersten Schritt auf die Symfony Dokumentation gestürzt hatte. Allerdings ist die Datenbankstruktur schon mehr oder minder fertig und damit natürlich auch schon die <a href="http://de.wikipedia.org/wiki/CRUD">CRUD</a> Module. An ein wenig Screendesign habe ich mich bereits gewagt und mehrsprachig ist das Ganze auch schon.</p>
<p>Am Ende möchte ich die Software natürlich gerne allen Interessierten zur Verfügung stellen, unter (L)GPL, MIT oder dergleichen. Am Anfang steht aber natürlich immer der Name <img src='http://blog.tobias-olry.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
Ich hatte ja schon überlegt ein komisches Wort zu nehmen, es auf &#8220;R&#8221; enden zu lassen, und ein paar Vokale wegzulassen. Dann einen einfachen Schriftzug damit machen, eine dezente Spiegelung und einen &#8220;Beta&#8221;-Stern draufkleben, fertig <img src='http://blog.tobias-olry.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><img src="http://www.h-master.net/web2.0/image/(reflect)GeneaLgRBETA.png" alt="Generated Image" /></p>
<p>Da das offensichtlich nicht der innovativste Weg sein dürfte, bitte ich hier um Eure Mithilfe:<br />
Gebt mir Namen! &#8211; und bitte nicht &#8220;gibbon&#8221; oder gar &#8220;knut&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tobias-olry.de/call-me-names/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>InnoDB vs. MyISAM, 2.Teil</title>
		<link>http://blog.tobias-olry.de/innodb-vs-myisam-2teil</link>
		<comments>http://blog.tobias-olry.de/innodb-vs-myisam-2teil#comments</comments>
		<pubDate>Thu, 07 Sep 2006 20:03:31 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web-Development]]></category>

		<guid isPermaLink="false">http://blog.tobias-olry.de/innodb-vs-myisam-2teil/</guid>
		<description><![CDATA[<p>Ich hatte ja schonmal rumgefragt, ob jemand Nachteile von InnoDB gegenüber der klassischen MyISAM DB-Engine von MySQL kennt.</p>
<p>Mittlerweile hab ich da selber ein eklatantes Problem ausgemacht:</p>
<p></p>
<p>Zabbix, ein an sich sehr schickes Monitoring-System, nutzt seit Version 1.1 InnoDB-Tables. An sich gut, Problem nur, dass der Cleanup Prozess leider noch einen Bug hatte, wodurch nicht alle Tabellen [...]]]></description>
			<content:encoded><![CDATA[<p>Ich hatte ja <a title="MyISAM vs. InnoDB" href="http://blog.tobias-olry.de/myisam-vs-innodb/">schonmal</a> rumgefragt, ob jemand Nachteile von InnoDB gegenüber der klassischen MyISAM DB-Engine von MySQL kennt.</p>
<p>Mittlerweile hab ich da selber ein eklatantes Problem ausgemacht:</p>
<p><span id="more-31"></span></p>
<p><a title="Zabbix - Server Monitoring" href="http://www.zabbix.com/">Zabbix,</a> ein an sich sehr schickes Monitoring-System, nutzt seit Version 1.1 InnoDB-Tables. An sich gut, Problem nur, dass der Cleanup Prozess leider noch einen Bug hatte, wodurch nicht alle Tabellen aufgeräumt wurden. Dummerweise füllte sich dadurch die history-Tabelle mit 400Mio. Datensätzen, sprich knapp 4GByte große DB-Files. Bei InnoDB werden per default alle Dateien in <em>einem</em> File abgelegt, <em>/var/lib/mysql/ibdata1</em>.</p>
<p>Nachdem ich dann, nicht ganz ohne Schwierigkeiten, die Tabelle geleert hatte, musste ich aber leider feststellen, dass ibdata1 kein einziges Byte kleiner geworden war. In phpmyadmin bekommt man dann auch eine entsprechende Anzeige: &#8220;InnoDB free: 4171776 kB&#8221;.</p>
<p>&#8220;Das &#8220;Lustige&#8221;: falls ich den Aussagen mehrerer Personen aus <em>#mysql</em> auf freenode trauen darf, ist daran nichts zu ändern.</p>
<p>InnoDB extended das File automatisch, kleiner bekommt man es dann aber nicht mehr. Blöde Sache, da durch Zabbix die ganze Partition von ibdata1 besetzt war.</p>
<p>Naja, ibdata1 + history-files gelöscht, mysql restart. Das war&#8217;s dann, mit meinen Überlegungen, InnoDB in nächster Zeit mal für eigene Projekte einzusetzen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tobias-olry.de/innodb-vs-myisam-2teil/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kopfbild rotieren</title>
		<link>http://blog.tobias-olry.de/kopfbild-rotieren</link>
		<comments>http://blog.tobias-olry.de/kopfbild-rotieren#comments</comments>
		<pubDate>Sun, 16 Jul 2006 18:37:02 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Foto]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.tobias-olry.de/kopfbild-rotieren/</guid>
		<description><![CDATA[<p>Habe grade ein kleines php-Skript geschrieben, um das Kopfbild des Wordpress 2.0 Standard-Themes durchrotieren zulassen. Ist sehr simpel, man kann sich da sicher noch viele Finessen überlegen, um z.B. sicherzustellen, dass ein Bild nicht 2x hinter einander geladen wird o.ä. Für mich langt&#8217;s so erstmal.</p>
<p align="left">Also, wer Interesse dran hat, einfach in wp-content/themes/default/images ein Datei [...]]]></description>
			<content:encoded><![CDATA[<p>Habe grade ein kleines php-Skript geschrieben, um das Kopfbild des Wordpress 2.0 Standard-Themes durchrotieren zulassen. Ist sehr simpel, man kann sich da sicher noch viele Finessen überlegen, um z.B. sicherzustellen, dass ein Bild nicht 2x hinter einander geladen wird o.ä. Für mich langt&#8217;s so erstmal.</p>
<p align="left">Also, wer Interesse dran hat, einfach in <em>wp-content/themes/default/images</em> ein Datei z.B. mit Namen <em>kubrickheader.php</em> anlegen:</p>
<p align="left"><span id="more-18"></span><br />
[php]<br />
$folder = dirname(__FILE__).&#8221;/&#8221;;<br />
$files = array();</p>
<p>if(is_dir($folder) &#038;&#038; !is_link($folder) ){<br />
   if($dh = opendir($folder)){<br />
      while( $file = readdir($dh) ){<br />
         if(preg_match(&#8221;/^kubrickheader.[a-z]{1,10}.jpg$/i&#8221;, $file))<br />
            $files[] = $file;<br />
      }//while<br />
   }// if opendir<br />
}// if is_dir<br />
$count = count($files);</p>
<p>if( (int)$count > 0 ){<br />
   $imgIndex = rand(0,$count-1);<br />
   $selectedImage = $folder.$files[$imgIndex];<br />
   if( mime_content_type($selectedImage) == &#8220;image/jpeg&#8221;){<br />
      header(&#8221;Expires: Mon, 26 Jul 1997 05:00:00 GMT&#8221;);<br />
      header(&#8221;Last-Modified: &#8221; . gmdate(&#8221;D, d M Y H:i:s&#8221;) . &#8221; GMT&#8221;);<br />
      header(&#8221;Cache-Control: no-store, no-cache, must-revalidate&#8221;);<br />
      header(&#8221;Cache-Control: post-check=0, pre-check=0&#8243;, false);<br />
      header(&#8221;Pragma: no-cache&#8221;);<br />
      header(&#8221;Content-Disposition: inline&#8221;);<br />
      header(&#8221;Content-type: image/jpg&#8221;);<br />
      readfile($selectedImage);<br />
   }// if correct mimetype<br />
}// if any imgs found<br />
[/php]</p>
<p>Dann einfach in <em>wp-content/themes/default/header.php</em> in den Style-Angaben <strong>kubrickheader.jpg</strong> durch <strong>kubrickheader.php</strong> ersetzen.</p>
<p>So, jetzt muss ich nur noch jede Menge Bilder einstellen <img src='http://blog.tobias-olry.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tobias-olry.de/kopfbild-rotieren/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SecureImage und Comment-Count</title>
		<link>http://blog.tobias-olry.de/secureimage-und-comment-count</link>
		<comments>http://blog.tobias-olry.de/secureimage-und-comment-count#comments</comments>
		<pubDate>Wed, 12 Jul 2006 16:53:31 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.tobias-olry.de/secureimage-und-comment-count/</guid>
		<description><![CDATA[<p>Da zu meinem Erstaunen Wordpress 2.0 kein Captcha von Hause aus mitbringt, musste ich mir ein Plugin suchen und wurde fündig in SecureImage.</p>
<p>Leider scheinen die Default-Einstellungen aber ein wenig zu sicher zu sein. Denn öfters wurde mir gesagt, dass der Captcha nicht funktioniert, oder das man mehrer Anläufe gebraucht hat. Daher habe ich die Wert [...]]]></description>
			<content:encoded><![CDATA[<p>Da zu meinem Erstaunen Wordpress 2.0 kein <a href="http://de.wikipedia.org/wiki/Captcha">Captcha</a> von Hause aus mitbringt, musste ich mir ein Plugin suchen und wurde fündig in SecureImage.</p>
<p>Leider scheinen die Default-Einstellungen aber ein wenig zu sicher zu sein. Denn öfters wurde mir gesagt, dass der Captcha nicht funktioniert, oder das man mehrer Anläufe gebraucht hat. Daher habe ich die Wert ein wenig eingeschränkt, weniger Blur , Swirl, und was auch immer.</p>
<p><span id="more-17"></span></p>
<p>Die gescheiterten Versuche, einen Kommentar zu hinterlassen führten allerdings dazu, dass der &#8220;Comment-Count&#8221; für den entsprechenden Artikel trotzdem hochgezählt wird. Wahrscheinlich durch die Umstellung von WP 1.5 auf WP 2.0 &#8211; Abhilfe schaffen diese zwei Zeilen:<br />
[php]$realPostID = $wpdb->get_var(”SELECT comment_post_ID FROM $wpdb->comments WHERE comment_ID=$post_ID”);<br />
$wpdb->query(”UPDATE $wpdb->posts SET comment_count = comment_count-1 WHERE ID = $realPostID”);[/php]<br />
vor dieser Zeile:<br />
[php]$wpdb->query(”DELETE from $wpdb->comments WHERE comment_ID = $post_ID”); //roll back the comment post[/php]<br />
Allerdings frage ich mich auch, ob Captcha eigentlich das beste Vorgehen gegen Kommentar-Spam ist, halb automatische Filter wie <a href="http://akismet.com/">Akismet</a> sollen ja mittlerweile auch einiges leisten und schließlich sind viele Captchas ja auch bereits geknackt.</p>
<p>Was nutzt Ihr denn so?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tobias-olry.de/secureimage-und-comment-count/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Easy-Eclipse</title>
		<link>http://blog.tobias-olry.de/easy-eclipse</link>
		<comments>http://blog.tobias-olry.de/easy-eclipse#comments</comments>
		<pubDate>Tue, 06 Jun 2006 17:32:17 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web-Development]]></category>

		<guid isPermaLink="false">http://blog.tobias-olry.de/easy-eclipse/</guid>
		<description><![CDATA[<p>Ever had any problems to assemble an eclipse distribution, including wdt, cvs, subclipse combined with the right version of phpeclipse, updating wdt per online-update, &#8230;.? No? Congratulations!</p>
<p>I whatsoever never had an insallation that seemed complete or where I had nothing that did not bother me.</p>
<p>Sometimes the seperately installed CSS-Editor didn&#8217;t work correctly, on another installation [...]]]></description>
			<content:encoded><![CDATA[<p>Ever had any problems to assemble an eclipse distribution, including wdt, cvs, subclipse combined with the right version of phpeclipse, updating wdt per online-update, &#8230;.? No? Congratulations!</p>
<p>I whatsoever never had an insallation that seemed complete or where I had nothing that did not bother me.</p>
<p><span id="more-9"></span>Sometimes the seperately installed CSS-Editor didn&#8217;t work correctly, on another installation some options where missing, I could not enable line numbers to be shown in php-files by default, which was really annoying. But there is a real easy way of installation:</p>
<p><a title="EasyEclipse.org" target="_blank" href="http://www.easyeclipse.org/site/home/">EasyEclipse</a></p>
<p>EasyEclipse packages Eclipse and many different plugins into multipurpose distributions, &#8220;EasyEclipse Expert Java&#8221;, &#8220;EasyEclipse Desktop Java&#8221;, &#8220;EasyEclipse for PHP&#8221;, &#8220;Easy Eclipse for LAMP&#8221; (including perl-, php-, python- and ruby-environment), and so on.</p>
<p>Worked for me perfectly, out of the box.</p>
<p>Really great project!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tobias-olry.de/easy-eclipse/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

