<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=178.2.225.133</id>
	<title>Wikizone - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=178.2.225.133"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Spezial:Beitr%C3%A4ge/178.2.225.133"/>
	<updated>2026-05-06T22:00:22Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=PHP_-_Tipps_und_Tricks&amp;diff=18899</id>
		<title>PHP - Tipps und Tricks</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=PHP_-_Tipps_und_Tricks&amp;diff=18899"/>
		<updated>2011-11-05T19:56:36Z</updated>

		<summary type="html">&lt;p&gt;178.2.225.133: /* Bilder schützen und nur über php ausliefern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bilder schützen und nur über php ausliefern ==&lt;br /&gt;
1a Schutz per htaccess, so daß nur Zugriffe vom eigenen Server zulässig sind.&lt;br /&gt;
1b. Verzeichnisrechte so setzen, daß nur php-Nutzer lesen kann (oder einfach ein schwer zu erratender Verzeichnisname) -&amp;gt; kann man aber z.B. mit iFrame umgehen ist also weniger als Schutz praktisch, reicht aber, wenn man zur Laufzeit eine andere Variante des Bildes liefern will.&lt;br /&gt;
2. PHP Skript liefert die Bilder -&amp;gt; hier kann man dann User Access, Zeitsteuerung etc. regeln.&lt;br /&gt;
&lt;br /&gt;
Beispiel htaccess:&lt;br /&gt;
&lt;br /&gt;
Zugriff auf das Verzeichnis nur über php nicht über direktzugriff &lt;br /&gt;
&lt;br /&gt;
 order deny,allow&lt;br /&gt;
 deny  from all&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hierbei sind auf Bilder nur Zugriffe von der eigenen Domain erlaubt, ansonsten kommt ein Ersatzbild. Eignet sich z.B. um Traffic durch Bilderklau vorzubeugen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{HTTP_REFERER} !^$&lt;br /&gt;
RewriteCond %{HTTP_REFERER} !^http://(www.)?mydomain.de(/.*)?$ [NC]&lt;br /&gt;
RewriteRule .(gif|jpg|GIF|JPG)$ http://www.myDomain.de/images/ersatz.gif [R,L]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
if ($_SESSION[&amp;#039;eingeloggt&amp;#039;] == true) {&lt;br /&gt;
   header(&amp;#039;Content-Type: image/jpeg&amp;#039;);&lt;br /&gt;
   readfile(&amp;#039;bild.jpg&amp;#039;);&lt;br /&gt;
} else {&lt;br /&gt;
   echo &amp;#039;Kein Direktzugriff erlaubt&amp;#039;; &lt;br /&gt;
}&lt;br /&gt;
?&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Beispiele mit htaccess:&lt;br /&gt;
&lt;br /&gt;
Beispiel mit Ersatzgrafik und mehreren URL&amp;#039;s:&lt;br /&gt;
Kann ja sein, dass man mehrere Homepages hat, die darauf zurückgreifen dürfen. Folgendes überträgst Du ins Notepad und speicherst es als .htaccess ab:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     RewriteEngine on&lt;br /&gt;
     RewriteCond %{HTTP_REFERER} !^$&lt;br /&gt;
     RewriteCond %{HTTP_REFERER} !^http://(www.)?webmaster-eye.de(/.*)?$ [NC]&lt;br /&gt;
     RewriteCond %{HTTP_REFERER} !^http://(www.)?mynickpage.de(/.*)?$ [NC]&lt;br /&gt;
     RewriteRule .(gif|jpg|GIF|JPG)$ http://www.webmaster-eye.de/images/ersatz.gif [R,L]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel mit dem roten X:&lt;br /&gt;
Folgendes überträgst Du ins Notepad und speicherst es als .htaccess ab:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     RewriteEngine on&lt;br /&gt;
     RewriteCond %{HTTP_REFERER} !^$&lt;br /&gt;
     RewriteCond %{HTTP_REFERER} !^http://(www.)?webmaster-eye.de(/.*)?$ [NC]&lt;br /&gt;
     RewriteRule .(gif|jpg)$ - [F]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quelle der htaccess Beispiele: http://www.webmaster-eye.de/Traffic-sparen-mit-htaccess-als-Bilder-Schutz.242.artikel.html (11/2011)&lt;br /&gt;
&lt;br /&gt;
== Weiterleitung mit PHP ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 header(&amp;quot;Location: http://www.myHomepage.net&amp;quot;);&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Ausgaben zwischenspeichern oder in Variablen umleiten ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Problem: Die Ausgabe von echo oder von includes soll zuerst in einer Variablen gespeichert werden, damit Sie nicht gleich ausgegeben werden.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
Das läßt sich lösen indem man die Ausgabe zunächst puffert und dann den Puffer in eine Variable lädt.&lt;br /&gt;
 basicartsstudios at hotmail dot com&lt;br /&gt;
21-Jan-2007 10:39&lt;br /&gt;
Sometimes you might not want to include a php-file under the specifications defined in the functions include() or require(), but you might want to have in return the string that the script in the file &amp;quot;echoes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Include() and require() both directly put out the evaluated code.&lt;br /&gt;
&lt;br /&gt;
For avoiding this, try output-buffering:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
ob_start();&lt;br /&gt;
eval(file_get_contents($file));&lt;br /&gt;
$result = ob_get_contents();&lt;br /&gt;
ob_end_clean();&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
ob_start();&lt;br /&gt;
include($file);&lt;br /&gt;
$result = ob_get_contents();&lt;br /&gt;
ob_end_clean();&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which i consider the same, correct me if I&amp;#039;m wrong.&lt;br /&gt;
&lt;br /&gt;
Best regards, BasicArtsStudios&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Umlaute, UTF-8 und PHP: wenn Sonderzeichen falsch dargestellt werden ==&lt;br /&gt;
Quelle: http://www.sjmfreelancing.de/devblog/umlaute-utf-8-und-php.html (15.10.2008)&lt;br /&gt;
&lt;br /&gt;
Ich habe des öfteren das Problem gehabt, dass Sonderzeichen auf PHP-basierten Internetseiten nicht korrekt angezeigt wurden und Firefox ein gerahmtes Fragezeichen statt Ü, ü etc. ausgab, der Internet Explorer einen Kasten und auch Safari&amp;amp;Co. Probleme hatten.&lt;br /&gt;
&lt;br /&gt;
Lange war ich auf der Suche nach der richtigen Lösung für dieses Problem und habe mich durch unterschiedliche Blogs, Foren und Internetseiten gewühlt bis ich letztendlich eine Ansammlung verschiedenster Tipps &amp;amp; Tricks aufgenommen und in Kombination angewandt habe. Und siehe da: Sonderzeichen sind korrekt :)&lt;br /&gt;
&lt;br /&gt;
Hier ein paar Dinge, die jeder Programmierer beherzigen sollte, wenn er mit Umlauten umgeht:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Header korrekt setzen&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Mit einem Einzeiler kann man PHP dazu bringen einen UTF-8-Header an den Browser zu senden. Einfach folgenden Code ganz oben in der Index-Datei setzen:&lt;br /&gt;
&lt;br /&gt;
 header(&amp;#039;content-type: text/html; charset=UTF-8&amp;#039;);  &lt;br /&gt;
&lt;br /&gt;
2. HTML-Header korrekt setzen&lt;br /&gt;
&lt;br /&gt;
Folgenden Code in den HEAD-Bereich des HTML-Dokuments setzen:&lt;br /&gt;
view plaincopy to clipboardprint?&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. PHP-Dateien im UTF-8-Format speichern&lt;br /&gt;
&lt;br /&gt;
Ganz wichtig ist es die PHP-Dateien die man verwendet im UTF-8-Format zu speichern. Sprich: den Editor dazu zu bringen, die Datei mit Umlauten zu speichern.&lt;br /&gt;
4. MySQL dazu bewegen UTF-8 zu nutzen&lt;br /&gt;
&lt;br /&gt;
MySQL liefert auch nicht (immer) von Haus aus UTF-8-korrekte Ausgaben. Folgendes MySQL-Query einfach nach dem connecten mit der Datenbank ausführen:&lt;br /&gt;
&lt;br /&gt;
 mysql_query(&amp;#039;set character set utf8;&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
5. Das &amp;amp;-Zeichen immer escapen&lt;br /&gt;
&lt;br /&gt;
Zwar nicht direkt ein Problem, aber: ü, ä, ß etc. sind auch dann korrektes HTML, wenn man sie nicht mittels htmlentities in Entitäten umgewandelt hat. Anders sieht es mit dem Kaufmanns-Und (&amp;amp;) aus: diesen IMMER mit &amp;amp;amp; ausgeben. Auch bei Links gilt: &amp;amp; durch &amp;lt;code&amp;gt;&amp;amp;amp;&amp;lt;/code&amp;gt; ersetzen!&lt;br /&gt;
&lt;br /&gt;
== Validieren von Werten aus Eingabefeldern ==&lt;br /&gt;
[[PHP - Validierung von Werten aus Eingabefeldern]]&lt;br /&gt;
&lt;br /&gt;
== Sicherheit in PHP Skripts ==&lt;/div&gt;</summary>
		<author><name>178.2.225.133</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=PHP_-_Tipps_und_Tricks&amp;diff=18898</id>
		<title>PHP - Tipps und Tricks</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=PHP_-_Tipps_und_Tricks&amp;diff=18898"/>
		<updated>2011-11-05T09:53:05Z</updated>

		<summary type="html">&lt;p&gt;178.2.225.133: /* Bilder schützen und nur über php ausliefern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bilder schützen und nur über php ausliefern ==&lt;br /&gt;
1a Schutz per htaccess, so daß nur Zugriffe vom eigenen Server zulässig sind.&lt;br /&gt;
1b. Verzeichnisrechte so setzen, daß nur php-Nutzer lesen kann (oder einfach ein schwer zu erratender Verzeichnisname) -&amp;gt; kann man aber z.B. mit iFrame umgehen ist also weniger als Schutz praktisch, reicht aber, wenn man zur Laufzeit eine andere Variante des Bildes liefern will.&lt;br /&gt;
2. PHP Skript liefert die Bilder -&amp;gt; hier kann man dann User Access, Zeitsteuerung etc. regeln.&lt;br /&gt;
&lt;br /&gt;
Beispiel htaccess:&lt;br /&gt;
&lt;br /&gt;
Hierbei sind auf Bilder nur Zugriffe von der eigenen Domain erlaubt, ansonsten kommt ein Ersatzbild. Eignet sich z.B. um Traffic durch Bilderklau vorzubeugen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{HTTP_REFERER} !^$&lt;br /&gt;
RewriteCond %{HTTP_REFERER} !^http://(www.)?mydomain.de(/.*)?$ [NC]&lt;br /&gt;
RewriteRule .(gif|jpg|GIF|JPG)$ http://www.myDomain.de/images/ersatz.gif [R,L]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
if ($_SESSION[&amp;#039;eingeloggt&amp;#039;] == true) {&lt;br /&gt;
   header(&amp;#039;Content-Type: image/jpeg&amp;#039;);&lt;br /&gt;
   readfile(&amp;#039;bild.jpg&amp;#039;);&lt;br /&gt;
} else {&lt;br /&gt;
   echo &amp;#039;Kein Direktzugriff erlaubt&amp;#039;; &lt;br /&gt;
}&lt;br /&gt;
?&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Beispiele mit htaccess:&lt;br /&gt;
&lt;br /&gt;
Beispiel mit Ersatzgrafik und mehreren URL&amp;#039;s:&lt;br /&gt;
Kann ja sein, dass man mehrere Homepages hat, die darauf zurückgreifen dürfen. Folgendes überträgst Du ins Notepad und speicherst es als .htaccess ab:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     RewriteEngine on&lt;br /&gt;
     RewriteCond %{HTTP_REFERER} !^$&lt;br /&gt;
     RewriteCond %{HTTP_REFERER} !^http://(www.)?webmaster-eye.de(/.*)?$ [NC]&lt;br /&gt;
     RewriteCond %{HTTP_REFERER} !^http://(www.)?mynickpage.de(/.*)?$ [NC]&lt;br /&gt;
     RewriteRule .(gif|jpg|GIF|JPG)$ http://www.webmaster-eye.de/images/ersatz.gif [R,L]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel mit dem roten X:&lt;br /&gt;
Folgendes überträgst Du ins Notepad und speicherst es als .htaccess ab:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     RewriteEngine on&lt;br /&gt;
     RewriteCond %{HTTP_REFERER} !^$&lt;br /&gt;
     RewriteCond %{HTTP_REFERER} !^http://(www.)?webmaster-eye.de(/.*)?$ [NC]&lt;br /&gt;
     RewriteRule .(gif|jpg)$ - [F]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quelle der htaccess Beispiele: http://www.webmaster-eye.de/Traffic-sparen-mit-htaccess-als-Bilder-Schutz.242.artikel.html (11/2011)&lt;br /&gt;
&lt;br /&gt;
== Weiterleitung mit PHP ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 header(&amp;quot;Location: http://www.myHomepage.net&amp;quot;);&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Ausgaben zwischenspeichern oder in Variablen umleiten ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Problem: Die Ausgabe von echo oder von includes soll zuerst in einer Variablen gespeichert werden, damit Sie nicht gleich ausgegeben werden.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
Das läßt sich lösen indem man die Ausgabe zunächst puffert und dann den Puffer in eine Variable lädt.&lt;br /&gt;
 basicartsstudios at hotmail dot com&lt;br /&gt;
21-Jan-2007 10:39&lt;br /&gt;
Sometimes you might not want to include a php-file under the specifications defined in the functions include() or require(), but you might want to have in return the string that the script in the file &amp;quot;echoes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Include() and require() both directly put out the evaluated code.&lt;br /&gt;
&lt;br /&gt;
For avoiding this, try output-buffering:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
ob_start();&lt;br /&gt;
eval(file_get_contents($file));&lt;br /&gt;
$result = ob_get_contents();&lt;br /&gt;
ob_end_clean();&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
ob_start();&lt;br /&gt;
include($file);&lt;br /&gt;
$result = ob_get_contents();&lt;br /&gt;
ob_end_clean();&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which i consider the same, correct me if I&amp;#039;m wrong.&lt;br /&gt;
&lt;br /&gt;
Best regards, BasicArtsStudios&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Umlaute, UTF-8 und PHP: wenn Sonderzeichen falsch dargestellt werden ==&lt;br /&gt;
Quelle: http://www.sjmfreelancing.de/devblog/umlaute-utf-8-und-php.html (15.10.2008)&lt;br /&gt;
&lt;br /&gt;
Ich habe des öfteren das Problem gehabt, dass Sonderzeichen auf PHP-basierten Internetseiten nicht korrekt angezeigt wurden und Firefox ein gerahmtes Fragezeichen statt Ü, ü etc. ausgab, der Internet Explorer einen Kasten und auch Safari&amp;amp;Co. Probleme hatten.&lt;br /&gt;
&lt;br /&gt;
Lange war ich auf der Suche nach der richtigen Lösung für dieses Problem und habe mich durch unterschiedliche Blogs, Foren und Internetseiten gewühlt bis ich letztendlich eine Ansammlung verschiedenster Tipps &amp;amp; Tricks aufgenommen und in Kombination angewandt habe. Und siehe da: Sonderzeichen sind korrekt :)&lt;br /&gt;
&lt;br /&gt;
Hier ein paar Dinge, die jeder Programmierer beherzigen sollte, wenn er mit Umlauten umgeht:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Header korrekt setzen&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Mit einem Einzeiler kann man PHP dazu bringen einen UTF-8-Header an den Browser zu senden. Einfach folgenden Code ganz oben in der Index-Datei setzen:&lt;br /&gt;
&lt;br /&gt;
 header(&amp;#039;content-type: text/html; charset=UTF-8&amp;#039;);  &lt;br /&gt;
&lt;br /&gt;
2. HTML-Header korrekt setzen&lt;br /&gt;
&lt;br /&gt;
Folgenden Code in den HEAD-Bereich des HTML-Dokuments setzen:&lt;br /&gt;
view plaincopy to clipboardprint?&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. PHP-Dateien im UTF-8-Format speichern&lt;br /&gt;
&lt;br /&gt;
Ganz wichtig ist es die PHP-Dateien die man verwendet im UTF-8-Format zu speichern. Sprich: den Editor dazu zu bringen, die Datei mit Umlauten zu speichern.&lt;br /&gt;
4. MySQL dazu bewegen UTF-8 zu nutzen&lt;br /&gt;
&lt;br /&gt;
MySQL liefert auch nicht (immer) von Haus aus UTF-8-korrekte Ausgaben. Folgendes MySQL-Query einfach nach dem connecten mit der Datenbank ausführen:&lt;br /&gt;
&lt;br /&gt;
 mysql_query(&amp;#039;set character set utf8;&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
5. Das &amp;amp;-Zeichen immer escapen&lt;br /&gt;
&lt;br /&gt;
Zwar nicht direkt ein Problem, aber: ü, ä, ß etc. sind auch dann korrektes HTML, wenn man sie nicht mittels htmlentities in Entitäten umgewandelt hat. Anders sieht es mit dem Kaufmanns-Und (&amp;amp;) aus: diesen IMMER mit &amp;amp;amp; ausgeben. Auch bei Links gilt: &amp;amp; durch &amp;lt;code&amp;gt;&amp;amp;amp;&amp;lt;/code&amp;gt; ersetzen!&lt;br /&gt;
&lt;br /&gt;
== Validieren von Werten aus Eingabefeldern ==&lt;br /&gt;
[[PHP - Validierung von Werten aus Eingabefeldern]]&lt;br /&gt;
&lt;br /&gt;
== Sicherheit in PHP Skripts ==&lt;/div&gt;</summary>
		<author><name>178.2.225.133</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=PHP_-_Tipps_und_Tricks&amp;diff=18897</id>
		<title>PHP - Tipps und Tricks</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=PHP_-_Tipps_und_Tricks&amp;diff=18897"/>
		<updated>2011-11-05T09:51:35Z</updated>

		<summary type="html">&lt;p&gt;178.2.225.133: /* Bilder schützen und nur über php ausliefern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bilder schützen und nur über php ausliefern ==&lt;br /&gt;
1a Schutz per htaccess, so daß nur Zugriffe vom eigenen Server zulässig sind.&lt;br /&gt;
1b. Verzeichnisrechte so setzen, daß nur php-Nutzer lesen kann (oder einfach ein schwer zu erratender Verzeichnisname) -&amp;gt; kann man aber z.B. mit iFrame umgehen ist also weniger als Schutz praktisch, reicht aber, wenn man zur Laufzeit eine andere Variante des Bildes liefern will.&lt;br /&gt;
2. PHP Skript liefert die Bilder -&amp;gt; hier kann man dann User Access, Zeitsteuerung etc. regeln.&lt;br /&gt;
&lt;br /&gt;
Beispiel htaccess:&lt;br /&gt;
&lt;br /&gt;
Hierbei sind auf Bilder nur Zugriffe von der eigenen Domain erlaubt, ansonsten kommt ein Ersatzbild. Eignet sich z.B. um Traffic durch Bilderklau vorzubeugen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{HTTP_REFERER} !^$&lt;br /&gt;
RewriteCond %{HTTP_REFERER} !^http://(www.)?mydomain.de(/.*)?$ [NC]&lt;br /&gt;
RewriteRule .(gif|jpg|GIF|JPG)$ http://www.myDomain.de/images/ersatz.gif [R,L]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
if ($_SESSION[&amp;#039;eingeloggt&amp;#039;] == true) {&lt;br /&gt;
   header(&amp;#039;Content-Type: image/jpeg&amp;#039;);&lt;br /&gt;
   readfile(&amp;#039;bild.jpg&amp;#039;);&lt;br /&gt;
} else {&lt;br /&gt;
   echo &amp;#039;Kein Direktzugriff erlaubt&amp;#039;; &lt;br /&gt;
}&lt;br /&gt;
?&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weiterleitung mit PHP ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 header(&amp;quot;Location: http://www.myHomepage.net&amp;quot;);&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Ausgaben zwischenspeichern oder in Variablen umleiten ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Problem: Die Ausgabe von echo oder von includes soll zuerst in einer Variablen gespeichert werden, damit Sie nicht gleich ausgegeben werden.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
Das läßt sich lösen indem man die Ausgabe zunächst puffert und dann den Puffer in eine Variable lädt.&lt;br /&gt;
 basicartsstudios at hotmail dot com&lt;br /&gt;
21-Jan-2007 10:39&lt;br /&gt;
Sometimes you might not want to include a php-file under the specifications defined in the functions include() or require(), but you might want to have in return the string that the script in the file &amp;quot;echoes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Include() and require() both directly put out the evaluated code.&lt;br /&gt;
&lt;br /&gt;
For avoiding this, try output-buffering:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
ob_start();&lt;br /&gt;
eval(file_get_contents($file));&lt;br /&gt;
$result = ob_get_contents();&lt;br /&gt;
ob_end_clean();&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
ob_start();&lt;br /&gt;
include($file);&lt;br /&gt;
$result = ob_get_contents();&lt;br /&gt;
ob_end_clean();&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which i consider the same, correct me if I&amp;#039;m wrong.&lt;br /&gt;
&lt;br /&gt;
Best regards, BasicArtsStudios&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Umlaute, UTF-8 und PHP: wenn Sonderzeichen falsch dargestellt werden ==&lt;br /&gt;
Quelle: http://www.sjmfreelancing.de/devblog/umlaute-utf-8-und-php.html (15.10.2008)&lt;br /&gt;
&lt;br /&gt;
Ich habe des öfteren das Problem gehabt, dass Sonderzeichen auf PHP-basierten Internetseiten nicht korrekt angezeigt wurden und Firefox ein gerahmtes Fragezeichen statt Ü, ü etc. ausgab, der Internet Explorer einen Kasten und auch Safari&amp;amp;Co. Probleme hatten.&lt;br /&gt;
&lt;br /&gt;
Lange war ich auf der Suche nach der richtigen Lösung für dieses Problem und habe mich durch unterschiedliche Blogs, Foren und Internetseiten gewühlt bis ich letztendlich eine Ansammlung verschiedenster Tipps &amp;amp; Tricks aufgenommen und in Kombination angewandt habe. Und siehe da: Sonderzeichen sind korrekt :)&lt;br /&gt;
&lt;br /&gt;
Hier ein paar Dinge, die jeder Programmierer beherzigen sollte, wenn er mit Umlauten umgeht:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Header korrekt setzen&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Mit einem Einzeiler kann man PHP dazu bringen einen UTF-8-Header an den Browser zu senden. Einfach folgenden Code ganz oben in der Index-Datei setzen:&lt;br /&gt;
&lt;br /&gt;
 header(&amp;#039;content-type: text/html; charset=UTF-8&amp;#039;);  &lt;br /&gt;
&lt;br /&gt;
2. HTML-Header korrekt setzen&lt;br /&gt;
&lt;br /&gt;
Folgenden Code in den HEAD-Bereich des HTML-Dokuments setzen:&lt;br /&gt;
view plaincopy to clipboardprint?&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. PHP-Dateien im UTF-8-Format speichern&lt;br /&gt;
&lt;br /&gt;
Ganz wichtig ist es die PHP-Dateien die man verwendet im UTF-8-Format zu speichern. Sprich: den Editor dazu zu bringen, die Datei mit Umlauten zu speichern.&lt;br /&gt;
4. MySQL dazu bewegen UTF-8 zu nutzen&lt;br /&gt;
&lt;br /&gt;
MySQL liefert auch nicht (immer) von Haus aus UTF-8-korrekte Ausgaben. Folgendes MySQL-Query einfach nach dem connecten mit der Datenbank ausführen:&lt;br /&gt;
&lt;br /&gt;
 mysql_query(&amp;#039;set character set utf8;&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
5. Das &amp;amp;-Zeichen immer escapen&lt;br /&gt;
&lt;br /&gt;
Zwar nicht direkt ein Problem, aber: ü, ä, ß etc. sind auch dann korrektes HTML, wenn man sie nicht mittels htmlentities in Entitäten umgewandelt hat. Anders sieht es mit dem Kaufmanns-Und (&amp;amp;) aus: diesen IMMER mit &amp;amp;amp; ausgeben. Auch bei Links gilt: &amp;amp; durch &amp;lt;code&amp;gt;&amp;amp;amp;&amp;lt;/code&amp;gt; ersetzen!&lt;br /&gt;
&lt;br /&gt;
== Validieren von Werten aus Eingabefeldern ==&lt;br /&gt;
[[PHP - Validierung von Werten aus Eingabefeldern]]&lt;br /&gt;
&lt;br /&gt;
== Sicherheit in PHP Skripts ==&lt;/div&gt;</summary>
		<author><name>178.2.225.133</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=PHP_-_Tipps_und_Tricks&amp;diff=18896</id>
		<title>PHP - Tipps und Tricks</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=PHP_-_Tipps_und_Tricks&amp;diff=18896"/>
		<updated>2011-11-05T08:25:43Z</updated>

		<summary type="html">&lt;p&gt;178.2.225.133: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bilder schützen und nur über php ausliefern ==&lt;br /&gt;
1. Verzeichnisrechte so setzen, daß nur php-Nutzer lesen kann (oder einfach ein schwer zu erratender Verzeichnisname)&lt;br /&gt;
2. PHP Skript liefert die Bilder -&amp;gt; hier kann man dann User Access, Zeitsteuerung etc. regeln.&lt;br /&gt;
&lt;br /&gt;
Beispiel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
if ($_SESSION[&amp;#039;eingeloggt&amp;#039;] == true) {&lt;br /&gt;
   header(&amp;#039;Content-Type: image/jpeg&amp;#039;);&lt;br /&gt;
   readfile(&amp;#039;bild.jpg&amp;#039;);&lt;br /&gt;
} else {&lt;br /&gt;
   echo &amp;#039;Kein Direktzugriff erlaubt&amp;#039;; &lt;br /&gt;
}&lt;br /&gt;
?&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weiterleitung mit PHP ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 header(&amp;quot;Location: http://www.myHomepage.net&amp;quot;);&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Ausgaben zwischenspeichern oder in Variablen umleiten ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Problem: Die Ausgabe von echo oder von includes soll zuerst in einer Variablen gespeichert werden, damit Sie nicht gleich ausgegeben werden.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
Das läßt sich lösen indem man die Ausgabe zunächst puffert und dann den Puffer in eine Variable lädt.&lt;br /&gt;
 basicartsstudios at hotmail dot com&lt;br /&gt;
21-Jan-2007 10:39&lt;br /&gt;
Sometimes you might not want to include a php-file under the specifications defined in the functions include() or require(), but you might want to have in return the string that the script in the file &amp;quot;echoes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Include() and require() both directly put out the evaluated code.&lt;br /&gt;
&lt;br /&gt;
For avoiding this, try output-buffering:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
ob_start();&lt;br /&gt;
eval(file_get_contents($file));&lt;br /&gt;
$result = ob_get_contents();&lt;br /&gt;
ob_end_clean();&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
ob_start();&lt;br /&gt;
include($file);&lt;br /&gt;
$result = ob_get_contents();&lt;br /&gt;
ob_end_clean();&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which i consider the same, correct me if I&amp;#039;m wrong.&lt;br /&gt;
&lt;br /&gt;
Best regards, BasicArtsStudios&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Umlaute, UTF-8 und PHP: wenn Sonderzeichen falsch dargestellt werden ==&lt;br /&gt;
Quelle: http://www.sjmfreelancing.de/devblog/umlaute-utf-8-und-php.html (15.10.2008)&lt;br /&gt;
&lt;br /&gt;
Ich habe des öfteren das Problem gehabt, dass Sonderzeichen auf PHP-basierten Internetseiten nicht korrekt angezeigt wurden und Firefox ein gerahmtes Fragezeichen statt Ü, ü etc. ausgab, der Internet Explorer einen Kasten und auch Safari&amp;amp;Co. Probleme hatten.&lt;br /&gt;
&lt;br /&gt;
Lange war ich auf der Suche nach der richtigen Lösung für dieses Problem und habe mich durch unterschiedliche Blogs, Foren und Internetseiten gewühlt bis ich letztendlich eine Ansammlung verschiedenster Tipps &amp;amp; Tricks aufgenommen und in Kombination angewandt habe. Und siehe da: Sonderzeichen sind korrekt :)&lt;br /&gt;
&lt;br /&gt;
Hier ein paar Dinge, die jeder Programmierer beherzigen sollte, wenn er mit Umlauten umgeht:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Header korrekt setzen&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Mit einem Einzeiler kann man PHP dazu bringen einen UTF-8-Header an den Browser zu senden. Einfach folgenden Code ganz oben in der Index-Datei setzen:&lt;br /&gt;
&lt;br /&gt;
 header(&amp;#039;content-type: text/html; charset=UTF-8&amp;#039;);  &lt;br /&gt;
&lt;br /&gt;
2. HTML-Header korrekt setzen&lt;br /&gt;
&lt;br /&gt;
Folgenden Code in den HEAD-Bereich des HTML-Dokuments setzen:&lt;br /&gt;
view plaincopy to clipboardprint?&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. PHP-Dateien im UTF-8-Format speichern&lt;br /&gt;
&lt;br /&gt;
Ganz wichtig ist es die PHP-Dateien die man verwendet im UTF-8-Format zu speichern. Sprich: den Editor dazu zu bringen, die Datei mit Umlauten zu speichern.&lt;br /&gt;
4. MySQL dazu bewegen UTF-8 zu nutzen&lt;br /&gt;
&lt;br /&gt;
MySQL liefert auch nicht (immer) von Haus aus UTF-8-korrekte Ausgaben. Folgendes MySQL-Query einfach nach dem connecten mit der Datenbank ausführen:&lt;br /&gt;
&lt;br /&gt;
 mysql_query(&amp;#039;set character set utf8;&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
5. Das &amp;amp;-Zeichen immer escapen&lt;br /&gt;
&lt;br /&gt;
Zwar nicht direkt ein Problem, aber: ü, ä, ß etc. sind auch dann korrektes HTML, wenn man sie nicht mittels htmlentities in Entitäten umgewandelt hat. Anders sieht es mit dem Kaufmanns-Und (&amp;amp;) aus: diesen IMMER mit &amp;amp;amp; ausgeben. Auch bei Links gilt: &amp;amp; durch &amp;lt;code&amp;gt;&amp;amp;amp;&amp;lt;/code&amp;gt; ersetzen!&lt;br /&gt;
&lt;br /&gt;
== Validieren von Werten aus Eingabefeldern ==&lt;br /&gt;
[[PHP - Validierung von Werten aus Eingabefeldern]]&lt;br /&gt;
&lt;br /&gt;
== Sicherheit in PHP Skripts ==&lt;/div&gt;</summary>
		<author><name>178.2.225.133</name></author>
	</entry>
</feed>