<?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>netz-guru blog &#187; php</title>
	<atom:link href="http://www.netz-guru.de/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.netz-guru.de</link>
	<description>Webtechniken, Sicherheit und Interessantes...</description>
	<lastBuildDate>Fri, 18 Jun 2010 16:17:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP IPv6 ip2long und long2ip Funktionen</title>
		<link>http://www.netz-guru.de/2009/11/07/php-ipv6-ip2long-und-long2ip-funktionen/</link>
		<comments>http://www.netz-guru.de/2009/11/07/php-ipv6-ip2long-und-long2ip-funktionen/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 14:03:50 +0000</pubDate>
		<dc:creator>Florian Wiessner</dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Webtechniken]]></category>
		<category><![CDATA[ip2long]]></category>
		<category><![CDATA[ip2long6]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[long2ip]]></category>
		<category><![CDATA[long2ip6]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.netz-guru.de/?p=144</guid>
		<description><![CDATA[php bietet aktuell ip2long() und long2ip() nur für IPv4 an, für IPv6 gibt es aktuell soweit ich weiss noch keine native Funktionen, deshalb hier meine zwei Funktionen um ip2long und long2ip auch für IPv6 zu verwenden &#8211; diese Funktionen benötigen die php gmp-lib, unter Debian: apt-get install php5-gmp:
$ipv6 = &#8220;2001:4860:a005::68&#8243;;
function ip2long6($ipv6) {
$ip_n = inet_pton($ipv6);
$bits = [...]]]></description>
			<content:encoded><![CDATA[<p>php bietet aktuell ip2long() und long2ip() nur für IPv4 an, für IPv6 gibt es aktuell soweit ich weiss noch keine native Funktionen, deshalb hier meine zwei Funktionen um ip2long und long2ip auch für IPv6 zu verwenden &#8211; diese Funktionen benötigen die php gmp-lib, unter Debian: apt-get install php5-gmp:</p>
<p>$ipv6 = &#8220;2001:4860:a005::68&#8243;;<br />
function ip2long6($ipv6) {<br />
$ip_n = inet_pton($ipv6);<br />
$bits = 15; // 16 x 8 bit = 128bit<br />
while ($bits &gt;= 0) {<br />
$bin = sprintf(&#8220;%08b&#8221;,(ord($ip_n[$bits])));<br />
$ipv6long = $bin.$ipv6long;<br />
$bits&#8211;;<br />
}<br />
return gmp_strval(gmp_init($ipv6long,2),10);<br />
}</p>
<p>function long2ip6($ipv6long) {</p>
<p>$bin = gmp_strval(gmp_init($ipv6long,10),2);<br />
if (strlen($bin) &lt; 128) {<br />
$pad = 128 &#8211; strlen($bin);<br />
for ($i = 1; $i &lt;= $pad; $i++) {<br />
$bin = &#8220;0&#8243;.$bin;<br />
}<br />
}<br />
$bits = 0;<br />
while ($bits &lt;= 7) {<br />
$bin_part = substr($bin,($bits*16),16);<br />
$ipv6 .= dechex(bindec($bin_part)).&#8221;:&#8221;;<br />
$bits++;<br />
}<br />
// compress</p>
<p>return inet_ntop(inet_pton(substr($ipv6,0,-1)));<br />
}</p>
<p>print $ipv6long =  ip2long6($ipv6).&#8221;\n&#8221;;<br />
print $ipv6 = long2ip6($ipv6long).&#8221;\n&#8221;;</p>
<p>Ergebnis:</p>
<p>42541956150894553250710573749450571880<br />
2001:4860:a005::68</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netz-guru.de/2009/11/07/php-ipv6-ip2long-und-long2ip-funktionen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Typo3 4.2.8 und PHP5.3 Kompatibilitäts-Patch</title>
		<link>http://www.netz-guru.de/2009/07/09/typo3-428-und-php53-kompatibilitats-patch/</link>
		<comments>http://www.netz-guru.de/2009/07/09/typo3-428-und-php53-kompatibilitats-patch/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 17:18:31 +0000</pubDate>
		<dc:creator>Florian Wiessner</dc:creator>
				<category><![CDATA[Webtechniken]]></category>
		<category><![CDATA[4.2.8]]></category>
		<category><![CDATA[5.3]]></category>
		<category><![CDATA[compat]]></category>
		<category><![CDATA[depracted function]]></category>
		<category><![CDATA[kompatibilität]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://www.netz-guru.de/?p=131</guid>
		<description><![CDATA[Heute hatte ich mal etwas Zeit über, und konnte mich einem weiteren kleinen Problem welches aus dem Upgrade auf PHP5.3 resultiert widmen. Einige Funktionen sind bei PHP5.3 nicht mehr verfügbar, oder werden mit PHP6.0 nicht mehr unterstüzt. Auf der php Webseite gibt es eine Liste aller veralteten Funktionen.
In Typo3 4.3.0alpha3 ist davon zwar Einiges, wenn [...]]]></description>
			<content:encoded><![CDATA[<p>Heute hatte ich mal etwas Zeit über, und konnte mich einem weiteren kleinen Problem welches aus dem Upgrade auf PHP5.3 resultiert widmen. Einige Funktionen sind bei PHP5.3 nicht mehr verfügbar, oder werden mit PHP6.0 nicht mehr unterstüzt. Auf der php Webseite gibt es eine <a href="http://us2.php.net/manual/en/migration53.deprecated.php" target="_blank">Liste aller veralteten Funktionen</a>.</p>
<p>In Typo3 4.3.0alpha3 ist davon zwar Einiges, wenn nicht sogar Alles behoben, im aktuellen Stable 4.2.8 gibt es jedoch eine Menge Probleme, wenn man auf PHP5.3 umstellt. Deshalb hier der von mir erstellte Patch für typo3 4.2.8 mit PHP5.3</p>
<p><a href="http://www.netz-guru.de/wp-content/uploads/2009/07/typo3-428-php53-compatpatch.txt">typo3-4.2.8-php5.3-compat-patch</a></p>
<p>Falls jemand wider Erwarten einen Fehler findet und mir mitteilt, so werde ich den neuen Patch ebenfalls hier veröffentlichen.</p>
<p>Einen komplett gepatchten source gibt es hier zum download, da viele User nicht wissen wie man mit patch umgeht:</p>
<p><a href="http://www.netz-guru.de/wp-content/uploads/2009/07/typo3_src-4.2.8-compat-patched-php5.3.tgz">http://www.netz-guru.de/wp-content/uploads/2009/07/typo3_src-4.2.8-compat-patched-php5.3.tgz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.netz-guru.de/2009/07/09/typo3-428-und-php53-kompatibilitats-patch/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>PHP Klasse für www.online-mahnantrag.de</title>
		<link>http://www.netz-guru.de/2008/11/04/php-klasse-fur-wwwonline-mahnantragde/</link>
		<comments>http://www.netz-guru.de/2008/11/04/php-klasse-fur-wwwonline-mahnantragde/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 17:36:25 +0000</pubDate>
		<dc:creator>Florian Wiessner</dc:creator>
				<category><![CDATA[Webtechniken]]></category>
		<category><![CDATA[klasse]]></category>
		<category><![CDATA[mahnantrag]]></category>
		<category><![CDATA[mahnbescheid]]></category>
		<category><![CDATA[online mahnbescheid]]></category>
		<category><![CDATA[online mahnverfahren]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.netz-guru.de/?p=40</guid>
		<description><![CDATA[Mahnbescheide automatisiert erstellen
Heute habe ich eine PHP-Klasse für www.online-mahnantrag.de geschrieben. Mit dieser Klasse ist es möglich, die Barcode PDF Anträge direkt aus einem PHP Skript heraus zu erstellen, und so zum Beispiel ein automatisiertes Mahnwesen zu erweitern, so dass nach Ablauf der letzten Mahnung automatisch das gerichtliche Mahnverfahren eröffnet werden kann.
Welche Verfahren werden angeboten?
Unter www.online-mahnantrag.de [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Mahnbescheide automatisiert erstellen</strong></p>
<p>Heute habe ich eine PHP-Klasse für www.online-mahnantrag.de geschrieben. Mit dieser Klasse ist es möglich, die Barcode PDF Anträge direkt aus einem PHP Skript heraus zu erstellen, und so zum Beispiel ein automatisiertes Mahnwesen zu erweitern, so dass nach Ablauf der letzten Mahnung automatisch das gerichtliche Mahnverfahren eröffnet werden kann.</p>
<p><strong>Welche Verfahren werden angeboten?</strong></p>
<p>Unter www.online-mahnantrag.de gibt es derzeit zwei Möglichkeiten, ein Mahnverfahren zu starten. Zum einen gibt es die schriftliche Version, d.h. man füllt online alle benötigten Felder aus, und erstellt abschließend einen Mahnbescheid mit maschinenlesbarem Barcode. Die zweite Alternative ist die Übermittlung der Daten mittels elektronischer Signatur. Die Klasse unterstüzt derzeit nur das Barcode Verfahren, da dies mir persönlich ausreicht und ich selbst nicht über eine digitale Signatur und entsprechendes Equipment verfüge. Wenn man die Funktion gen_pdf() der Klasse aufruft, übermittelt diese alle erforderlichen Daten an www.online-mahnantrag.de und liefert als Ergebnis das fertige Barcode-PDF zurück.</p>
<p><strong>Einen neuen Mahnbescheid mit der Klasse erstellen</strong></p>
<p>mit der Klasse lässt sich dann relativ einfach so ein Barcode-Antrag erstellen, hier mal ein Code-Beispiel:</p>
<p><span id="more-40"></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;">$antragsteller</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"> = array (</span></span></span></p>
<p style="0cm;"><span style="#ff0000;"><span style="Courier New,monospace;"><span style="x-small;">3</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">array (</span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;Smart Weblications GmbH&#8221;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">),</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;Martinsberger Str. 1&#8243;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;95119&#8243;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;Naila&#8221;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;D&#8221;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">);</span></span></span></p>
<p style="0cm;">
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;">$antragsteller_gv</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"> = array (</span></span></span></p>
<p style="0cm;"><span style="#ff0000;"><span style="Courier New,monospace;"><span style="x-small;">52</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;Florian Wiessner&#8221;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;Martinsberger Str. 1&#8243;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;95119&#8243;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;Naila&#8221;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;D&#8221;</span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">);</span></span></span></p>
<p style="0cm;">
<p style="0cm;">
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;">$sql</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"> = </span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;select * from kunden where kunde=&#8217;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>$customer_id</strong></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8216;&#8221;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$res</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = mysql_query(</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$sql</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$db</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">);</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$dat</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = mysql_fetch_assoc(</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$res</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">);</span></span></span></span></p>
<p style="normal;">
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>foreach</strong></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> (</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$dat</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> </span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>as</strong></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$k</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> =&gt; </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$v</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">) {</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> ${</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$k</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">} = </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$v</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="normal;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">}</span></span></span></p>
<p style="normal;">
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$antraggegner</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = array(</span></span></span></span></p>
<p style="0cm;"><span style="#ff0000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">1</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$vorname</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$name</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$strasse</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$plz</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$ort</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span></p>
<p style="normal;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;D&#8221;</span></span></span></p>
<p style="normal;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">);</span></span></span></p>
<p style="normal;">
<p style="normal;">
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$mb</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = </span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>new</strong></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> Mahnbescheid();</span></span></span></span></p>
<p style="normal;">
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$mb</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">-&gt;bundesland = </span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;BAY&#8221;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$mb</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">-&gt;antragsart = </span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;barcode&#8221;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$mb</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">-&gt;antragsteller = </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$antragsteller</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$mb</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">-&gt;antragsteller_gv = </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$antragsteller_gv</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$mb</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">-&gt;antraggegner = </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$antraggegner</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="normal;">
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$sql</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = </span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;select * from bills where customer_id=&#8217;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>$customer_id</strong></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8216; and bill_status&gt;=1 and bill_payed=&#8217;0000-00-00 00:00:00&#8242;&#8221;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$res</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = mysql_query(</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$sql</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$db</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">);</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>while</strong></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> (</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$dat</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = mysql_fetch_array(</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$res</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">)) {</span></span></span></span></p>
<p style="normal;">
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_id</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$dat</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">[</span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">"bill_id"</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">];</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_created</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$dat</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">[</span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">"bill_created"</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">];</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_value</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">=get_bill_totalvalue(</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_id</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">);</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> list(</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$von</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$zeit</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">) = explode(</span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8221; &#8220;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_created</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">);</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> list(</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$y</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$m</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$d</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">) = explode(</span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;-&#8221;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$von</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">);</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$von</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = </span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>$d</strong></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">.</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>$m</strong></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">.</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>$y</strong></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_value</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = preg_replace(</span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;/\./&#8221;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;,&#8221;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_value</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">);</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$anspruch</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">[] = array(</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_id</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$von</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;&#8221;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_value</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">); </span></span></span></span></p>
<p style="normal;">
<p style="normal;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">}</span></span></span></p>
<p style="normal;">
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$mb</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">-&gt;anspruch = </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$anspruch</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$pdf</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$mb</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">-&gt;gen_pdf();</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">print </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$pdf</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;">
<p>Mit geringem Aufwand und sofern man eben Kundendaten und Rechnungen bereits in einer Datenbank hat, lässt sich damit dann das begehrte PDF erstellen und weiterverarbeiten. Jetzt hat man ebenfalls die Möglichkeit, via Cronjob zeitgesteuert nach säumigen Zahlern zu suchen und diese automatisiert in das gerichtliche Mahnverfahren zu überführen. Auf Wunsch und gegen eine geringe Gebühr gebe ich gerne den Code weiter oder binde die Klasse in vorhandene Umgebungen ein.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netz-guru.de/2008/11/04/php-klasse-fur-wwwonline-mahnantragde/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Howto convert mp3-Streams to aac+ Streams in Linux</title>
		<link>http://www.netz-guru.de/2008/08/06/howto-convert-mp3-streams-to-aac-streams-in-linux/</link>
		<comments>http://www.netz-guru.de/2008/08/06/howto-convert-mp3-streams-to-aac-streams-in-linux/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 08:08:47 +0000</pubDate>
		<dc:creator>Florian Wiessner</dc:creator>
				<category><![CDATA[Webtechniken]]></category>
		<category><![CDATA[aac+]]></category>
		<category><![CDATA[aac+ stream]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[convert aac]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[shoutcast]]></category>
		<category><![CDATA[stream]]></category>
		<category><![CDATA[transcoder]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.netz-guru.de/?p=36</guid>
		<description><![CDATA[Was ist der Unterschied zwischen aac+ und mp3?
MPEG-4 High Efficiency Advanced Audio Coding (kurz HE-AAC), auch AAC+ v1 genannt, ist ein lizenzpflichtiger Audio-Codec, der Moving Picture Experts Group (MPEG). Der Standard liefert bei niedrigen Bitraten vergleichsweise gute Ergebnisse und eignet sich daher besonders für Live-Streams.

Im Verhältnis zu mp3 bietet aac+ auch bei niedrigen Bitraten (32kbit) [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Was ist der Unterschied zwischen aac+ und mp3?</strong></p>
<blockquote><p><strong>MPEG-4 High Efficiency Advanced Audio Coding</strong> (kurz <em>HE-AAC</em>), auch <strong>AAC+ v1</strong> genannt, ist ein lizenzpflichtiger <a title="Codec" href="http://de.wikipedia.org/wiki/Codec#Audiocodecs">Audio-Codec</a>, der <a title="Moving Picture Experts Group" href="http://de.wikipedia.org/wiki/Moving_Picture_Experts_Group">Moving Picture Experts Group</a> (MPEG). Der Standard liefert bei niedrigen Bitraten vergleichsweise gute Ergebnisse und eignet sich daher besonders für <a title="Streaming Audio" href="http://de.wikipedia.org/wiki/Streaming_Audio">Live-Streams</a>.</p></blockquote>
<p><span id="more-36"></span><br />
Im Verhältnis zu mp3 bietet aac+ auch bei niedrigen Bitraten (32kbit) eine akzeptable gute Qualität. Allerdings ist aac+ ein lizenzplfichtiger Audio-Codec und für Linux gibt es dafür nicht wirklich viel Software, welche dieses Format encoden können. Decoder gibt es wie Sand am Meer, aber wenn man eben in aac+ Streamen möchte und die Daten als mp3 vorliegen, so braucht man dazu einen Encoder der die Daten von mp3 nach aac+ konvertiert.<br />
<!--adsense-block--><br />
<strong>Motivation</strong></p>
<p>Ein <a href="http://www.int-tech.de" target="_blank">Bekannter</a> hat mich gestern deshalb gefragt, ob ich dafür eine Lösung parat hätte. Ich habe dann mal etwas ausgefuchst, um einfach den mp3 Stream von <a href="http://www.antenne.de" target="_blank">Antenne Bayern</a> in aac+ zu konvertieren.</p>
<p><strong>Benötigte Software</strong></p>
<p>Folgende Software wird benötigt:</p>
<ul>
<li><a href="http://www.shoutcast.com" target="_blank">shoutcast server</a></li>
<li><a href="http://teknoraver.net/software/mp4tools/" target="_blank">mp4tools</a>, genauer aacplusenc (lokaler Mirror: <a href="http://www.netz-guru.de/mirror/mp4tools/" target="_blank">http://www.netz-guru.de/mirror/mp4tools/</a>)</li>
<li><a href="http://www.mplayerhq.hu/" target="_blank">mplayer</a></li>
<li>PHP &#8211; oder eine andere Scriptsprache, welche Sockets und Stdin lesen und schreiben kann, z.b. Perl</li>
<li>Linux &#8211; (ich habe <a href="http://www.ubuntu.com" target="_blank">ubuntu</a> verwendet)</li>
</ul>
<p>Dies reicht aus um den Stream konvertieren zu können und als aac+ Stream weiter verwenden zu können. Ich gehe davon aus dass Du als User in der Lage bist, shoutcast, mp4tools und mplayer zu installieren.</p>
<p><strong>Let&#8217;s do it!</strong></p>
<p>Ich habe dafür auf einem <a title="Vlinux VServer" href="http://vlinux.biz" target="_blank">VServer</a> einen user &#8220;streaming&#8221; angelegt und bin in das Home-Dir des Users gewechselt. Entpacke dort den shoutcast Server. Zunächst müssen wir mit mkfifo einen <a href="http://de.wikipedia.org/wiki/FIFO" target="_blank">Fifo</a> erstellen, über den wir später den Stream von Antenne Bayern durchschleusen:</p>
<p><em>~# mkfifo streamin</em></p>
<p>Dann müssen wir ein kleines Script schreiben, welches die encodierten aac+ Daten an den Shoutcast-Server übergibt:</p>
<p><code><br />
#!/usr/bin/php<br />
&lt;?php<br />
$address = "192.168.200.10";<br />
$port = 8000;<br />
$sock = fsockopen($address,($port+1),&amp;$errno, &amp;$errstr, 10);<br />
fputs($sock,"changeme\r\n"); // Passwort ändern!<br />
$res = fgets($sock);<br />
wlog($res);<br />
fputs($sock,"icy-name:my Server<br />
icy-genre:<br />
icy-url:http://www.shoutcast.com<br />
icy-irc:%23shoutcast<br />
icy-icq:0<br />
icy-aim:N%2FA<br />
icy-pub:1<br />
icy-br:32<br />
content-type:audio/aacp<br />
icy-reset:1</code><br />
<code><br />
");<br />
$res = fgets($sock);<br />
wlog($res);<br />
$fd = fopen("php://stdin","r");<br />
while (!feof($fd)) {<br />
$buf = fgets($fd,512);<br />
//wlog("Sending 512 bytes");<br />
fputs($sock,$buf);<br />
}<br />
fclose($fd);<br />
function wlog($msg) {<br />
$fd = fopen("/tmp/ss.log","a");<br />
fputs($fd,$msg."\n");<br />
fclose($fd);<br />
}<br />
?&gt;</code></p>
<p>Adresse und Port müssen angepasst werden, so dass hier der installierte Shoutcast Server angesprochen wird. Das Script habe ich bei mir als &#8220;simple_server.php&#8221; gespeichert und die Modes 755 gesetzt, damit dieses direkt über die Console gestartet werden kann (sollte das nicht funktionieren, fehlt php-cli!).</p>
<p>Nun haben wir schon alles was wir benötigen um zu starten:</p>
<p><em>aacplusenc streamin &#8211; 32 | ./simple_server.php &amp; mplayer -ao pcm:file=streamin http://mp3.webradio.antenne.de:80</em></p>
<p>Dies erzeugt uns den aac+ Stream, welchen man dann z.B. mit VLC oder Winamp über den installierten Shoutcast Server abspielen kann.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netz-guru.de/2008/08/06/howto-convert-mp3-streams-to-aac-streams-in-linux/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Kritische Sicherheitslücke in Joomla 1.0.15 behoben</title>
		<link>http://www.netz-guru.de/2008/02/23/kritische-sicherheitslucke-in-joomla-1015-behoben/</link>
		<comments>http://www.netz-guru.de/2008/02/23/kritische-sicherheitslucke-in-joomla-1015-behoben/#comments</comments>
		<pubDate>Sat, 23 Feb 2008 17:32:44 +0000</pubDate>
		<dc:creator>Florian Wiessner</dc:creator>
				<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.netz-guru.de/2008/02/23/kritische-sicherheitslucke-in-joomla-1015-behoben/</guid>
		<description><![CDATA[Seit gestern ist die Version 1.0.15 von joomla veröffentlicht worden, welche eine kritische Schwachstelle behebt die bis einschliesslich 1.0.14 funktioniert, mit der remote eingeschleuster PHP Code ausgeführt werden konnte.
Es wird daher dringend empfohlen, ein Backup des CMS anzufertigen und umgehend die neue Version einzuspielen, um Angreifern kein Ziel mehr zu bieten.
Weitere Informationen und Patch-Pakete gibt [...]]]></description>
			<content:encoded><![CDATA[<p>Seit gestern ist die Version 1.0.15 von joomla veröffentlicht worden, welche eine kritische Schwachstelle behebt die bis einschliesslich 1.0.14 funktioniert, mit der remote eingeschleuster PHP Code ausgeführt werden konnte.</p>
<p>Es wird daher dringend empfohlen, ein Backup des CMS anzufertigen und umgehend die neue Version einzuspielen, um Angreifern kein Ziel mehr zu bieten.</p>
<p>Weitere Informationen und Patch-Pakete gibt es direkt auf <a href="http://www.joomla.org">www.joomla.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.netz-guru.de/2008/02/23/kritische-sicherheitslucke-in-joomla-1015-behoben/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
