<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.4" -->
<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/"
	>

<channel>
	<title>phpschnipsel</title>
	<link>http://phpschnipsel.de</link>
	<description>Ein weiteres tolles WordPress-Blog</description>
	<pubDate>Mon, 17 Sep 2007 16:41:09 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.4</generator>
	<language>en</language>
			<item>
		<title>PHP 5.2.* unter einem 64 bit Linux installieren</title>
		<link>http://phpschnipsel.de/?p=23</link>
		<comments>http://phpschnipsel.de/?p=23#comments</comments>
		<pubDate>Fri, 20 Apr 2007 11:57:12 +0000</pubDate>
		<dc:creator>tobi</dc:creator>
		
	<category>PHP</category>
		<guid isPermaLink="false">http://phpschnipsel.de/?p=23</guid>
		<description><![CDATA[Die Installationsanleitung für 5.2 für SuSE 9.3  funktioniert leider nicht wie gewollt unter einem 64bit System. Das Configure-Script bricht spätestens beim Versuch die Headerfiles der GD zu finden mit der Fehlermeldung
PLAIN TEXT
CODE:




configure: error: libpng.&#40;a&#124;so&#41; not found. 






ab.
Dies liegt nicht daran, dass die entsprechenden Dateien nicht gefunden werden können, sondern an einem (alten) Bug (PHP4) [...]]]></description>
			<content:encoded><![CDATA[<p>Die <a href="http://phpschnipsel.de/?page_id=14">Installationsanleitung für 5.2 für SuSE 9.3 </a> funktioniert leider nicht wie gewollt unter einem 64bit System. Das Configure-Script bricht spätestens beim Versuch die Headerfiles der GD zu finden mit der Fehlermeldung</p>
<div class="igBar"><span id="lcode-4"><a href="#" onclick="javascript:showPlainTxt('code-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span><br />
<div id="code-4">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">configure: error: libpng.<span style="color:#006600; font-weight:bold;">&#40;</span>a|so<span style="color:#006600; font-weight:bold;">&#41;</span> not found. </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>ab.</p>
<p>Dies liegt nicht daran, dass die entsprechenden Dateien nicht gefunden werden können, sondern an einem (alten) Bug (PHP4) im Configure-Scripte, der meiner Meinung nach einfach mitgeschleppt wurde.<br />
Selbst beim Versuch die GD testweise herauszulassen, bekommt man dies mit der Fehlermeldung quittiert, dass die mySQL-Header nicht gefunden wurden.</p>
<p><strong>Workaround:</strong></p>
<p>Man lege 2 Links von /usr nach /opt</p>
<div class="igBar"><span id="lcode-5"><a href="#" onclick="javascript:showPlainTxt('code-5'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span><br />
<div id="code-5">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">ln -s /usr/include /opt/include</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">ln -s /usr/lib64 /opt/lib </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>und gebe diesen Pfad im Configure-String mit</p>
<div class="igBar"><span id="lcode-6"><a href="#" onclick="javascript:showPlainTxt('code-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span><br />
<div id="code-6">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">--with-jpeg-dir=/opt \</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">--with-png-dir=/opt \</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">--with-mysql=/opt \ </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Nun kann der Script die die Dateien auch finden. Natürlich müssen die entsprechenden Develpackete auch installiert sein:</p>
<p>Zur Erinnerung hier nochmal eine Checkliste der von PHP gebrauchten Pakete:</p>
<p>Bison<br />
Flex<br />
OpenSSL devel<br />
OpenSSL Doc<br />
ZLib devel<br />
cURL devel<br />
libxml<br />
libxml devel<br />
libxslt devel<br />
libpng devel<br />
freetype<br />
freetype 2<br />
freetype 2 devel<br />
libcrypt devel<br />
libmhash<br />
libmhash devel<br />
sablot devel<br />
mysql devel<br />
autoconf
</p>
]]></content:encoded>
			<wfw:commentRSS>http://phpschnipsel.de/?feed=rss2&amp;p=23</wfw:commentRSS>
		</item>
		<item>
		<title>meine Meinung zum &#8220;websitebaker&#8221;</title>
		<link>http://phpschnipsel.de/?p=22</link>
		<comments>http://phpschnipsel.de/?p=22#comments</comments>
		<pubDate>Sat, 10 Mar 2007 14:44:11 +0000</pubDate>
		<dc:creator>tobi</dc:creator>
		
	<category>PHP</category>
		<guid isPermaLink="false">http://phpschnipsel.de/?p=22</guid>
		<description><![CDATA[Durch einen Kundenauftrag bin ich letzte Woche mal mit dem Websitebaker in Berührung gekommen und muss sagen, dass ich von dem u.a. in der InternetPro hoch gelobten CMS ziemlich enttäuscht bin.
Da ich PHP schon standardmäßig mit error_reporting E_ALL konfiguriere, war durch eine Notice (eine doppelte Konstante) bei der Installation und der nachfolgenden "header already sent"-Fehlermeldung [...]]]></description>
			<content:encoded><![CDATA[<p>Durch einen Kundenauftrag bin ich letzte Woche mal mit dem <a target="_blank" href="http://websitebaker.org">Websitebaker</a> in Berührung gekommen und muss sagen, dass ich von dem u.a. in der InternetPro hoch gelobten CMS ziemlich enttäuscht bin.<br />
Da ich PHP schon standardmäßig mit error_reporting E_ALL konfiguriere, war durch eine Notice (eine doppelte Konstante) bei der Installation und der nachfolgenden "header already sent"-Fehlermeldung schon Schluss. Erst nachdem ich manuell im Code nachgeholfen habe, ging die Installation reibungungslos von statten.<br />
Bis auf die Startseite jedoch in fast jedem Module Notices wohin das Auge reicht, von undefinierten Offsets bis hin zu undefinierten Konstanten oder wie oben schon mal passiert eben doppelten Konstanten. Wie mag solch ein Code ausschauen? Genau so wie das Frontend: Scheußlich! Weder HTML und CSS(in eleganter Tabelle) noch PHP und mySQL sind frei von Fehlern und Sicherheitslücken.<br />
Ich kann nur eines raten: Finger weg!
</p>
]]></content:encoded>
			<wfw:commentRSS>http://phpschnipsel.de/?feed=rss2&amp;p=22</wfw:commentRSS>
		</item>
		<item>
		<title>Mircosoft Firefox 2007</title>
		<link>http://phpschnipsel.de/?p=21</link>
		<comments>http://phpschnipsel.de/?p=21#comments</comments>
		<pubDate>Thu, 18 Jan 2007 10:15:05 +0000</pubDate>
		<dc:creator>tobi</dc:creator>
		
	<category>PHP</category>
		<guid isPermaLink="false">http://phpschnipsel.de/?p=21</guid>
		<description><![CDATA[Was nicht zu töten ist, wird aufgebohrt  und viel besser gemacht. Eine Microsoft-Philosophie die jetzt auch in die Browser-Entwicklung eingeflossen ist. Nach dem unglaublichen Erfolg von IE 7 kommt nun der MS-Firefox 2007. Natürlich nur für Nutzer des einzigen und besten Betriebssystems aller Zeiten. Ist dies das Ende der IE-Engine?
Viel Spaß mit Mircosoft Firefox [...]]]></description>
			<content:encoded><![CDATA[<p>Was nicht zu töten ist, wird aufgebohrt  und viel besser gemacht. Eine Microsoft-Philosophie die jetzt auch in die Browser-Entwicklung eingeflossen ist. Nach dem unglaublichen Erfolg von IE 7 kommt nun der MS-Firefox 2007. Natürlich nur für Nutzer des einzigen und besten Betriebssystems aller Zeiten. Ist dies das Ende der IE-Engine?<br />
<a target="_blank" href="http://www.msfirefox.com/">Viel Spaß mit Mircosoft Firefox 2007!!</a>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://phpschnipsel.de/?feed=rss2&amp;p=21</wfw:commentRSS>
		</item>
		<item>
		<title>Firefox 3.0 schafft den Acid 2 Test</title>
		<link>http://phpschnipsel.de/?p=20</link>
		<comments>http://phpschnipsel.de/?p=20#comments</comments>
		<pubDate>Thu, 14 Dec 2006 10:13:53 +0000</pubDate>
		<dc:creator>tobi</dc:creator>
		
	<category>PHP</category>
		<guid isPermaLink="false">http://phpschnipsel.de/?p=20</guid>
		<description><![CDATA[Die Mozilla Foundation hat die offizielle Alpha des Firefox 3.0 released und schafft es damit erstmals den nicht unumstrittenen Acid 2 Test zu bestehen. Die Entwickler setzen damit einen weiteren sehr wichtigen Meilenstein vor ihren Hauptkonkurrenten Internet Explorer 7. Browser wie Opera oder Safari bestehen den Acid 2 Test schon seit Längerem. Bleibt abzuwarten wann [...]]]></description>
			<content:encoded><![CDATA[<p>Die Mozilla Foundation hat die <a target="_blank" href="http://www.mozilla.org/projects/firefox/3.0a1/releasenotes/">offizielle Alpha des Firefox 3.0</a> released und schafft es damit erstmals den nicht unumstrittenen <a target="_blank" href="http://www.webstandards.org/files/acid2/test.html">Acid 2 Test</a> zu bestehen. Die Entwickler setzen damit einen weiteren sehr wichtigen Meilenstein vor ihren Hauptkonkurrenten <a target="_blank" href="http://www.microsoft.com/germany/windows/ie/default.mspx">Internet Explorer 7</a>. Browser wie Opera oder Safari bestehen den Acid 2 Test schon seit Längerem. Bleibt abzuwarten wann der endgültige  Release-Termin ist. Ich persönliche schätze diesen nicht vor Herbst nächsten Jahres ein.<br />
<a target="_blank" href="http://arstechnica.com/news.ars/post/20061212-8409.html">mehr dazu</a>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://phpschnipsel.de/?feed=rss2&amp;p=20</wfw:commentRSS>
		</item>
		<item>
		<title>mod_rewrite unter SuSE (Apache) aktivieren</title>
		<link>http://phpschnipsel.de/?p=19</link>
		<comments>http://phpschnipsel.de/?p=19#comments</comments>
		<pubDate>Thu, 16 Nov 2006 14:41:03 +0000</pubDate>
		<dc:creator>tobi</dc:creator>
		
	<category>PHP</category>
		<guid isPermaLink="false">http://phpschnipsel.de/?p=19</guid>
		<description><![CDATA[Es ist beim SuSE-Apachen immer das gleiche: Man will etwas Spezielles nachinstallieren, fügt es hinzu und beim nächsten Apache-Neustart ist die entsprechende Zeile auch schon wieder überschrieben. Genauso erging es mir mal wieder beim Hinzufügen von mod_rewrite, denn der liebe SuSE-Apache hat so seine Tücken.
Möchte man ein Modul hinzufügen oder wegnehmen braucht man dies nur [...]]]></description>
			<content:encoded><![CDATA[<p>Es ist beim SuSE-Apachen immer das gleiche: Man will etwas Spezielles nachinstallieren, fügt es hinzu und beim nächsten Apache-Neustart ist die entsprechende Zeile auch schon wieder überschrieben. Genauso erging es mir mal wieder beim Hinzufügen von mod_rewrite, denn der liebe SuSE-Apache hat so seine Tücken.<br />
Möchte man ein Modul hinzufügen oder wegnehmen braucht man dies nur in der Datei <em>/etc/sysconfig/apache2</em> zu tun. Dort stehen in der Variable APACHE_MODULES alle zu ladenden Module. Einfach das benötigte Modul hinzufügen und fertig:</p>
<div class="igBar"><span id="lcode-8"><a href="#" onclick="javascript:showPlainTxt('code-8'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span><br />
<div id="code-8">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">APACHE_MODULES=<span style="color:#CC0000;">"mod_perl rewrite access actions alias auth....... </span></div>
</li>
</ol>
</div>
</div>
</div>
<p>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://phpschnipsel.de/?feed=rss2&amp;p=19</wfw:commentRSS>
		</item>
		<item>
		<title>utf-8 Umstellung in einer Lamp Umgebung</title>
		<link>http://phpschnipsel.de/?p=18</link>
		<comments>http://phpschnipsel.de/?p=18#comments</comments>
		<pubDate>Tue, 17 Oct 2006 14:21:17 +0000</pubDate>
		<dc:creator>tobi</dc:creator>
		
	<category>PHP</category>
	<category>XML/XHTML/CSS</category>
		<guid isPermaLink="false">http://phpschnipsel.de/?p=18</guid>
		<description><![CDATA[Bei der Umstellung von PHP-Scripten oder ganzen PHP-Anwendungen inklusive Datenbank-Anbindung und deren Ausgaben, von Latin1(iso-8859-*) auf utf-8 (Abk. für 8-bit Unicode Transformation Format),  gibt es vieles zu beachten.
Weil iso-8859-1 bzw -15(mit €) in den meisten Fällen ausreicht, sollte dieser Zeichensatz für deutsch bzw englischsprachigen Seiten auch Verwendung finden. Wenn aber kyrillisch oder gar chinesisch [...]]]></description>
			<content:encoded><![CDATA[<p>Bei der Umstellung von PHP-Scripten oder ganzen PHP-Anwendungen inklusive Datenbank-Anbindung und deren Ausgaben, von Latin1(iso-8859-*) auf utf-8 (Abk. für <em>8-bit Unicode Transformation Format</em>),  gibt es vieles zu beachten.<br />
Weil iso-8859-1 bzw -15(mit €) in den meisten Fällen ausreicht, sollte dieser Zeichensatz für deutsch bzw englischsprachigen Seiten auch Verwendung finden. Wenn aber kyrillisch oder gar chinesisch auf der Seite angezeigt werden muss, liegt ein Multibyte Zeichensatz wie utf-8 nahe, da er all diese Zeichen anzeigen kann. Das W3C empfiehlt übrigens generell die Benutzung von utf-8 auf HTML-Seiten. XHTML ist grundsätzlich utf-8, wenn man nichts anderes vorgibt.<br />
Da man den utf-8 Zeichensatz bei allen möglichen Gelegenheiten(in PHP, in mySQL, in XHTML, in CSS und im Browser) um- und einstellen kann, ist bei der Umstellung also einiges an Aufmerksamkeit gefragt, denn eine vergessene Einstellung kann schon das Scheitern des Vorhabens bedeuten.<br />
<a id="more-18"></a><br />
Viele der folgenden Einstellungen mögen doppelt vorkommen, meine Erfahrung bei der Umstellung ist jedoch, dass man hier sehr gewissenhaft vorgehen muss um Fehler und Folgefehler zu vermeiden.<br />
Der wohl wichtigste Part beschäftigt sich mit der Konfiguration von mySQL, da gerade beim Daten speichern sehr viele Fehler auftauchen können.<br />
<strong>Schritt 1 - Das Dokument an sich<br />
</strong>Die Kodierung des verwendeten Editors(z.B. Dreamweaver) auf UTF-8 umstellen. Alle Dokumente sollten  direkt als utf-8 erstellt werden. Hier ist zu bemerken, dass es eine sog. "<a target="_blank" href="http://www.unicode.org/faq/utf_bom.html">BOM</a>" gibt, eine Markierung für die Byte-Reihenfolge bei UTF-* Dokumenten, die es dem Client ermöglicht auszulesen ob das Dokument ein UTF-* Dokument ist. <strike>Diese Option im Editor also aktivieren.</strike> Die Funktion sollte bitte nur mit Vorsicht aktiviert werden, denn nicht jede Applikation kommt damit klar. Gutes Beispiel ist, dass durch die BOM anscheinend schon ein Header gesendet wird. Somit wird durch eine nachfolgende header()-Anweisung unter PHP ein "headers already sent" Warning ausgelöst. Ich bin momentan dabei dieses Problem zu lösen.<br />
<strong>Schritt 2 - Das HTML<br />
</strong>(X)HTML Header anpassen. Damit der Browser weiß dass er das Dokument in utf-8 anzeigen soll, muss  er dies gesagt bekommen .</p>
<div class="igBar"><span id="lhtml-16"><a href="#" onclick="javascript:showPlainTxt('html-16'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">HTML:</span><br />
<div id="html-16">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/meta.html"><span style="color: #000000; font-weight: bold;">&lt;meta</span></a> <span style="color: #000066;">http-equiv</span>=<span style="color: #ff0000;">"Content-Type"</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">"text/html;charset=utf-8"</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
<strong>Schritt 3 - CSS</strong><br />
Das CSS wird mit dieser kleinen Anweisung zu utf-8. Wichtig: Wenn man in Stylesheets eine <a target="_blank" href="http://www.unicode.org/faq/utf_bom.html">BOM</a> verwendet, dann kann man nicht zugleich die @charset-Regel benutzen, denn die muss immer die allererste Zeichenkette im Dokument sein.</p>
<div class="igBar"><span id="lcss-17"><a href="#" onclick="javascript:showPlainTxt('css-17'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CSS:</span><br />
<div id="css-17">
<div class="css">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #a1a100;">@charset &quot;utf-8&quot;; </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Schritt 4 - php.ini</strong><br />
Damit php die Scripte als utf-8 ausliefert, sollte man auch die php.ini entsprechend anpassen.</p>
<div class="igBar"><span id="lcode-18"><a href="#" onclick="javascript:showPlainTxt('code-18'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span><br />
<div id="code-18">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">default_mimetype = <span style="color:#CC0000;">"text/html"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">default_charset = <span style="color:#CC0000;">"utf-8"</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Schritt 5 - Apache-Webserver</strong><br />
Damit der Webserver Dokumente als utf-8 ausliefert, muss er entsprechend konfiguriert werden. Entweder man tut dies direkt in der http.conf oder in einer htacces Datei. alternativ kann diese Direktive auch nur in speziellen vhosts vorgenommen werden.</p>
<div class="igBar"><span id="lcode-19"><a href="#" onclick="javascript:showPlainTxt('code-19'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span><br />
<div id="code-19">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">AddCharset utf-<span style="color:#800000;color:#800000;">8</span> .<span style="">css</span> .<span style="">html</span> .<span style="">xhtml</span> .<span style="">php</span> .<span style="">php4</span> .<span style="">php5</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Schritt 6 - mySQL</strong><br />
Um Daten in einer mySQL Datenbank als utf-8 zu speichern ist grundsätzlich eine Version >4.1 erforderlich. In Versionen darunter  ist eine Unicode-Unterstützung nicht  implementiert. Will man Daten als utf-8 abspeichern muss die Datenbank und die Tabelle in dieser Kollation angelegt sein. "Jeder String in MySQL ist mit einem Encoding und einer Kollation markiert. Für Datenbankobjekte geschieht dies auf der Spaltenebene: Eine Spalte mit CHAR, VARCHAR oder einem TEXT-Typ ist immer auch mit einem CHARSET und einer COLLATION versehen.(JK)"<br />
Dies macht man z.B. so:</p>
<div class="igBar"><span id="lmysql-20"><a href="#" onclick="javascript:showPlainTxt('mysql-20'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">MySQL:</span><br />
<div id="mysql-20">
<div class="mysql">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #993333; font-weight: bold;">CREATE TABLE</span> `test` <span style="color: #66cc66;">&#40;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">`id` <span style="color: #aa9933; font-weight: bold;">TINYINT</span><span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;color:#800000;">64</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #aa3399; font-weight: bold;">NOT NULL</span> ,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">`<span style="color: #aa9933; font-weight: bold;">TEXT</span>` <span style="color: #aa9933; font-weight: bold;">VARCHAR</span><span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;color:#800000;">128</span> <span style="color: #66cc66;">&#41;</span> CHARACTER <span style="color: #993333; font-weight: bold;">SET</span> utf8 COLLATE utf8_unicode_ci <span style="color: #aa3399; font-weight: bold;">NOT NULL</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#41;</span> TYPE = MYISAM CHARACTER <span style="color: #993333; font-weight: bold;">SET</span> utf8 COLLATE utf8_unicode_ci; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Mit CHARACTER SET utf8 COLLATE utf8_unicode_ci wird der Spalte der Typ Unicode zugewiesen. Gibt man nicht explizit an welche Kollation verwendet werden soll, wird die in der Datenbank angebende weiter nach unten vererbt. Standard Encoding und Kollation lassen sich in der my.cnf angeben:</p>
<div class="igBar"><span id="lcode-21"><a href="#" onclick="javascript:showPlainTxt('code-21'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span><br />
<div id="code-21">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#91;</span>mysqld<span style="color:#006600; font-weight:bold;">&#93;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">default-character-set=utf-<span style="color:#800000;color:#800000;">8</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">default-collation=utf8_unicode_ci </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Der Query</strong><br />
Auch wenn alles auf utf-8 umgestellt ist, wird man schnell feststellen, dass ein utf-8 String, der über ein HTML-Formular eingeben wird bei dem Weg zur Datenbank encodiert wird. Z.B. wird aus<br />
فارسی in der Datenbank wieder  Ø§Ù„Ø¹Ø±Ø¨ÙŠØ©. Woran kann das liegen? Auf dem Weg von HTML über http zu PHP zu mySQL wird der ursprünglich als utf-8 kodierte String also wieder encodiert. Dies geschieht, sofern man alles andere  richtig eingestellt hat, bei der Verbindung von PHP und mySQL. Man umgeht das Problem indem man die Verbindung in utf-8 aufbaut:</p>
<div class="igBar"><span id="lphp-22"><a href="#" onclick="javascript:showPlainTxt('php-22'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span><br />
<div id="php-22">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/mysql_query"><span style="color:#000066;">mysql_query</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"SET NAMES 'utf8'"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/mysql_query"><span style="color:#000066;">mysql_query</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"SET CHARACTER SET 'utf8'"</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
<strong>Quellen</strong><a target="_blank" href="http://www.columbia.edu/kermit/utf8.html" /></p>
<p><a target="_blank" href="http://www.columbia.edu/kermit/utf8.html"> </a><a target="_blank" href="http://www.columbia.edu/kermit/utf8.html">http://www.columbia.edu/kermit/utf8.html</a></p>
<p><a target="_blank" href="http://www.bueltge.de/wk-utf-8-konvertierung/130/">http://www.bueltge.de/wk-utf-8-konvertierung/130/<br />
</a></p>
<p><a target="_blank" href="http://www.unicode.org/">http://www.unicode.org/</a></p>
<p><a target="_blank" href="http://blog.koehntopp.de/archives/1424-MySQL-Zeichensatz-Grundlagen.html">http://blog.koehntopp.de/archives/1424-MySQL-Zeichensatz-Grundlagen.html </a></p>
<p><a target="_blank" href="http://blog.antikoerperchen.de/beitrag/42/utf-8-und-die-entity.html">http://blog.antikoerperchen.de/beitrag/42/utf-8-und-die-entity.html</a></p>
<p><a target="_blank" href="http://dev.mysql.com/doc/refman/4.1/en/charset-syntax.html">http://dev.mysql.com/doc/refman/4.1/en/charset-syntax.html </a></p>
<p><a target="_blank" href="http://de.wikipedia.org/wiki/Utf-8">http://de.wikipedia.org/wiki/Utf-8</a>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://phpschnipsel.de/?feed=rss2&amp;p=18</wfw:commentRSS>
		</item>
		<item>
		<title>alles blog oder what?</title>
		<link>http://phpschnipsel.de/?p=13</link>
		<comments>http://phpschnipsel.de/?p=13#comments</comments>
		<pubDate>Thu, 05 Oct 2006 11:07:01 +0000</pubDate>
		<dc:creator>tobi</dc:creator>
		
	<category>PHP</category>
	<category>Allgemein</category>
		<guid isPermaLink="false">http://phpschnipsel.de/3/?p=13</guid>
		<description><![CDATA[Ja, ich habe mich nun doch endlich dazu überwunden statt meinem eigenen System eine Blogsoftware einzusetzen. Leider fehlt mir einfach die Zeit es so wie ich es möchte weiter zu entwickeln. Man kann eben nicht alles haben. Oder auch doch, denn Wordpress ist eine ganz feine Sache, die sich wunderbar erweitern lässt.
Die Codeschnipseldatenbank war ja [...]]]></description>
			<content:encoded><![CDATA[<p>Ja, ich habe mich nun doch endlich dazu überwunden statt meinem eigenen System eine Blogsoftware einzusetzen. Leider fehlt mir einfach die Zeit es so wie ich es möchte weiter zu entwickeln. Man kann eben nicht alles haben. Oder auch doch, denn Wordpress ist eine ganz feine Sache, die sich wunderbar erweitern lässt.</p>
<p>Die Codeschnipseldatenbank war ja total veraltet und mit teilweise völlig überflüssigem Code zugeschissen. Diese wird nun neu programmiert.</p>
<p>Lasst es krachen.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://phpschnipsel.de/?feed=rss2&amp;p=13</wfw:commentRSS>
		</item>
		<item>
		<title>PEAR::DB und mysql_insert_id()</title>
		<link>http://phpschnipsel.de/?p=12</link>
		<comments>http://phpschnipsel.de/?p=12#comments</comments>
		<pubDate>Tue, 05 Sep 2006 11:00:10 +0000</pubDate>
		<dc:creator>tobi</dc:creator>
		
	<category>PHP</category>
		<guid isPermaLink="false">http://phpschnipsel.de/3/?p=12</guid>
		<description><![CDATA[mysql_insert_id() gibt ja bekanntlich den letzen Autoincrement eines mysql-INSERTs bzw eines UPDATES an. Diese Vorgehensweise kann aber den Nachteil haben, dass z.B. ein Trackingsystem, das bei jedem Seitenaufruf Daten in die Datenbank schreibt, diese insert_id verfälscht. Dafür gibt man normalerweise den link indentifier mit, also den Connection-Handler. Wenn mann aber mit PEAR:DB arbeitet, muss man [...]]]></description>
			<content:encoded><![CDATA[<p>mysql_insert_id() gibt ja bekanntlich den letzen Autoincrement eines mysql-INSERTs bzw eines UPDATES an. Diese Vorgehensweise kann aber den Nachteil haben, dass z.B. ein Trackingsystem, das bei jedem Seitenaufruf Daten in die Datenbank schreibt, diese insert_id verfälscht. Dafür gibt man normalerweise den link indentifier mit, also den Connection-Handler. Wenn mann aber mit PEAR:DB arbeitet, muss man schon etwas suchen.<br />
In der Klasse DB wird man fündig. Hier findet man die Eigenschaft $connection. Die Eigenschaft gibt man also seiner mysql_insert_id() einfach mit. Das ganze schaut dann etwa so aus: mysql_insert_id($db->connection). $db ist natürlich die entsprechende Objektinstanz.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://phpschnipsel.de/?feed=rss2&amp;p=12</wfw:commentRSS>
		</item>
		<item>
		<title>PHP 5.2.* unter SuSE 9 installieren</title>
		<link>http://phpschnipsel.de/?p=11</link>
		<comments>http://phpschnipsel.de/?p=11#comments</comments>
		<pubDate>Sun, 05 Mar 2006 11:09:50 +0000</pubDate>
		<dc:creator>tobi</dc:creator>
		
	<category>PHP</category>
		<guid isPermaLink="false">http://phpschnipsel.de/3/?p=11</guid>
		<description><![CDATA[Da es unter SuSE 9 keine offizielle PHP5 Version gibt, muss man sich selbst eine backen. Dieser Workshop zeigt wie und weist auf die Tücken hin, die bei diesem Update auftreten können. Dieses Tutorial funktioniert auf allen aktuellen 1&#038;1 Rootservern mit SuSE 9.1 oder SuSE 9.3 [und PLESK], kann aber auch in höheren Versionen klappen, [...]]]></description>
			<content:encoded><![CDATA[<p>Da es unter SuSE 9 keine offizielle PHP5 Version gibt, muss man sich selbst eine backen. Dieser Workshop zeigt wie und weist auf die Tücken hin, die bei diesem Update auftreten können. Dieses Tutorial funktioniert auf allen aktuellen 1&#038;1 Rootservern mit SuSE 9.1 oder SuSE 9.3 [und PLESK], kann aber auch in höheren Versionen klappen, sofern die Apache-Version sich nicht geändert hat.<br />
<a href="http://phpschnipsel.de/?page_id=14"> Zum Howto</a>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://phpschnipsel.de/?feed=rss2&amp;p=11</wfw:commentRSS>
		</item>
		<item>
		<title>mySQL-Backup über die Shell</title>
		<link>http://phpschnipsel.de/?p=10</link>
		<comments>http://phpschnipsel.de/?p=10#comments</comments>
		<pubDate>Wed, 08 Feb 2006 10:07:43 +0000</pubDate>
		<dc:creator>tobi</dc:creator>
		
	<category>PHP</category>
		<guid isPermaLink="false">http://phpschnipsel.de/3/?p=10</guid>
		<description><![CDATA[Oft werden Datenbanken so groß, dass man sie nicht mehr über Webinterfaces wie phpMyAdmin backuppen und einspielen kann. Dazu sollte man die Datenbank über die Shell sichern und wieder einspielen.
Dieses Beispiel zeigt wie man ein Backup von mySQL macht, dieses als gzip-File packt und später wieder einspielt.
PLAIN TEXT
CODE:




-&#62;EXPORT


mysqldump datenbankname -u username -p&#91;passwort&#93;&#62;sql_backup.sql


&#160;


tar -czf sql_backup.tar.gz sql_backup.sql


&#160;


-&#62;IMPORT


tar [...]]]></description>
			<content:encoded><![CDATA[<p>Oft werden Datenbanken so groß, dass man sie nicht mehr über Webinterfaces wie phpMyAdmin backuppen und einspielen kann. Dazu sollte man die Datenbank über die Shell sichern und wieder einspielen.<br />
Dieses Beispiel zeigt wie man ein Backup von mySQL macht, dieses als gzip-File packt und später wieder einspielt.</p>
<div class="igBar"><span id="lcode-24"><a href="#" onclick="javascript:showPlainTxt('code-24'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span><br />
<div id="code-24">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-&gt;<span style="">EXPORT</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">mysqldump datenbankname -u username -p<span style="color:#006600; font-weight:bold;">&#91;</span>passwort<span style="color:#006600; font-weight:bold;">&#93;</span>&gt;sql_backup.<span style="">sql</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">tar -czf sql_backup.<span style="">tar</span>.<span style="">gz</span> sql_backup.<span style="">sql</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-&gt;<span style="">IMPORT</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">tar -xzf sql_backup.<span style="">tar</span>.<span style="">gz</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">mysql -u username -p<span style="color:#006600; font-weight:bold;">&#91;</span>passwort<span style="color:#006600; font-weight:bold;">&#93;</span> datenbank &lt;sql_backup.<span style="">sql</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://phpschnipsel.de/?feed=rss2&amp;p=10</wfw:commentRSS>
		</item>
	</channel>
</rss>
