<?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"
	>

<channel>
	<title>pr0g.net</title>
	<atom:link href="http://www.pr0g.net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.pr0g.net</link>
	<description>WebWork vs Daddeln</description>
	<pubDate>Fri, 04 Jul 2008 19:11:16 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>HL2-EP2: Alle Errungenschaften erreich</title>
		<link>http://www.pr0g.net/daddeln/hl2-ep2-alle-errungenschaften-erreich</link>
		<comments>http://www.pr0g.net/daddeln/hl2-ep2-alle-errungenschaften-erreich#comments</comments>
		<pubDate>Wed, 12 Mar 2008 22:21:54 +0000</pubDate>
		<dc:creator>Pr0g</dc:creator>
		
		<category><![CDATA[Daddeln]]></category>

		<category><![CDATA[Apollo]]></category>

		<category><![CDATA[Episode 2]]></category>

		<category><![CDATA[Errungenschaften]]></category>

		<category><![CDATA[Half Life 2]]></category>

		<category><![CDATA[Zocken]]></category>

		<category><![CDATA[Zwerg]]></category>

		<guid isPermaLink="false">http://www.pr0g.net/daddeln/hl2-ep2-alle-errungenschaften-erreich</guid>
		<description><![CDATA[Nachdem ich vor einer Weile endlich alle 333 Larven gefunden hatte fehlte mir nur noch eine einzige Errungenschaft und zwar:

Ich glaube das ist mit eine der &#8220;nervigsten&#8221; Errungenschaften im Spiel, da der Zwerg (welcher vom Anfang des Spiels fast bis zum Ende mitgenommen werden muss) die schlechte Angewohnheit hat des öfteren mal aus dem Auto [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich vor einer Weile endlich alle 333 Larven gefunden hatte fehlte mir nur noch eine einzige Errungenschaft und zwar:</p>
<p style="text-align: center"><img src="http://www.pr0g.net/wp-content/uploads/2008/03/hl2_apollo.jpg" alt="HL2-EP2: Apollo Errungenschaft" /></p>
<p><span id="more-28"></span>Ich glaube das ist mit eine der &#8220;nervigsten&#8221; Errungenschaften im Spiel, da der Zwerg (welcher vom Anfang des Spiels fast bis zum Ende mitgenommen werden muss) die schlechte Angewohnheit hat des öfteren mal aus dem Auto zu fallen^^</p>
<p>Irgendwann war es dann aber doch geschafft (Klicken für Vergrößerung):</p>
<p align="center"> <a href="http://www.pr0g.net/wp-content/uploads/2008/03/hl2_zwerg.jpg" target="_blank"><img src="http://www.pr0g.net/wp-content/uploads/2008/03/hl2_zwerg_klein.jpg" alt="HL2-EP2: Zwerg Thumb" /></a></p>
<p align="left">Damit ist <strong>Episode 2</strong> nun auch erstmal abgeschlossen <img src='http://www.pr0g.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p style="text-align: center"><img src="http://www.pr0g.net/wp-content/uploads/2008/03/hl2_archivement.jpg" alt="HL2-EP2: Alle Errungenschaften" /></p>
<p>Hier noch ein Link zu meiner <a href="http://steamcommunity.com/id/slazer2k5/stats/HL2:EP2" target="_blank">Statistikseite</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pr0g.net/daddeln/hl2-ep2-alle-errungenschaften-erreich/feed</wfw:commentRss>
		</item>
		<item>
		<title>PHP Artikel &#8220;Dateiuploads mit PHP&#8221;</title>
		<link>http://www.pr0g.net/allgemein/php-artikel-dateiuploads-mit-php</link>
		<comments>http://www.pr0g.net/allgemein/php-artikel-dateiuploads-mit-php#comments</comments>
		<pubDate>Mon, 25 Feb 2008 18:10:58 +0000</pubDate>
		<dc:creator>Pr0g</dc:creator>
		
		<category><![CDATA[Allgemein]]></category>

		<category><![CDATA[Artikel]]></category>

		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.pr0g.net/allgemein/php-artikel-dateiuploads-mit-php</guid>
		<description><![CDATA[Habe mich eben mal ran gesetzt und den zweiten PHP Artikel mit dem Thema &#8220;Dateiuploads mit PHP&#8221; von der alten Seite hier eingepflegt.
Die Aufteilung beträgt diesmal acht Seiten, viel Spaß bei lesen 
]]></description>
			<content:encoded><![CDATA[<p>Habe mich eben mal ran gesetzt und den zweiten PHP Artikel mit dem Thema &#8220;<a href="http://www.pr0g.net/php/artikel/dateiuploads-mit-php">Dateiuploads mit PHP</a>&#8221; von der alten Seite hier eingepflegt.</p>
<p>Die Aufteilung beträgt diesmal acht Seiten, viel Spaß bei lesen <img src='http://www.pr0g.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pr0g.net/allgemein/php-artikel-dateiuploads-mit-php/feed</wfw:commentRss>
		</item>
		<item>
		<title>Erster PHP Artikel übernommen</title>
		<link>http://www.pr0g.net/allgemein/erster-php-artikel-ubernommen</link>
		<comments>http://www.pr0g.net/allgemein/erster-php-artikel-ubernommen#comments</comments>
		<pubDate>Sun, 24 Feb 2008 21:30:30 +0000</pubDate>
		<dc:creator>Pr0g</dc:creator>
		
		<category><![CDATA[Allgemein]]></category>

		<category><![CDATA[Artikel]]></category>

		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.pr0g.net/allgemein/erster-php-artikel-ubernommen</guid>
		<description><![CDATA[Nachdem ich heute Mittag die Codeschnippsel der alten Seite hier eingepflegt hatte stand als nächstes der erste Artikel auf meiner kleinen ToDo-Liste.
Es hat ne Weile gedauert bis alle Anpassungen gemacht wurden, doch nun ist  &#8220;Captcha Abfrage für Formulare&#8221; vollständig übernommen. Der Artikel wurde auf 11 Seiten aufgeteilt um ihn übersichtlicher zu machen. Ein paar [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich heute Mittag die Codeschnippsel der alten Seite hier eingepflegt hatte stand als nächstes der erste Artikel auf meiner kleinen <em>ToDo-Liste.</em></p>
<p>Es hat ne Weile gedauert bis alle Anpassungen gemacht wurden, doch nun ist  &#8220;<a href="http://www.pr0g.net/php/artikel/captcha-abfrage-fur-formulare">Captcha Abfrage für Formulare</a>&#8221; vollständig übernommen. Der Artikel wurde auf 11 Seiten aufgeteilt um ihn übersichtlicher zu machen. Ein paar nette Links unterhalb des Artikels helfen bei der Navigation durch die einzelnen Seiten.</p>
<p><span id="more-25"></span>Um eine gewisse Übersicht zu bewahren gibt es nun im Menü die spezielle Seite &#8220;<a href="http://www.pr0g.net/php">PHP</a>&#8220;, auf welcher alle Artikel und Codeschnippsel nochmal aufgelistet wurden.</p>
<p>Nicht wundern, dass die Beiträge ein älteres Datum als dieser Blog aufweisen, ich habe jeweils das ursprüngliche Veröffentlichungsdatum übernommen.</p>
<p>In den nächsten Tagen werde ich auch noch die anderen Artikel hier einfügen, mal schauen wann ich Zeit und Lust dafür finde.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pr0g.net/allgemein/erster-php-artikel-ubernommen/feed</wfw:commentRss>
		</item>
		<item>
		<title>Alle Errungenschaften in TF2 erreicht</title>
		<link>http://www.pr0g.net/daddeln/alle-errungenschaften-in-tf2-erreicht</link>
		<comments>http://www.pr0g.net/daddeln/alle-errungenschaften-in-tf2-erreicht#comments</comments>
		<pubDate>Sat, 23 Feb 2008 22:11:44 +0000</pubDate>
		<dc:creator>Pr0g</dc:creator>
		
		<category><![CDATA[Daddeln]]></category>

		<category><![CDATA[Errungenschaften]]></category>

		<category><![CDATA[Team Fortess 2]]></category>

		<category><![CDATA[Zocken]]></category>

		<guid isPermaLink="false">http://www.pr0g.net/allgemein/9</guid>
		<description><![CDATA[Das Ziel alle Errungenschaften in Team Fortress 2 zu erreichen hatte ich schon länger, doch für die &#8220;Kumpels&#8221; Errungenschaft muss man mit sieben Leuten aus der eigenen Freundesliste auf einem Server spielen und so groß war meine Liste (mit TF2 Spielern) bisher nicht gewesen.

Doch vor ein paar Tagen war es dann so weit. Alle Freunde [...]]]></description>
			<content:encoded><![CDATA[<p>Das Ziel alle Errungenschaften in <em>Team Fortress 2</em> zu erreichen hatte ich schon länger, doch für die &#8220;Kumpels&#8221; Errungenschaft muss man mit sieben Leuten aus der eigenen Freundesliste auf einem Server spielen und so groß war meine Liste (mit TF2 Spielern) bisher nicht gewesen.</p>
<p style="text-align: center"><img src="http://www.pr0g.net/wp-content/uploads/2008/02/tf2_kumpels.jpg" alt="Kumpels-Errungenschafft" /></p>
<p><span id="more-9"></span>Doch vor ein paar Tagen war es dann so weit. Alle Freunde wurden auf einem Server zusammengetrommelt und mit der Hilfe von ein paar auf dem Server spielenden Leuten haben wir es dann geschafft, dass jeder auch diese Errungenschaft bekam:</p>
<p style="text-align: center"><img src="http://www.pr0g.net/wp-content/uploads/2008/02/tf2_archivement.jpg" alt="Alle Errungenschafften erreicht" /></p>
<p>Nun heißt es abwarten auf den nächsten großen Patch, welcher eigentlich noch diesen Monat erscheinen sollte und neben der neuen Map GoldRush auch noch über 30 neue Errungenschaften für den Medic bringt <img src='http://www.pr0g.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p align="center"><a href="http://steamcommunity.com/id/slazer2k5/stats/TF2" target="_blank">Team Fortress 2 Statistik</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pr0g.net/daddeln/alle-errungenschaften-in-tf2-erreicht/feed</wfw:commentRss>
		</item>
		<item>
		<title>Neustart</title>
		<link>http://www.pr0g.net/allgemein/neustart</link>
		<comments>http://www.pr0g.net/allgemein/neustart#comments</comments>
		<pubDate>Sat, 23 Feb 2008 19:49:44 +0000</pubDate>
		<dc:creator>Pr0g</dc:creator>
		
		<category><![CDATA[Allgemein]]></category>

		<category><![CDATA[Neustart]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[WebCraft]]></category>

		<category><![CDATA[Zocken]]></category>

		<guid isPermaLink="false">http://blog.pr0g.net/allgemein/neustart</guid>
		<description><![CDATA[Hallo,
nachdem pr0g.net und die damit verbundenen Projekte nun doch schon seit längere Zeit mehr oder weniger inaktiv sind versuche ich es nun mit einem kleinen Neustart. Als Grundlage soll diesmal das Wordpress Blog System dienen.
Die alte Seite gefiel mit persönlich schon länger nicht mehr, doch für eine komplette Neugestaltung  fehlt mir momentan die Zeit [...]]]></description>
			<content:encoded><![CDATA[<p>Hallo,</p>
<p>nachdem pr0g.net und die damit verbundenen Projekte nun doch schon seit längere Zeit mehr oder weniger inaktiv sind versuche ich es nun mit einem kleinen Neustart. Als Grundlage soll diesmal das Wordpress Blog System dienen.</p>
<p><span id="more-3"></span>Die alte Seite gefiel mit persönlich schon länger nicht mehr, doch für eine komplette Neugestaltung  fehlt mir momentan die Zeit und der Ansporn.</p>
<p>Nach und nach werde ich hier die PHP Projekte und Artikel einpflegen, WebCraft behält seine eigene Seite welche zum passenden Zeitpunkt noch erneuert wird. Derzeit sehe ich dafür jedoch keinen Grund, da die Fertigstellung der neuen Version noch ein kleines Stück in der Ferne liegt.</p>
<p>Dieser Blog soll sich jedoch nicht nur ausschließlich auf PHP und Co. beziehen, auch Artikel zu Ereignissen während meiner &#8220;Zockerzeit&#8221; werde ich hier festhalten.</p>
<p>Viel Spaß beim lesen wünscht euch Andreas <img src='http://www.pr0g.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pr0g.net/allgemein/neustart/feed</wfw:commentRss>
		</item>
		<item>
		<title>Dateiuploads mit PHP</title>
		<link>http://www.pr0g.net/php/artikel/dateiuploads-mit-php</link>
		<comments>http://www.pr0g.net/php/artikel/dateiuploads-mit-php#comments</comments>
		<pubDate>Tue, 01 May 2007 14:23:46 +0000</pubDate>
		<dc:creator>Pr0g</dc:creator>
		
		<category><![CDATA[Artikel]]></category>

		<category><![CDATA[Dateien]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Upload]]></category>

		<guid isPermaLink="false">http://www.pr0g.net/php/artikel/dateiuploads-mit-php</guid>
		<description><![CDATA[Dieser Artikel erklärt wie man mit Hilfe eines Formulars und PHP eine Datei auf einen Server hochläd und dort speichert.

Vorbereitungen
Zuerst wird eine neue PHP Datei namens &#8220;upload.php&#8221; in einem beliebigen Verzeichnis angelegt. In diese Datei wird später der HTML Code für das Uploadformular und der PHP Code zum Verarbeiten der hochgeladenen Datei gespeichert. Nun muss [...]]]></description>
			<content:encoded><![CDATA[<p>Dieser Artikel erklärt wie man mit Hilfe eines Formulars und PHP eine Datei auf einen Server hochläd und dort speichert.<br />
<span id="more-26"></span><u></u></p>
<p><u><strong>Vorbereitungen</strong></u></p>
<p>Zuerst wird eine neue PHP Datei namens &#8220;upload.php&#8221; in einem beliebigen Verzeichnis angelegt. In diese Datei wird später der HTML Code für das Uploadformular und der PHP Code zum Verarbeiten der hochgeladenen Datei gespeichert. Nun muss noch ein Ordner angelegt werden in dem die Dateien gespeichert werden, dieser könnte den Namen &#8220;dateien&#8221; tragen.</p>
<p><u><strong>Das Uploadformular</strong></u></p>
<p>Als erstes wird ein Formular benötigt in dem der Benutzer eine Datei für den Upload auswählen und dann den Upload starten kann. Das Formular beginnt wie folgt:</p>
<div class="code_div"><code><span style="color: #000000">
&lt;form&nbsp;action="upload.php"&nbsp;method="post"&nbsp;enctype="multipart/form-data"&gt;</span>
</code></div>
<p>Über das Attribut <strong>action </strong>des <strong>form</strong>-Tags wird angegeben an welche Datei die Daten des Formulars gesendet werden sollen. Da wir alle Daten in der selben Datei verarbeiten, werden diese an die &#8220;upload.php&#8221; gesendet.</p>
<p>Mit <strong>method </strong>wird die Art der Übertragung angegeben. Da eine Datei gesendet werden soll muss hier als Typ <strong>post </strong>angegeben werden, damit die Daten direkt in einer POST-Anfrage an den Webserver gesendet werden. Als zweiter Typ könnte dort <strong>get </strong>angegeben werden, wodurch die Daten an die URL angehangen werden. Dies ist jedoch nur bei Texten möglich und nicht mit Dateien.</p>
<p>Anders als in den meisten Fällen wo nur Texte durch ein Formular verschickt werden ist es bei Dateien nötig noch ein <strong>enctype </strong>Attribut mit dem Wert<strong> multipart/form-data</strong> anzugeben. Dies veranlasst den Browser dazu die Datei als Daten zu senden. Würde man das Attribut weglassen, so überträgt der Browser lediglich den Dateinamen, nicht jedoch die eigentlichen Daten.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pr0g.net/php/artikel/dateiuploads-mit-php/feed</wfw:commentRss>
		</item>
		<item>
		<title>Anzahl der Dateien in einem Ordner ermitteln</title>
		<link>http://www.pr0g.net/php/codes/anzahl-der-dateien-in-einem-ordner-ermitteln</link>
		<comments>http://www.pr0g.net/php/codes/anzahl-der-dateien-in-einem-ordner-ermitteln#comments</comments>
		<pubDate>Sun, 22 Apr 2007 18:05:36 +0000</pubDate>
		<dc:creator>Pr0g</dc:creator>
		
		<category><![CDATA[Codes]]></category>

		<category><![CDATA[Dateien]]></category>

		<category><![CDATA[Ordner]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Zählen]]></category>

		<guid isPermaLink="false">http://www.pr0g.net/php-codes/anzahl-der-dateien-in-einem-ordner-ermitteln</guid>
		<description><![CDATA[Diese Funktion ermittelt die Anzahl der Dateien in einem angegebenen Ordner. Optional kann die Zählung auf eine oder mehrere (durch Komma getrennte) Dateiendungen eingeschränkt werden.
Konnte der angegebenen Ordner nicht geöffnet werden, wird der Wert false zurückgegeben welcher zur Fehlerbehandlung genutzt werden kann. Eine typensichere Abfrage per === muss gemacht werden, damit die mögliche Anzahl von [...]]]></description>
			<content:encoded><![CDATA[<p>Diese Funktion ermittelt die Anzahl der Dateien in einem angegebenen Ordner. Optional kann die Zählung auf eine oder mehrere (durch Komma getrennte) Dateiendungen eingeschränkt werden.</p>
<p><span id="more-17"></span>Konnte der angegebenen Ordner nicht geöffnet werden, wird der Wert <strong>false</strong><em> </em>zurückgegeben welcher zur Fehlerbehandlung genutzt werden kann. Eine typensichere Abfrage per<strong> ===</strong> muss gemacht werden, damit die mögliche Anzahl von <strong>0</strong> Dateien nicht als Wert <strong>false</strong><em> </em>erkannt wird.</p>
<div class="code_div"><code><span style="color: #000000">
&nbsp;<span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF9900">//<br />//&nbsp;Anzahl&nbsp;der&nbsp;Dateien&nbsp;in&nbsp;einem&nbsp;Ordner&nbsp;ermitteln<br />//<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">CountFilesInDir</span><span style="color: #007700">(</span><span style="color: #0000BB">$dir&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$ext&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">)&nbsp;{<br /><br />&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Wurde&nbsp;kein&nbsp;Slash&nbsp;angegeben,&nbsp;dann&nbsp;nachtragen<br />&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(empty(</span><span style="color: #0000BB">$dir</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$dir&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">'./'</span><span style="color: #007700">;<br />&nbsp;&nbsp;}&nbsp;elseif&nbsp;(</span><span style="color: #0000BB">$dir</span><span style="color: #007700">[</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$dir</span><span style="color: #007700">)&nbsp;-&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">]&nbsp;!=&nbsp;</span><span style="color: #DD0000">'/'</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$dir&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">'/'</span><span style="color: #007700">;<br />&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Dateierweiterungen&nbsp;in&nbsp;ein&nbsp;Array&nbsp;packen<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$ext&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">explode</span><span style="color: #007700">(</span><span style="color: #DD0000">','</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$ext</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Ordner&nbsp;öffnen<br />&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">$dh&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">opendir</span><span style="color: #007700">(</span><span style="color: #0000BB">$dir</span><span style="color: #007700">))&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Alle&nbsp;Dateien&nbsp;durchlaufen<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$count&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;((</span><span style="color: #0000BB">$file&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">readdir</span><span style="color: #007700">(</span><span style="color: #0000BB">$dh</span><span style="color: #007700">))&nbsp;!==&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">)&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Prüfen&nbsp;ob&nbsp;es&nbsp;sich&nbsp;um&nbsp;eine&nbsp;Datei&nbsp;handelt&nbsp;und&nbsp;die&nbsp;Endung&nbsp;passt<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">is_file</span><span style="color: #007700">(</span><span style="color: #0000BB">$dir&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$file</span><span style="color: #007700">)&nbsp;&amp;&amp;&nbsp;(</span><span style="color: #0000BB">in_array</span><span style="color: #007700">(</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">strrchr</span><span style="color: #007700">(</span><span style="color: #0000BB">$file</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'.'</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">$ext</span><span style="color: #007700">)&nbsp;||&nbsp;empty(</span><span style="color: #0000BB">$ext</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">])))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$count</span><span style="color: #007700">++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Ordner&nbsp;schließen<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">closedir</span><span style="color: #007700">(</span><span style="color: #0000BB">$dh</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Dateianzahl&nbsp;zurückgeben<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">return&nbsp;</span><span style="color: #0000BB">$count</span><span style="color: #007700">;<br />&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />&nbsp;&nbsp;}<br />}<br /><br /></span><span style="color: #FF9900">//<br />//&nbsp;Beispielaufruf&nbsp;1:&nbsp;Selber&nbsp;Ordner&nbsp;wie&nbsp;die&nbsp;PHP&nbsp;Datei,&nbsp;alle&nbsp;Dateiendungen<br />//<br /></span><span style="color: #0000BB">$file_count&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">CountFilesInDir</span><span style="color: #007700">();<br />echo&nbsp;(</span><span style="color: #0000BB">$file_count&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">?&nbsp;</span><span style="color: #DD0000">'Fehler&nbsp;beim&nbsp;Öffnen&nbsp;des&nbsp;Ordners!'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">'Der&nbsp;Ordner&nbsp;enthält&nbsp;'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$file_count&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'&nbsp;Datei'&nbsp;</span><span style="color: #007700">.&nbsp;(</span><span style="color: #0000BB">$file_count&nbsp;</span><span style="color: #007700">&lt;&gt;&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">?&nbsp;</span><span style="color: #DD0000">'en'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">)&nbsp;.&nbsp;</span><span style="color: #DD0000">'!'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF9900">//<br />//&nbsp;Beispielaufruf&nbsp;2:&nbsp;Selber&nbsp;Ordner&nbsp;wie&nbsp;die&nbsp;PHP&nbsp;Datei,&nbsp;eine&nbsp;Endung&nbsp;erlauben<br />//<br /></span><span style="color: #0000BB">$file_count&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">CountFilesInDir</span><span style="color: #007700">(</span><span style="color: #DD0000">''</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'php'</span><span style="color: #007700">);<br />echo&nbsp;(</span><span style="color: #0000BB">$file_count&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">?&nbsp;</span><span style="color: #DD0000">'Fehler&nbsp;beim&nbsp;Öffnen&nbsp;des&nbsp;Ordners!'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">'Der&nbsp;Ordner&nbsp;enthält&nbsp;'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$file_count&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'&nbsp;Datei'&nbsp;</span><span style="color: #007700">.&nbsp;(</span><span style="color: #0000BB">$file_count&nbsp;</span><span style="color: #007700">&lt;&gt;&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">?&nbsp;</span><span style="color: #DD0000">'en'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">)&nbsp;.&nbsp;</span><span style="color: #DD0000">'!'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF9900">//<br />//&nbsp;Beispielaufruf&nbsp;3:&nbsp;Anderer&nbsp;Ordner&nbsp;wie&nbsp;die&nbsp;PHP&nbsp;Datei,&nbsp;mehrere&nbsp;Endungen&nbsp;erlauben<br />//<br /></span><span style="color: #0000BB">$file_count&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">CountFilesInDir</span><span style="color: #007700">(</span><span style="color: #DD0000">'test/unterordner'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'php,css,txt'</span><span style="color: #007700">);<br />echo&nbsp;(</span><span style="color: #0000BB">$file_count&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">?&nbsp;</span><span style="color: #DD0000">'Fehler&nbsp;beim&nbsp;Öffnen&nbsp;des&nbsp;Ordners!'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">'Der&nbsp;Ordner&nbsp;enthält&nbsp;'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$file_count&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'&nbsp;Datei'&nbsp;</span><span style="color: #007700">.&nbsp;(</span><span style="color: #0000BB">$file_count&nbsp;</span><span style="color: #007700">&lt;&gt;&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">?&nbsp;</span><span style="color: #DD0000">'en'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">)&nbsp;.&nbsp;</span><span style="color: #DD0000">'!'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
]]></content:encoded>
			<wfw:commentRss>http://www.pr0g.net/php/codes/anzahl-der-dateien-in-einem-ordner-ermitteln/feed</wfw:commentRss>
		</item>
		<item>
		<title>Captcha Abfrage für Formulare</title>
		<link>http://www.pr0g.net/php/artikel/captcha-abfrage-fur-formulare</link>
		<comments>http://www.pr0g.net/php/artikel/captcha-abfrage-fur-formulare#comments</comments>
		<pubDate>Sat, 24 Mar 2007 19:07:28 +0000</pubDate>
		<dc:creator>Pr0g</dc:creator>
		
		<category><![CDATA[Artikel]]></category>

		<category><![CDATA[Captcha]]></category>

		<category><![CDATA[GDLib]]></category>

		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Sicherheit]]></category>

		<guid isPermaLink="false">http://www.pr0g.net/php/artikel/captcha-abfrage-fur-formulare</guid>
		<description><![CDATA[Dieser Artikel erklärt, wie man mit Hilfe der GDLib und einer MySQL Datenbank eine Captcha Sicherheitsabfrage in PHP realisiert.
Was sind Captchas und wozu dienen sie?
Als Captchas bezeichnet man die kleinen Bilder, welche des öfteren im Internet unter Formularen zu finden sind und einen Code in Form einer Zahl oder Buchstaben enthalten. Diese sollen dann abgelesen [...]]]></description>
			<content:encoded><![CDATA[<p>Dieser Artikel erklärt, wie man mit Hilfe der <a href="http://de.php.net/image" target="_blank">GDLib</a> und einer <a href="http://de.php.net/mysql" target="_blank">MySQL </a>Datenbank eine <a href="http://de.wikipedia.org/wiki/Captcha" target="_blank">Captcha </a>Sicherheitsabfrage in PHP realisiert.</p>
<p><span id="more-20"></span><u><strong>Was sind Captchas und wozu dienen sie?</strong></u></p>
<p>Als Captchas bezeichnet man die kleinen Bilder, welche des öfteren im Internet unter Formularen zu finden sind und einen Code in Form einer Zahl oder Buchstaben enthalten. Diese sollen dann abgelesen und in ein passendes Eingabefeld geschrieben werden.</p>
<p>Ziel dabei ist es Spam-Roboter daran zu hindern Formulare automatisch abzuschicken, da sie das Bild nicht lesen können. Wie immer gibt es auch hier Ausnahmen. Die Captchas einiger großen Seiten wurden schon &#8220;geknackt&#8221;, können also automatisiert ausgelesen werden. Dahinter steckt jedoch eine Menge Arbeit, welche sich nur für Angriffe auf wirklich große Seiten lohnt und auch nur mit Captchas möglich ist, die recht einfach aufgebaut sind. Ein Projekt welches sich mit dem Auslesen von Captchas befasst ist <a href="http://sam.zoy.org/pwntcha/" target="_blank">pwntcha </a>(englisch).</p>
<p>Nun aber wieder zurück zum eigentlichen Thema des Artikels, unser eigenes Captcha. Nachfolgend ein Beispiel, welches mit dem Script aus diesem Artikel erzeugt wurde. So könnte das Captcha nachher aussehen:</p>
<p style="text-align: center"><img src="http://www.pr0g.net/wp-content/uploads/2008/02/sample.png" alt="Captcha Beispiel" /></p>
<p><u><strong>Vorbereitungen</strong></u></p>
<p>Bevor wir mit dem eigentlichen Script beginnen sind noch ein paar Vorbereitungen zu erledigen. Da das Script mehrere Dateien benötigt wird zuerst ein neuer Ordner angelegt, ich nenne ihn mal &#8220;mycaptcha&#8221;.</p>
<p>In diesem Ordner kommen nun drei neue PHP Dateien mit den Namen &#8220;captcha.php&#8221;, &#8220;dbconnect.php&#8221; und &#8220;formular.php&#8221;. In die erste Datei wird das Script geschrieben, in die zweite die Verbindungsdaten zur MySQL Datenbank und die dritte ein Testcode.</p>
<p>Nun werden noch zwei neue Ordner mit den Namen &#8220;bg&#8221; und &#8220;ttf&#8221; erstellt. Um das Captcha etwas abwechslungsreiche zu gestalten werden verschiedene Bilder für den Hintergrund genutzt. Ich habe folgende drei genommen:</p>
<p align="center"><a href="http://www.pr0g.net/wp-content/uploads/2008/02/bg1.png" title="Captcha BG 1"><img src="http://www.pr0g.net/wp-content/uploads/2008/02/bg1.png" alt="Captcha BG 1" /></a> <a href="http://www.pr0g.net/wp-content/uploads/2008/02/bg2.png" title="Captcha BG 2"><img src="http://www.pr0g.net/wp-content/uploads/2008/02/bg2.png" alt="Captcha BG 2" /></a> <a href="http://www.pr0g.net/wp-content/uploads/2008/02/bg3.png" title="Captcha BG 3"><img src="http://www.pr0g.net/wp-content/uploads/2008/02/bg3.png" alt="Captcha BG 3" /></a></p>
<p>Diese werden nun (der Reihe nach von links nach rechts) unter den Namen &#8220;bg1.png&#8221; bis &#8220;bg3.png&#8221; in den Ordner &#8220;bg&#8221; gespeichert. Es können auch eigenen Bilder genutzt und weitere hinzugefügt werden. Sie sollten nur alle die selben Maße haben und von eins an durchnummeriert werden.</p>
<p>Nun fehlt noch eine Schriftdatei vom Typ <a href="http://de.wikipedia.org/wiki/Ttf" target="_blank">TrueType</a>. Ich nehme zum Test einfach mal die Datei &#8220;arial.ttf&#8221; aus dem Ordner &#8220;Windows/fonts&#8221; und kopiere diese in den eben angelegten &#8220;ttf&#8221; Ordner.</p>
<p>Zuletzt wird noch kurz die Datei &#8220;formular.php&#8221; geöffnet und folgender Code hineingeschrieben:</p>
<div class="code_div"><code><span style="color: #000000">
&lt;img&nbsp;src="captcha.php"&nbsp;alt=""&nbsp;/&gt;</span>
</code></div>
]]></content:encoded>
			<wfw:commentRss>http://www.pr0g.net/php/artikel/captcha-abfrage-fur-formulare/feed</wfw:commentRss>
		</item>
		<item>
		<title>E-Mails mit PHP versenden</title>
		<link>http://www.pr0g.net/php/artikel/e-mails-mit-php-versenden</link>
		<comments>http://www.pr0g.net/php/artikel/e-mails-mit-php-versenden#comments</comments>
		<pubDate>Sun, 11 Mar 2007 02:49:15 +0000</pubDate>
		<dc:creator>Pr0g</dc:creator>
		
		<category><![CDATA[Artikel]]></category>

		<category><![CDATA[Dateien]]></category>

		<category><![CDATA[E-Mail]]></category>

		<category><![CDATA[HTML]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Text]]></category>

		<category><![CDATA[Upload]]></category>

		<guid isPermaLink="false">http://www.pr0g.net/php/artikel/e-mails-mit-php-versenden</guid>
		<description><![CDATA[Dieser Artikel erklärt, wie man mit Hilfe der Funktion mail() in PHP E-Mails versenden kann.
E-Mails können neben reinem Text auch HTML-Code und Dateien als Anhang beinhalten. Diese Möglichkeiten werden Schritt für Schritt in eine eigene E-Mail Funktion namens SendMail() integriert.

Text E-Mails versenden
Als Basis für unsere E-Mail Funktion nehmen wir das Versenden von reinen Text E-Mails. [...]]]></description>
			<content:encoded><![CDATA[<p>Dieser Artikel erklärt, wie man mit Hilfe der Funktion <a href="http://de.php.net/manual/de/function.mail.php" target="_blank">mail()</a> in PHP E-Mails versenden kann.</p>
<p>E-Mails können neben reinem Text auch HTML-Code und Dateien als Anhang beinhalten. Diese Möglichkeiten werden Schritt für Schritt in eine eigene E-Mail Funktion namens <strong>SendMail()</strong> integriert.<br />
<span id="more-29"></span><u></u></p>
<p><u><strong>Text E-Mails versenden</strong></u></p>
<p>Als Basis für unsere E-Mail Funktion nehmen wir das Versenden von reinen Text E-Mails. Die <strong>mail()</strong> Funktion von PHP erwartet für unser Vorhaben vier Parameter:</p>
<div class="code_div"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br /><br />mail</span><span style="color: #007700">(</span><span style="color: #0000BB">$to</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$subject</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$message</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$header</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
<ul>
<li><strong>$to</strong>: Die E-Mailadresse des Empfängers unserer E-Mail, bspw. &#8220;test@domain.de&#8221;. Neben der Adresse kann auch noch der Name des Empfängers angegeben werden, dies würde dann so aussehen: &#8220;Max Muster &lt;test@domain.de&gt;&#8221;. Das kann jedoch bei manchen Servern zu einem Problem beim Senden der E-Mail führen, daher vorher testen! Soll die E-Mail an mehrere Empfänger gesendet werden, so können diese hintereinander (per Komma getrennt) angegeben werden.</li>
</ul>
<ul>
<li><strong>$subject</strong>: Der Betreff der E-Mail, dieser darf keine Zeilenumbrüche enthalten!</li>
</ul>
<ul>
<li><strong>$message</strong>: Die eigentliche Nachricht der E-Mail. Zeilenumbrüche müssen durch ein LF-Zeichen (\n) getrennt werden und einzelne Zeilen sollten nicht länger als 70 Zeichen sein.</li>
</ul>
<ul>
<li><strong>$header</strong>: Der Header enthält zusätzliche Informationen zur E-Mail. In ihm werden wir unsere Absenderadresse angeben, damit der Empfänger eine Antwortmöglichkeit hat. Die Angabe eines Absenders ist erforderlich, sonst kann es passieren, dass die E-Mail nicht versendet wird! Da ein möglicher Spambot den Absender nutzen könnte, um den Header so zu manipulieren, dass die E-Mail an mehrere andere Empfänger gesendet wird, muss die Absenderadresse zuvor durch einen regulären Ausdruck auf Gültigkeit geprüft werden. Optional kann auch noch eine extra Antwortadresse angegeben werden, falls der Empfänger seine Antwort an eine andere E-Mailadresse als die Absenderadresse schicken soll. Genauso wie bei den E-Mailadresse im $to Parameter kann auch im Header der Name mit angegeben werden, wobei es hier keine Probleme geben sollte.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.pr0g.net/php/artikel/e-mails-mit-php-versenden/feed</wfw:commentRss>
		</item>
		<item>
		<title>Thumbnail von einem Bild erzeugen</title>
		<link>http://www.pr0g.net/php/codes/thumbnail-von-einem-bild-erzeugen</link>
		<comments>http://www.pr0g.net/php/codes/thumbnail-von-einem-bild-erzeugen#comments</comments>
		<pubDate>Sun, 04 Mar 2007 18:36:13 +0000</pubDate>
		<dc:creator>Pr0g</dc:creator>
		
		<category><![CDATA[Codes]]></category>

		<category><![CDATA[Bilder]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Thumbnail]]></category>

		<guid isPermaLink="false">http://www.pr0g.net/php-codes/thumbnail-von-einem-bild-erzeugen</guid>
		<description><![CDATA[Diese Funktion erzeugt von einem übergebenen Bild einen Thumbnail (verkleinerte Version des Bildes) - es wird die GDLib benötigt, welche bei den meisten PHP Installationen dabei sein sollte.
Als Bildformate werden GIF, JPG und PNG unterstützt (sofern in der GDLib aktiviert).
Da die Funktion recht vielseitig ist werde ich nun zuerst die einzelnen Parameter erklären:

$source: Hier wird [...]]]></description>
			<content:encoded><![CDATA[<p>Diese Funktion erzeugt von einem übergebenen Bild einen Thumbnail (verkleinerte Version des Bildes) - es wird die GDLib benötigt, welche bei den meisten PHP Installationen dabei sein sollte.</p>
<p>Als Bildformate werden GIF, JPG und PNG unterstützt (sofern in der GDLib aktiviert).<br />
<span id="more-16"></span>Da die Funktion recht vielseitig ist werde ich nun zuerst die einzelnen Parameter erklären:</p>
<ul>
<li><strong>$source</strong>: Hier wird das Quellbild angegeben, welches verkleinert werden soll.</li>
</ul>
<ul>
<li><strong>$new_size</strong>: Hier wird die maximale Breite oder Höhe des Bildes angegeben. Ist das Bild breiter als hoch, so wird die Breite auf diesen Wert gesetzt und die Höhe proportional angepasst. Anders herum genauso. Wird dieser Wert angegeben, so werden alle weiteren Größenwerte ignoriert. Falls eine der anderen Größenvarianten genutzt werden soll, muss dieser Wert auf 0 gesetzt werden.</li>
</ul>
<ul>
<li><strong>$new_width</strong> / <strong>$new_height</strong>: Werden beide Werte angegeben, so wird das Bild fest auf diese Werte verkleinert. Wird nur einer der Werte angegeben und der andere auf 0 gesetzt, so wird der auf 0 gesetzte Wert proportional berechnet.</li>
</ul>
<ul>
<li><strong>$target</strong>: Hier wird der Name und Bildtyp für das Zielbild angegeben. Soll das Bild direkt im Browser ausgegeben werden (nähere Infos dazu weiter unten) so muss der gewünschte Bildtyp (gif, jpg, png) angegeben werden. Alternativ kann auch ein Dateiname angegeben werden, unter dem das Zielbild dann gespeichert wird. Der Bildtyp wird dann aus dem Dateinamen ermittelt (bspw. name.jpg).</li>
</ul>
<ul>
<li><strong>$quali</strong>: Dieser Parameter ist optional (Standardwert 100) und kann angegeben werden, wenn das Zielbild vom Typ JPG ist und eine andere Komprimierungsqualität als 100 erwünscht wird. Bei allen anderen Bildtypen wird der Parameter - falls angegeben - ignoriert.</li>
</ul>
<p>Die fünf Beispielaufrufe sollten separat aufgerufen werde (die anderen bspw. auskommentieren). Die ersten vier speichern den Thumbnail unter dem angegebenen Dateinamen. Das fünfte Beispiel erzeugt eine direkte Ausgabe des Bildes mit dem angegebenen Typ.</p>
<p>Da bei der direkten Ausgabe der Header angepasst wird darf zuvor keine Ausgabe erfolgt sein. Bei der direkten Ausgabe kann die PHP Datei auch als src-Attribut für einen img-Tag genutzt werden, da durch die Anpassung des Headers dem Browser mitgeteilt wird, dass es sich um ein Bild handelt. Eine direkte Ausgabe empfiehlt sich nur in wenigen Fällen, da die Verkleinerung des Bildes so bei jedem Aufruf stattfindet und der Server dadurch mehr belastet wird, als wenn das Bild einmal verkleinert und gespeichert wird. Dann kann immer direkt die verkleinerte Ausgabe angezeigt werden.</p>
<p>Hat alles geklappt, so gibt die Funktion den Wert <strong>true</strong> zurück, andernfalls eine Fehlermeldung. Damit der Wert <strong>true</strong> richtig erkannt werden kann ist eine typensichere Abfrage durch <strong>=== </strong>erforderlich.</p>
<div class="code_div"><code><span style="color: #000000">
&lt;form&nbsp;action="upload.php"&nbsp;method="post"&nbsp;enctype="multipart/form-data"&gt;</span>
</code></div><p>0</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pr0g.net/php/codes/thumbnail-von-einem-bild-erzeugen/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
<br />
<b>Warning</b>:  stristr() [<a href='function.stristr'>function.stristr</a>]: Empty delimiter in <b>/is/htdocs/wp1017081_BHJX0SUJYV/pr0g_blog/wp-content/plugins/wassup/wassup.php</b> on line <b>2093</b><br />
