<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Slideshow Bob - PHP</title>
    <link>http://people.avona.com/~thomas.werner/</link>
    <description>So viele bunte Zeichen. Überall.</description>
    <dc:language>de</dc:language>
    <generator>Serendipity 1.4.1 - http://www.s9y.org/</generator>
    <pubDate>Sun, 20 Sep 2009 13:21:48 GMT</pubDate>

    <image>
        <url>http://people.avona.com/~thomas.werner/templates/slideshowbob/img/s9y_banner_small.png</url>
        <title>RSS: Slideshow Bob - PHP - So viele bunte Zeichen. Überall.</title>
        <link>http://people.avona.com/~thomas.werner/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>PHP geht bei 64 Bit die Speicherpuste aus</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/59-PHP-geht-bei-64-Bit-die-Speicherpuste-aus.html</link>
            <category>PHP</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/59-PHP-geht-bei-64-Bit-die-Speicherpuste-aus.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=59</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=59</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    &lt;div class=&quot;serendipity_imageComment_right&quot; style=&quot;width: 250px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:518 --&gt;&lt;img class=&quot;serendipity_image_right&quot; width=&quot;250&quot; height=&quot;145&quot;  src=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/PHP64.serendipityThumb.jpg&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Höher, schneller, weiter hat auch seinen Preis.&lt;/div&gt;&lt;/div&gt;Vergangene Nacht war ich mit &#039;nem Kumpel damit beschäftigt, eine Homepage zu debuggen, die auf einem neuen Server einfach nicht mehr funktionieren wollte. Manche Seiten waren weiß, ein paar wenige Seiten funktionierten dagegen - und im PHP-Log war zu sehen, daß der Speicherverbrauch die festgelegte 16-MB-Grenze gesprengt hat, weshalb sich PHP zum Abbruch der Skriptausführung gezwungen sah.&lt;br /&gt;
&lt;br /&gt;
Die Frage war: was ist mit der Homepage nach der Migration plötzlich passiert? Auf dem alten Server ging sie auch mit dem 16M-Speicherlimit. Die Antwort ist hierbei ganz einfach und leider auch ein bißchen erschreckend - der neue Server ist ein 64-Bit-System. Auch die PHP-Installation ist die 64-Bit-Variante.&lt;br /&gt;
&lt;br /&gt;
Der Speicherverbrauch der problematischen Homepage hat sich eindeutig meßbar im Schnitt verdoppelt. Eigentlich muß das nicht unbedingt der Fall sein, bloß weil der Prozessor von 32 Bit auf 64 Bit &quot;hochgeschnellt&quot; ist, aber scheinbar geht die 64-Bit-Version von PHP etwas verschwenderisch mit dem Speicher um.&lt;br /&gt;
&lt;br /&gt;
Ich kann mir gut vorstellen, daß intern sämtliche Ganzzahlen auf 64-Bit-Integer festgelegt sind (anstatt dies je nach Bedarf niedriger anzusiedeln), und dazu kommen dann noch sämtliche Pointer, die zur Adressierung des größeren Adressraums wahrscheinlich standardmäßig ebenso 64-Bit sind. Allein diese Werte verdoppeln daher schon einmal ihren Speicherbedarf.&lt;br /&gt;
&lt;br /&gt;
Da die betreffende Homepage eine recht komplizierte, objektorientierte Architektur hat, ist wohl der Ärger im Rahmen dieser Migration vorprogrammiert gewesen - nur geahnt hat es keiner.&lt;br /&gt;
&lt;br /&gt;
Ich hab jedenfalls mal wieder was dazugelernt - insbesondere daß es wohl erforderlich ist, auf einem modernen 64-Bit-System auch tiefer in die Tasche für mehr RAM zu greifen. Ebenso ist es unvermeidlich, spendabler mit dem PHP-Memory-Limit umzugehen. Wenn das alles nicht hilft, muß man wohl leider wieder auf ein 32-Bit-System zurückgreifen. 
    </content:encoded>

    <pubDate>Sun, 20 Sep 2009 15:21:48 +0200</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/59-guid.html</guid>
    <category>64 bit</category>
<category>debugging</category>
<category>php</category>
<category>problem</category>
<category>server</category>

</item>
<item>
    <title>Eine einfache ActiveRecord-Klasse für PHP</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/31-Eine-einfache-ActiveRecord-Klasse-fuer-PHP.html</link>
            <category>PHP</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/31-Eine-einfache-ActiveRecord-Klasse-fuer-PHP.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=31</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=31</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    Active Record ist ein recht simples Design Pattern, welches grob gesagt die Einträge einer Datenbanktabelle Objekten zuordnet, die sich dann wiederum beliebig in einem Programm manipulieren lassen.&lt;br /&gt;
&lt;br /&gt;
Angenommen es existiert in einem Programm die Klasse &quot;Car&quot; mit den Eigenschaften &quot;name&quot;, &quot;color&quot; und &quot;hp&quot; (horse power). Ebenso angenommen, es existiert eine Datenbanktabelle, die über die entsprechenden Spalten &quot;name&quot;, &quot;color&quot;,  und &quot;hp&quot; verfügt. Das ActiveRecord-Pattern verknüpft die Klasse mit der Tabelle und entbindet den Programmierer von seinen Pflichten, entsprechende SQL-Abfragen zu schreiben, um Daten aus der Datenbank auszulesen oder darin abzuspeichern.&lt;br /&gt;
&lt;br /&gt;
Ein kleines Anwendungsbeispiel:&lt;br /&gt;
&lt;div class=&quot;php&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Neues Auto-Objekt anlegen und Eigenschaften festlegen:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$car&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; Car;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$car&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;name&#039;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;BMW&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$car&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;color&#039;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;blue&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$car&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;hp&#039;&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;180&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// In Datenbank abspeichern:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$car&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;save&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Und jetzt das Auto wieder aus der Datenbank laden:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$result&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$car&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;findAllBySql&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;name=?&#039;&lt;/span&gt;, &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;BMW&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/count&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;count&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$result&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;$mySavedCar&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$result&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;Name: &#039;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$mySavedCar&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;name&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;&amp;lt;br /&amp;gt;&#039;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;Color: &#039;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$mySavedCar&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;color&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;&amp;lt;br /&amp;gt;&#039;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;HP: &#039;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$mySavedCar&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;hp&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;&amp;lt;br /&amp;gt;&#039;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* Ausgabe:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; ------------&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Name: BMW&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Color: blue&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; HP: 180&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;
Im Folgenden stelle ich eine recht kurzgehaltene, sehr vereinfachte Variante des Patterns als abstrakte Basisklasse für PHP (Version 5 und höher) vor. &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/31-Eine-einfache-ActiveRecord-Klasse-fuer-PHP.html#extended&quot;&gt;&quot;Eine einfache ActiveRecord-Klasse für PHP&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 15 Jan 2009 00:26:18 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/31-guid.html</guid>
    <category>datenbank</category>
<category>design-pattern</category>
<category>php</category>
<category>programmierung</category>
<category>sql</category>

</item>
<item>
    <title>Es ist ja &quot;nur ein Test&quot;...</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/25-Es-ist-ja-nur-ein-Test....html</link>
            <category>Internet</category>
            <category>PHP</category>
            <category>Webentwicklung</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/25-Es-ist-ja-nur-ein-Test....html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=25</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=25</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    Derzeit fallen mir gehäuft und regelmäßig &quot;Einbruchsversuche&quot; auf einer, von mir erstellten, Homepage auf, da diese Versuche Ausnahmefehler verursachen, welche mich automatisch mit allen Details über E-Mail informieren.&lt;br /&gt;
&lt;br /&gt;
Diese Attacken kommen jeweils von unterschiedlichen Servern, verfolgen aber immer dasselbe Muster:&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;Eine URL wird als GET-Parameter an &quot;meine&quot; Homepage übergeben&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&quot;Meine&quot; Homepage mag das nicht schlucken, bricht ab und schickt mir ne Email&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
Ich hab mir ein paar dieser &quot;injizierten URLs&quot; angeschaut und es sind immer Textdokumente, welche PHP-Code repräsentieren:&lt;br /&gt;
&lt;div class=&quot;php&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;http://www.php.net/md5&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;md5&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;just_a_test&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;?&amp;gt; &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;
Es ist offensichtlich ein PHP-basiertes Internetvirus, welches die Weiten des Internets durchsucht, um &quot;kleine Dummheiten&quot; von PHP-Programmierern zu finden.&lt;br /&gt;
&lt;br /&gt;
Das Virus spekuliert offenbar auf folgenden Sachverhalt:&lt;br /&gt;
&lt;i&gt;Führt das PHP-Skript auf dem anzugreifenden Server Benutzereingaben aus?&lt;/i&gt; &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/25-Es-ist-ja-nur-ein-Test....html#extended&quot;&gt;&quot;Es ist ja &amp;quot;nur ein Test&amp;quot;...&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 20 Mar 2008 16:05:12 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/25-guid.html</guid>
    <category>bugs</category>
<category>internet</category>
<category>php</category>
<category>sicherheit</category>
<category>spam</category>
<category>virus</category>

</item>
<item>
    <title>Wenn bei PHP die Müllabfuhr streikt</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/21-Wenn-bei-PHP-die-Muellabfuhr-streikt.html</link>
            <category>PHP</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/21-Wenn-bei-PHP-die-Muellabfuhr-streikt.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=21</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=21</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    PHP 5 weist nicht nur aufgeräumte Sprachergänzungen in puncto Objektorientierung, sondern auch erhebliche Probleme im Speicher-Management auf.&lt;br /&gt;
&lt;br /&gt;
Der sogenannte &quot;garbage collector&quot;, welcher sich für das Aufräumen unbenötigter Daten, Ressourcen und Objekte verantwortlich zeichnet, versagt unter gewissen Umständen seinen Dienst.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel erläutert nicht nur dieses Problem anhand eines Beispiels, sondern stellt auch eine Lösung hierzu vor. &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/21-Wenn-bei-PHP-die-Muellabfuhr-streikt.html#extended&quot;&gt;&quot;Wenn bei PHP die Müllabfuhr streikt&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 12 Jan 2008 19:16:47 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/21-guid.html</guid>
    <category>bugs</category>
<category>garbage-collector</category>
<category>gc</category>
<category>objektorientierung</category>
<category>oop</category>
<category>php</category>

</item>
<item>
    <title>PHP-Sicherheit</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/9-PHP-Sicherheit.html</link>
            <category>PHP</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/9-PHP-Sicherheit.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=9</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=9</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    &lt;!-- s9ymdb:32 --&gt;&lt;img width=&#039;110&#039; height=&#039;108&#039; style=&quot;float: right; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://people.avona.com/~thomas.werner/uploads/php_security.serendipityThumb.jpg&quot; alt=&quot;&quot; /&gt;PHP und Sicherheit ist ein wichtiges Thema - insbesondere durch den &lt;a href=&quot;http://www.nexen.net/chiffres_cles/phpversion/php_statistics_for_december_2006.php&quot; &gt;hohen Verbreitungsgrad&lt;/a&gt; des &lt;a href=&quot;http://de.wikipedia.org/wiki/PHP&quot;  title=&quot;&quot;Rekursives Backronym&quot;.... oha!&quot;&gt;&quot;PHP: Hypertext Preprocessor&quot;&lt;/a&gt;&#039;s. Es ist eine nette, offenbar einfach zu erlernende Skriptsprache, welche den Webentwickler recht flott Ergebnisse erzielen läßt. Bei aller Einfachheit, bzw. bei allem Komfort, liegt es am Entwickler, gewisse Sicherheitsvorkehrungen an seinen Skripten vorzunehmen, um nicht unerfreuliche Bekanntschaft mit Hackern und &quot;&lt;a href=&quot;http://de.wikipedia.org/wiki/Skriptkiddie&quot; &gt;Skriptkiddies&lt;/a&gt;&quot; zu machen. &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/9-PHP-Sicherheit.html#extended&quot;&gt;&quot;PHP-Sicherheit&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 11 Feb 2007 15:00:00 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/9-guid.html</guid>
    <category>Internet</category>
<category>php</category>
<category>Sicherheit</category>

</item>

</channel>
</rss>