<?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>PHP,CGI &amp; Co. &#8211; EGM Weblog &#8211; Archive Edition</title>
	<atom:link href="https://www.weblog.co.at/kategorie/php-cgi-co/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.weblog.co.at</link>
	<description>Wordpress Experte Wien &#124; Fotografie &#124; Layout</description>
	<lastBuildDate>Sun, 24 Nov 2024 10:50:43 +0000</lastBuildDate>
	<language>de-AT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>

<image>
	<url>https://weblog.co.at/wp-content/uploads/sites/5/cropped-egmlogo_dunkel_512-36x36.jpg</url>
	<title>PHP,CGI &amp; Co. &#8211; EGM Weblog &#8211; Archive Edition</title>
	<link>https://www.weblog.co.at</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WordPress: verwendetes Template anzeigen</title>
		<link>https://www.weblog.co.at/wordpress-verwendetes-template-anzeigen/</link>
					<comments>https://www.weblog.co.at/wordpress-verwendetes-template-anzeigen/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Mon, 22 Jun 2015 09:59:00 +0000</pubDate>
				<category><![CDATA[PHP,CGI & Co.]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[functions.php]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://www.egm.at/weblog/?p=5013</guid>

					<description><![CDATA[Wenn man WordPress-Themes entwickelt oder den Auftrag zur Weiterbearbeitung bekommt, ist es oft wichtig herauszufinden, mit welcher Template-Datei die aktuell angezeigte Seite gerendert wird. Das lässt sich einfach herausfinden: einfach den folgenden Codeschnipsel in die Datei functions.php des verwendeten Themes kopieren, dann wird die verwendete Template-Datei in einem HTML-Kommentar im Header der Seite ausgegeben:]]></description>
										<content:encoded><![CDATA[
<p>Wenn man WordPress-Themes entwickelt oder den Auftrag zur Weiterbearbeitung bekommt, ist es oft wichtig herauszufinden, mit welcher Template-Datei die aktuell angezeigte Seite gerendert wird. Das lässt sich einfach herausfinden: einfach den folgenden Codeschnipsel in die Datei <em>functions.php</em> des verwendeten Themes kopieren, dann wird die verwendete Template-Datei in einem HTML-Kommentar im Header der Seite ausgegeben:</p>



<pre class="wp-block-code"><code lang="php" class="language-php"><code lang="php">add_action('wp_head', 'show_template');

function show_template() {

	global $template;

	echo '\n\n&lt;!--// Template: '; print_r($template); echo '//-->\n\n';

}</code></code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.weblog.co.at/wordpress-verwendetes-template-anzeigen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Per PHP &#038; CSS ein Logo größtmöglich in einen Kreis einsetzen</title>
		<link>https://www.weblog.co.at/per-php-css-ein-logo-grostmoglich-in-einen-kreis-einsetzen/</link>
					<comments>https://www.weblog.co.at/per-php-css-ein-logo-grostmoglich-in-einen-kreis-einsetzen/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Tue, 22 Jan 2013 12:24:22 +0000</pubDate>
				<category><![CDATA[HTML,CSS & Co.]]></category>
		<category><![CDATA[PHP,CGI & Co.]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[kreis]]></category>
		<category><![CDATA[logo]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[timthumb]]></category>
		<guid isPermaLink="false">https://www.egm.at/weblog/?p=4631</guid>

					<description><![CDATA[Für ein aktuelles WordPress-Kundenprojekt sollen Firmenlogos automatisiert vor einem kreisförmigen Hintergrund dargestellt werden. Die Aufgabenstellung war, die Logos trotz unterschiedlicher Seitenverhältnisse  größtmöglich in den Kreis einzupassen, ohne dass eines irgendwo über den Rand drüberschaut.  Mit Unterstufenmathematik recht einfach gelöst, nur wissen muss mans ;-) Das Grundsetup: ein quadratisches DIV mit dem Kreis als Hintergrund, vor ... <a title="Per PHP &#038; CSS ein Logo größtmöglich in einen Kreis einsetzen" class="read-more" href="https://www.weblog.co.at/per-php-css-ein-logo-grostmoglich-in-einen-kreis-einsetzen/" aria-label="Mehr Informationen über Per PHP &#038; CSS ein Logo größtmöglich in einen Kreis einsetzen">weiterlesen</a>]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="size-full wp-image-4632 alignright" style="border: 1px solid #ff0000; padding: 0;" alt="Rechteckiges Logo" src="https://weblog.egm.at/wp-content/uploads/sites/5/howto1.png" width="122" height="121" srcset="https://weblog.co.at/wp-content/uploads/sites/5/howto1.png 122w, https://weblog.co.at/wp-content/uploads/sites/5/howto1-80x80.png 80w, https://weblog.co.at/wp-content/uploads/sites/5/howto1-36x36.png 36w" sizes="(max-width: 122px) 100vw, 122px" /> <img decoding="async" class="size-medium wp-image-4633 alignright" style="border: 1px solid #ff0000; padding: 0;" alt="Fast quadratisches Logo" src="https://weblog.egm.at/wp-content/uploads/sites/5/howto2.png" width="122" height="121" srcset="https://weblog.co.at/wp-content/uploads/sites/5/howto2.png 122w, https://weblog.co.at/wp-content/uploads/sites/5/howto2-80x80.png 80w, https://weblog.co.at/wp-content/uploads/sites/5/howto2-36x36.png 36w" sizes="(max-width: 122px) 100vw, 122px" />Für ein aktuelles WordPress-Kundenprojekt sollen Firmenlogos automatisiert vor einem kreisförmigen Hintergrund dargestellt werden. Die Aufgabenstellung war, die Logos trotz unterschiedlicher Seitenverhältnisse  größtmöglich in den Kreis einzupassen, ohne dass eines irgendwo über den Rand drüberschaut.  Mit Unterstufenmathematik recht einfach gelöst, nur wissen muss mans ;-)<span id="more-4631"></span></p>
<p>Das Grundsetup: ein quadratisches DIV mit dem Kreis als Hintergrund, vor diesem soll das Logo dargestellt werden. Das HTML/PHP dazu:</p>
<pre lang="php">&lt;div class="kreis"&gt;&lt;img style="position: absolute; left: ?px; top: ?px;" alt="" src="logo.jpg" width="?" height="?" /&gt;&lt;/div&gt;</pre>
<p>mit den einfachen CSS-Angaben</p>
<pre lang="css">.kreis {
position: relative;
background: url(kreis.png);
width: 122px;
height: 122px; }
.kreis img {
position: absolute; }</pre>
<p><img decoding="async" class="alignleft size-full wp-image-4640" style="border: 1px solid #ff0000; padding: 0px;" alt="gesuchte Werte" src="https://weblog.egm.at/wp-content/uploads/sites/5/howto3.png" width="122" height="121" srcset="https://weblog.co.at/wp-content/uploads/sites/5/howto3.png 122w, https://weblog.co.at/wp-content/uploads/sites/5/howto3-80x80.png 80w, https://weblog.co.at/wp-content/uploads/sites/5/howto3-36x36.png 36w" sizes="(max-width: 122px) 100vw, 122px" />Die Logos haben aber sehr unterschiedliche Seitenverhältnisse, somit ändert sich mit jedem dargestellten Logo die maximal mögliche Breite und Höhe sowie die Darstellungsposition. Ich benötigte also ein Codeschnipsel, das mir diese Werte je nach Logo korrekt ermittelt. Mit ein wenig Unterstufenmathematik war das kein Problem:</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-4651 alignright" style="border: 1px solid #ff0000; padding: 0px;" alt="Dreieck" src="https://weblog.egm.at/wp-content/uploads/sites/5/howto4a.png" width="122" height="121" srcset="https://weblog.co.at/wp-content/uploads/sites/5/howto4a.png 122w, https://weblog.co.at/wp-content/uploads/sites/5/howto4a-80x80.png 80w, https://weblog.co.at/wp-content/uploads/sites/5/howto4a-36x36.png 36w" sizes="auto, (max-width: 122px) 100vw, 122px" />Man braucht den Radius des Kreises sowie die Originalbreite und -höhe der Logodatei. Wenn man sich das Logo im Kreis anschaut, gibts ein rechtwinkeliges Dreieck, dessen Informationen wir verwenden können, um die neue Breite und Höhe sowie die Position des Logos auszurechnen. Das Dreieck besteht aus der Diagonale des Logos (die immer dem doppelten Kreisradius entspricht!) sowie der gesuchten Logobreite und der gesuchten Logohöhe.</p>
<p>Wenn wir das Originallogo hernehmen, findet sich dort dasselbe Dreieck, nur größer. Man darf daher zu Recht davon ausgehen, dass die Winkel in diesem Dreieck gleich denen in unserem gesuchten Dreieck im verkleinerten Logo sind. Im rechtwinkeligen Dreieck gilt:</p>
<p style="padding-left: 30px;"><em>tan Î± = Gegenkathete / Ankathete</em></p>
<p>Diese beiden haben wir &#8211; die Gegenkathete ist die Höhe des Logos, die Ankathete ist die Breite. Originalbreite &amp; -höhe des Logos kann man mit der PHP-Funktion <em>getimagesize()</em> auslesen.</p>
<p style="padding-left: 30px;"><em>tan Î± = h/b</em></p>
<p style="padding-left: 30px;"><em>Î± = arctan(h/b)</em></p>
<p>Damit haben wir den Winkel <em>Î±</em> &#8211; und dieser ist im Mini-Logo gleich wie in der Originaldatei! Und somit ist das Errechnen der restlichen Dreieckseiten im Mini-Logo wirklich einfach:</p>
<p style="padding-left: 30px;"><em>sin Î± = Gegenkathete / Hypotenuse</em></p>
<p>Die Hypotenuse ist der doppelte Kreisradius r (den wissen wir), die Gegenkathete ist die Logohöhe, die wir errechnen wollen. Somit ergibt sich:</p>
<p style="padding-left: 30px;"><em>sin Î± = h / (2 * r)</em></p>
<p style="padding-left: 30px;"><em>sin Î± * r * 2 = h </em></p>
<p>Somit haben wir die Höhe des verkleinerten Logos, die sich innerhalb des Kreises ausgeht.</p>
<p style="padding-left: 30px;"><em>cos Î± = Ankathete / Hypotenuse</em></p>
<p>Die Hypotenuse ist wiederum der doppelte Kreisradius r , die Ankathete ist die Logobreite. Somit ergibt sich:</p>
<p style="padding-left: 30px;"><em>cos Î± = b/ (2 *  r)</em></p>
<p style="padding-left: 30px;"><em>cos Î± * r * 2 = b</em></p>
<p>Sinnvollerweise sollte man Höhe und Breite noch via PHP mit <em>round()</em> behandeln, damit ganze Zahlen rauskommen.</p>
<p><img loading="lazy" decoding="async" class="alignleft size-full wp-image-4648" style="border: 1px solid #ff0000; padding: 0px;" alt="Position des Startpunktes" src="https://weblog.egm.at/wp-content/uploads/sites/5/howto5.png" width="122" height="121" srcset="https://weblog.co.at/wp-content/uploads/sites/5/howto5.png 122w, https://weblog.co.at/wp-content/uploads/sites/5/howto5-80x80.png 80w, https://weblog.co.at/wp-content/uploads/sites/5/howto5-36x36.png 36w" sizes="auto, (max-width: 122px) 100vw, 122px" />Um das Logo mit left und top zu positionieren, brauchen wir jetzt noch den Abstand des linken oberen Punktes des Logos vom linken oberen Punktes des Kreis-DIVs. Einfach: wir wissen den Kreisradius und die Logobreite und -höhe. Wie im Bild zu sehen ergibt sich also:</p>
<p style="padding-left: 30px;"><em>oberer Abstand = radius &#8211; h/2</em></p>
<p style="padding-left: 30px;"><em>linker Abstand = radius &#8211; b/2</em></p>
<p>Das Script um die Werte zu errechnen ist ziemlich einfach:</p>
<pre lang="php">// Zuerst $radius und Dateipfad zum Logo definieren
$logofile = "/dateipfad/zum/logo.jpg";
$radius = 58; // in Pixel, entspricht der halben Höhe des DIV.kreis

// Originalhoehe / Originalbreite per getimagesize auslesen
if(file_exists($logofile)) $logosize = getimagesize($logofile);
$originalbreite = $logosize[0];
$originalhoehe = $logosize[1];

$tanAlpha   = $originalhoehe/$originalbreite;
$alpha      = atan($tanAlpha);

$logopos['hoehe']     = round(sin($alpha)*2*$radius,0);
$logopos['breite']     = round(cos($alpha)*2*$radius,0);
$logopos['x']     = $radius-($logopos['breite']/2);
$logopos['y']     = $radius-($logopos['hoehe']/2);</pre>
<p>Die errechneten Werte nun noch dem Bild per PHP zuweisen &#8211; fertig:</p>
<pre lang="php">&lt;div class="kreis"&gt;&lt;img style="position: absolute; left: &lt;?php echo $logopos['x']; ?&gt;px; top: &lt;?php echo $logopos['y']; ?&gt;px;" src="logo.jpg" width="&lt;?php echo $logopos['breite']; ?&gt;" height="&lt;?php echo $logopos['hoehe']; ?&gt;" /&gt;&lt;/div&gt;</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.weblog.co.at/per-php-css-ein-logo-grostmoglich-in-einen-kreis-einsetzen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>.htaccess-Trick für die Website-Pflege</title>
		<link>https://www.weblog.co.at/htaccess-tricks-fur-die-website-pflege/</link>
					<comments>https://www.weblog.co.at/htaccess-tricks-fur-die-website-pflege/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Wed, 01 Feb 2012 10:32:00 +0000</pubDate>
				<category><![CDATA[PHP,CGI & Co.]]></category>
		<category><![CDATA[TechTalk]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[pflege]]></category>
		<category><![CDATA[verzeichnisschutz]]></category>
		<category><![CDATA[website]]></category>
		<guid isPermaLink="false">https://www.egm.at/weblog/?p=4344</guid>

					<description><![CDATA[In der letzten Zeit kam es öfter vor, dass ich Wartungen an datenbankgestützte Websites vornehmen sollte. Natürlich will man währenddessen nicht unbedingt, dass die halbfertig aktualisierten Seiten online verfügbar sind. Ich habe mir dazu schon vor einiger Zeit eine .htaccess-Datei vorbereitet, die man in solchen Fällen einsetzen kann. Alle Seitenbesucher werden während der Wartung auf ... <a title=".htaccess-Trick für die Website-Pflege" class="read-more" href="https://www.weblog.co.at/htaccess-tricks-fur-die-website-pflege/" aria-label="Mehr Informationen über .htaccess-Trick für die Website-Pflege">weiterlesen</a>]]></description>
										<content:encoded><![CDATA[<p>In der letzten Zeit kam es öfter vor, dass ich Wartungen an datenbankgestützte Websites vornehmen sollte. Natürlich will man währenddessen nicht unbedingt, dass die halbfertig aktualisierten Seiten online verfügbar sind. Ich habe mir dazu schon vor einiger Zeit eine .htaccess-Datei vorbereitet, die man in solchen Fällen einsetzen kann. Alle Seitenbesucher werden während der Wartung auf eine Infoseite umgeleitet, außer die Zugriffe erfolgen von meinen beiden Büro-IP-Adressen aus:</p>
<pre>Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^111.111.111.111$
RewriteCond %{REMOTE_ADDR} !^222.222.222.222$
RewriteRule ^(.*)$ http://www.website.com/shopwartung/ [R=302,L]</pre>
<p>In diesem Anwendungsbeispiel liegt die .htaccess-Datei im Unterverzeichnis <em>shop/</em> auf der Website, der Zugriff ist nur für die IP-Adressen 111.111.111.111 und 222.222.222.222 erlaubt. Alle anderen werden auf dieselbe Website ins Verzeichnis <em>shopwartung/</em> umgeleitet. Dieses muss zwingend außerhalb des geschützten Verzeichnisses liegen! Die IPs und die Umleitungsadresse müsst ihr natürlich an eure eigenen Gegebenheiten anpassen.<br />
Wenn die .htaccess im selben Verzeichnis wie die restliche Website liegt, muss man den Code ein wenig abändern:</p>
<pre>Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^111.111.111.111$
RewriteCond %{REMOTE_ADDR} !^222.222.222.222$
RewriteCond %{REQUEST_URI} !shopwartung/
RewriteRule ^(.*)$ http://www.website.com/shopwartung/ [R=302,L]</pre>
<p>So werden nur die Zugriffe umgeleitet, die nicht aufs Verzeichnis /showartung zugreifen wollen &#8211; denn sonst versucht der Server eine erneute Umleitung dorthin und gerät in eine Endlosschleife.<br />
Die .htaccess kann man nach Abschluss der Wartung im Verzeichnis belassen &#8211; einfach vor die letzte Zeile ein Raute-Zeichen (#) setzen, um die Umleitung zu deaktivieren.<br />
Anmerkung: natürlich könnte man während einer Seitenwartung Zugriffe von Fremd-IPs einfach blocken (der Besucher kriegt dann lapidar &#8222;403-Access denied&#8220; mitgeteilt), ich halte meine Methode allerdings für etwas freundlicher.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.weblog.co.at/htaccess-tricks-fur-die-website-pflege/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Wie man ganz einfach Platzhalterbilder erzeugen kann</title>
		<link>https://www.weblog.co.at/wie-man-ganz-einfach-platzhalterbilder-erzeugen-kann/</link>
					<comments>https://www.weblog.co.at/wie-man-ganz-einfach-platzhalterbilder-erzeugen-kann/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Tue, 23 Mar 2010 08:47:33 +0000</pubDate>
				<category><![CDATA[HTML,CSS & Co.]]></category>
		<category><![CDATA[PHP,CGI & Co.]]></category>
		<category><![CDATA[bild]]></category>
		<category><![CDATA[bildgenerator]]></category>
		<category><![CDATA[dummy]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[platzhalter]]></category>
		<category><![CDATA[url]]></category>
		<guid isPermaLink="false">https://www.egm.at/weblog/?p=3011</guid>

					<description><![CDATA[Oft braucht man für ein Website-Projekt Platzhalterbilder, die im Entwurfslayout statt der endgültigen Bilder eingesetzt werden können, bis diese verfügbar sind. Mit Dummyimage.com ist das ganz einfach: durch eine entsprechend zusammengestellte URL generiert der Server in Echtzeit Bilder mit definierter Größe, Hintergrundfarbe und Beschriftung. Die Adresse http://dummyimage.com/600&#215;400/000/fff.jpg erzeugt beispielsweise ein Bild mit 600 Pixel Breite, ... <a title="Wie man ganz einfach Platzhalterbilder erzeugen kann" class="read-more" href="https://www.weblog.co.at/wie-man-ganz-einfach-platzhalterbilder-erzeugen-kann/" aria-label="Mehr Informationen über Wie man ganz einfach Platzhalterbilder erzeugen kann">weiterlesen</a>]]></description>
										<content:encoded><![CDATA[<p>Oft braucht man für ein Website-Projekt Platzhalterbilder, die im Entwurfslayout statt der endgültigen Bilder eingesetzt werden können, bis diese verfügbar sind. Mit <a href="http://dummyimage.com/">Dummyimage.com</a> ist das ganz einfach: durch eine entsprechend zusammengestellte URL generiert der Server in Echtzeit Bilder mit definierter Größe, Hintergrundfarbe und Beschriftung. Die Adresse <a href="http://dummyimage.com/600x400/000/fff.jpg" target="_blank">http://dummyimage.com/600&#215;400/000/fff.jpg</a> erzeugt beispielsweise ein Bild mit 600 Pixel Breite, 400 Pixel Höhe, schwarzem Hintergrund, weißer Schrift als JPG. Durch entsprechende Keywords in der Adresse lassen sich auch die meistgenutzten Werbebanner- und Bildschirmformate erzeugen. Den Quelltext der Applikation kann man herunterladen und auch am eigenen Server einsetzen.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.weblog.co.at/wie-man-ganz-einfach-platzhalterbilder-erzeugen-kann/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>tinyurl für Selbermacher &#8211; URLs am eigenen Server kürzen</title>
		<link>https://www.weblog.co.at/tinyurl-fur-selbermacher-urls-am-eigenen-server-kurzen/</link>
					<comments>https://www.weblog.co.at/tinyurl-fur-selbermacher-urls-am-eigenen-server-kurzen/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Mon, 21 Sep 2009 15:22:09 +0000</pubDate>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[PHP,CGI & Co.]]></category>
		<category><![CDATA[bit.ly]]></category>
		<category><![CDATA[drweb]]></category>
		<category><![CDATA[kürzen]]></category>
		<category><![CDATA[short-url]]></category>
		<category><![CDATA[tinyurl]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[tr.im]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[yourls]]></category>
		<guid isPermaLink="false">https://www.egm.at/weblog/?p=2685</guid>

					<description><![CDATA[Was gäbe es für ein Geschrei und großes Wehklagen, wenn einer der bekannten Gratisdienste zum Verkürzen von Internetadressen wie tinyurl.com, bit.ly oder tr.im auf einmal ihren Dienst einstellen würden: Hunderttausende Links, die auf Twitter oder in Facebook gepostet wurden, könnten auf einmal nicht mehr aufgerufen werden. Ein eigener Short-URL-Service am eigenen Webspace löst das Problem, ... <a title="tinyurl für Selbermacher &#8211; URLs am eigenen Server kürzen" class="read-more" href="https://www.weblog.co.at/tinyurl-fur-selbermacher-urls-am-eigenen-server-kurzen/" aria-label="Mehr Informationen über tinyurl für Selbermacher &#8211; URLs am eigenen Server kürzen">weiterlesen</a>]]></description>
										<content:encoded><![CDATA[<p>Was gäbe es für ein Geschrei und großes Wehklagen, wenn einer der bekannten Gratisdienste zum Verkürzen von Internetadressen wie <a href="http://tinyurl.com">tinyurl.com</a>, <a href="http://bit.ly">bit.ly</a> oder <a href="http://tr.im">tr.im</a> auf einmal ihren Dienst einstellen würden: Hunderttausende Links, die auf Twitter oder in Facebook gepostet wurden, könnten auf einmal nicht mehr aufgerufen werden. Ein eigener Short-URL-Service am eigenen Webspace löst das Problem, denn dieser ist (im Idealfall) so lange online, wie man das selber gerne möchte. <a href="http://www.drweb.de/magazin/url-shortener-fur-den-eigenen-webspace/">Dieser Artikel bei drweb.de</a> bietet eine umfassende Einführung in die Installation und Konfiguration eines solchen Tools &#8211; damit man von externen Anbietern weitgehend unabhängig bleiben kann.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.weblog.co.at/tinyurl-fur-selbermacher-urls-am-eigenen-server-kurzen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PHP: Session-Sicherheit</title>
		<link>https://www.weblog.co.at/php-session-sicherheit/</link>
					<comments>https://www.weblog.co.at/php-session-sicherheit/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Mon, 21 Sep 2009 14:58:42 +0000</pubDate>
				<category><![CDATA[PHP,CGI & Co.]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[sicherheit]]></category>
		<guid isPermaLink="false">https://www.egm.at/weblog/?p=2682</guid>

					<description><![CDATA[Auf php-Builder war letztens zu lesen, welche Vorkehrungen man treffen muss, um Websites abzusichern, die mit Sessions arbeiten. Denn die Überlistung der PHP-Session-Funktionen ist leichter als gedacht &#8211; Lesebefehl an alle Webworker!]]></description>
										<content:encoded><![CDATA[<p>Auf php-Builder war letztens zu lesen, welche Vorkehrungen man treffen muss, um <span class="removed_link" title="http://www.phpbuilder.com/columns/marc_plotz009172009.php3">Websites abzusichern, die mit Sessions arbeiten</span>. Denn die Überlistung der PHP-Session-Funktionen ist leichter als gedacht &#8211; Lesebefehl an alle Webworker!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.weblog.co.at/php-session-sicherheit/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress: automatisches Speichern und Versionsverwaltung abschalten/konfigurieren</title>
		<link>https://www.weblog.co.at/wordpress-automatisches-speichern-und-versionsverwaltung-abschaltenkonfigurieren/</link>
					<comments>https://www.weblog.co.at/wordpress-automatisches-speichern-und-versionsverwaltung-abschaltenkonfigurieren/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Thu, 02 Apr 2009 13:55:00 +0000</pubDate>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[PHP,CGI & Co.]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[anpassen]]></category>
		<category><![CDATA[autosave]]></category>
		<category><![CDATA[versionsverwaltung]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://www.egm.at/weblog/?p=2372</guid>

					<description><![CDATA[Ein durchaus gut gemeintes Feature seit WordPress 2.6 ist die Versionsverwaltung von Artikeln. Gut, wenn man jederzeit zu einer früher gespeicherten Version eines Artikels zurückkehren kann. Ausserdem speichert WordPress nun im 60-Sekunden-Intervall selbsttätig den Artikel, an dem man gerade arbeitet. So kommen allerdings rasch recht viele Versionen eines Artikels zustande &#8211; in den meisten Fällen ... <a title="WordPress: automatisches Speichern und Versionsverwaltung abschalten/konfigurieren" class="read-more" href="https://www.weblog.co.at/wordpress-automatisches-speichern-und-versionsverwaltung-abschaltenkonfigurieren/" aria-label="Mehr Informationen über WordPress: automatisches Speichern und Versionsverwaltung abschalten/konfigurieren">weiterlesen</a>]]></description>
										<content:encoded><![CDATA[<p>Ein durchaus gut gemeintes Feature seit WordPress 2.6 ist die Versionsverwaltung von Artikeln. Gut, wenn man jederzeit zu einer früher gespeicherten Version eines Artikels zurückkehren kann. Ausserdem speichert WordPress nun im 60-Sekunden-Intervall selbsttätig den Artikel, an dem man gerade arbeitet. So kommen allerdings rasch recht viele Versionen eines Artikels zustande &#8211; in den meisten Fällen sicherlich zu viele. Man kann die Versionsverwaltung und die Autosave-Zeit durch Einträge in der <em>wp-config.php</em> recht einfach anpassen:</p>
<pre lang="php">
// Limitiert die Anzahl der gespeicherten Versionen je Artikel auf 5 Stück
define('WP_POST_REVISIONS', 5);
// Je nach Lust & Laune den gewünschten Wert eintragen

// Setzt den Abstand zwischen den automatischen Speicherungen auf 600 Sekunden
define('AUTOSAVE_INTERVAL',600);
// Je nach Lust & Laune den gewünschten Wert in Sekunden eintragen
</pre>
<p>Mit folgendem Eintrag in der <em>wp-config.php</em> schaltet man die Versionsverwaltung ganz ab &#8211; es wird also nur der jeweils aktuelle Stand gespeichert und keine alten Versionen behalten:</p>
<pre lang="php">
// Versionsverwaltung abschalten
define('WP_POST_REVISIONS',false);
</pre>
<p>Sicherheitshalber mach bitte vor Änderungen eine Sicherheitskopie der <em>wp-config.php</em>!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.weblog.co.at/wordpress-automatisches-speichern-und-versionsverwaltung-abschaltenkonfigurieren/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress-RSS-Feed mit Logo</title>
		<link>https://www.weblog.co.at/wordpress-rss-feed-mit-logo/</link>
					<comments>https://www.weblog.co.at/wordpress-rss-feed-mit-logo/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Thu, 19 Mar 2009 09:57:09 +0000</pubDate>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[PHP,CGI & Co.]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[logo]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://www.egm.at/weblog/?p=2282</guid>

					<description><![CDATA[Wer einen Feedreader benutzt, dem wird aufgefallen sein, daß in manchen RSS-Feeds rechts oben das Logo der jeweiligen Website eingebunden ist. Das kann man recht einfach auch mit WordPress machen: &#8211; Logo vorbereiten: das Bild darf höchstens 144 Pixel breit sein, Standardwert ist 88 Pixel. Weiters darf es eine Höhe von 400 Pixel nicht überschreiten, ... <a title="WordPress-RSS-Feed mit Logo" class="read-more" href="https://www.weblog.co.at/wordpress-rss-feed-mit-logo/" aria-label="Mehr Informationen über WordPress-RSS-Feed mit Logo">weiterlesen</a>]]></description>
										<content:encoded><![CDATA[<p>Wer einen Feedreader benutzt, dem wird aufgefallen sein, daß in manchen RSS-Feeds rechts oben das Logo der jeweiligen Website eingebunden ist. Das kann man recht einfach auch mit WordPress machen:</p>
<p><strong>&#8211; Logo vorbereiten: </strong>das Bild darf höchstens 144 Pixel breit sein, Standardwert ist 88 Pixel. Weiters darf es eine Höhe von 400 Pixel nicht überschreiten, Standardwert ist 31 Pixel. Das kann man in der <a href="http://cyber.law.harvard.edu/rss/rss.html#ltimagegtSubelementOfLtchannelgt">Spezifikation von RSS 2.0</a> nachlesen. Erlaubte Dateiformate sind JPG, PNG und GIF.</p>
<p><strong>&#8211; Logo auf den Webserver hochladen: </strong>im Prinzip ist es egal, wohin &#8211; es empfiehlt sich aber, das Logo in den Ordner der verwendeten Seitenvorlage hochzuladen, sodaß es z.b. unter der Adresse <em>www.meinblog.at/wp-content/themes/mein-theme/images/rss_logo.png</em> abrufbar ist. Es kann aber genausogut ein externes Logo eingebunden werden, sofern man die genaue Bild-URL kennt.</p>
<p><strong>&#8211; Logo-Funktion in die Seitenvorlage einbinden:</strong> im Ordner der verwendeten Seitenvorlage (z.b. in <em>/wp-content/themes/mein-theme/</em>) sollte sich eine Datei namens <em>functions.php</em> befinden, die Sonderfunktionen für die Seitenvorlage beinhaltet. Wenn die Datei noch nicht exisitiert, so muss sie neu angelegt werden. Die folgenden Zeilen trägn man ganz am Schluss in die  <em>functions.php</em> ein. Die Adresse und die Breite / Höhe des Logos muss man dabei entsprechend anpassen:</p>
<pre lang="php">function rss_logo_einbinden() {
  echo "<image>\n";
  echo "<title>".get_bloginfo('title')."</title>\n";
  // URL-Wert auf tatsächliche Adresse des Logos anpassen
  echo "<url>http://www.meinblog.at/wp-content/themes/mein-theme/images/rss_logo.png</url>\n";
  echo "<link>" . get_bloginfo('url') . "</link>\n";
  echo "<width>50</width>\n"; // Wert auf echte Bildhöhe anpassen
  echo "<height>50</height>\n"; // Wert auf echte Bildbreite anpassen
  echo "</image>\n";
}

add_action('rss2_head', 'rss_logo_einbinden');

</pre>
<p>Erledigt &#8211; ab sofort sollte in euren RSS-Feed (und Atom-Feed) das Logo eingebunden werden. Einfacher Test: im Browser die Adresse eures Blogs gefolgt von <em>/?feed=rss2</em> aufrufen (z.b. <a href="https://www.egm.at/weblog/?feed=rss2">https://www.egm.at/weblog/?feed=rss2</a>).</p>
<p><strong>Update 31.3.2009:</strong> um auch im Atom-Feed ein Logo einzubinden, fügt man der <em>functions.php</em> einfach noch folgende Zeilen hinzu und passt die Bildpfade entsprechend an:</p>
<pre lang="php">function atom_logo_einbinden() {
  echo '<icon>' . get_bloginfo('url') . '/favicon.ico</icon>
    <logo>' . get_bloginfo('url') . '/images/atom_logo.png</logo>';
}

add_action('atom_head', 'atom_logo_einbinden');

</pre>
<p>Danke an <a href="http://www.jawe.net/">Jan Wessely</a> für diese Ergänzung via Mail!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.weblog.co.at/wordpress-rss-feed-mit-logo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Zwei Contentbereiche in WordPress-Seite</title>
		<link>https://www.weblog.co.at/zwei-contentbereiche-in-wordpress-seite/</link>
					<comments>https://www.weblog.co.at/zwei-contentbereiche-in-wordpress-seite/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Thu, 08 Jan 2009 15:55:02 +0000</pubDate>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[PHP,CGI & Co.]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://www.egm.at/weblog/?p=2024</guid>

					<description><![CDATA[Bei einem aktuellen Projekt sollte wieder einmal WordPress als Mini-CMS eingesetzt werden. Wie meistens geht das nicht ohne Bastelarbeiten. Diesmal war auf den einzelnen Seiten die Möglichkeit eines zweiten Contentbereiches gefragt, in dem zum jeweiligen Seiteninhalt zusätzliche Informationen angezeigt werden sollen. Ich habe das relativ elegant gelöst &#8211; der zusätzliche Content wird als Extra-Seite angelegt ... <a title="Zwei Contentbereiche in WordPress-Seite" class="read-more" href="https://www.weblog.co.at/zwei-contentbereiche-in-wordpress-seite/" aria-label="Mehr Informationen über Zwei Contentbereiche in WordPress-Seite">weiterlesen</a>]]></description>
										<content:encoded><![CDATA[<p>Bei einem <span class="removed_link" title="http://www.wissenswerkstatt.at/">aktuellen Projekt</span> sollte wieder einmal WordPress als Mini-CMS eingesetzt werden. Wie meistens geht das nicht ohne Bastelarbeiten. Diesmal war auf den einzelnen Seiten die Möglichkeit eines zweiten Contentbereiches gefragt, in dem zum jeweiligen Seiteninhalt zusätzliche Informationen angezeigt werden sollen. Ich habe das relativ elegant gelöst &#8211; der zusätzliche Content wird als Extra-Seite angelegt und mit einem Spezialfeld und einem zweiten Loop in die ursprüngliche Seite eingebunden. Und so gehts:<span id="more-2024"></span></p>
<p>Im folgenden ist mit &#8222;Hauptseite&#8220; die Seite gemeint, in die der zusätzliche Content eingebunden werden soll (den ich als &#8222;Subseite&#8220; bezeichne).</p>
<p><strong>Vorbereitungen im Administrationsbereich:</strong></p>
<ul>
<li>Hauptseite mit Inhalt anlegen: man legt auf übliche Art eine neue Seite mit dem gewünschten Inhalt an.</li>
<li>Subseite anlegen: Der Inhalt des zusätzlichen Content-Bereichs wird ebenfalls als neue Seite angelegt. Wichtig dabei ist, daß diese Seite eine übergeordnete Seite zugewiesen bekommt, damit sie nicht in der Navigation auftaucht. Danach Seite speichern.</li>
<li>ID der Subseite herausfinden: nach dem Speichern der Subseite auf &#8222;Vorschau&#8220; klicken. Die Zahl nach <em>&#8222;page_id=&#8220;</em> in der Adressleiste ist die gewünschte ID.</li>
<li>ID der Subseite als Spezialfeld der Hauptseite anlegen: Zu jedem Artikel und zu jeder Seite lassen sich in WordPress Spezialfelder speichern. Diese verwenden wir hier zum Speichern der ID der gewünschten Subseite. Daher die Hauptseite erneut zum Bearbeiten öffnen. Neues Spezialfeld mit dem Namen <em>&#8222;Subseite&#8220;</em> anlegen (ohne Anführungszeichen). Als Wert kommt die vorher ermittelte ID der Subseite rein. Seite speichern.</li>
</ul>
<p><strong>Anpassung des Templates:</strong></p>
<ul>
<li>Im Ordner der verwendeten Seitenvorlage eine neue Datei mit dem Namen <em>&#8222;subseite.php&#8220;</em> anlegen. Der Inhalt dieser Datei soll sein:</li>
</ul>
<pre lang="php"><?
$subseite = get_post_meta($post->ID, "Subseite", TRUE);
if($subseite != "") {
   query_posts("page_id=$subseite");
   while (have_posts()) : the_post();
      the_content('');
   endwhile;
   wp_reset_query();
}
?></pre>
<ul>
<li>In der Vorlage für die Seite selbst wird diese Datei per Include() an passender Stelle eingebunden. Wichtig dabei ist lediglich, da&szlig; dieser Code nicht innerhalb des Haupt-Loops liegt!</li>
</ul>
<pre lang="php"><div id="subseite">
   <? include('/serverpfad/zu/wordpress/wp-content/themes/themename/subseite.php'); ?>
</div></pre>
<ul>
<li>Im Anschluss kann man natürlich die Styles innerhalb von <em>div#subseite</em> noch getrennt zum restlichen Content per CSS anpassen.</li>
</ul>
<p>Das Ergebnis kann man auf der <span class="removed_link" title="http://www.wissenswerkstatt.at/">Website der Wissenswerkstatt</span> bewundern &#8211; rechts unten ist der zusätzliche Content-Bereich.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.weblog.co.at/zwei-contentbereiche-in-wordpress-seite/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title>PHP merkt sich keine Session-Variablen?</title>
		<link>https://www.weblog.co.at/php-merkt-sich-keine-session-variablen/</link>
					<comments>https://www.weblog.co.at/php-merkt-sich-keine-session-variablen/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Fri, 25 Apr 2008 06:31:22 +0000</pubDate>
				<category><![CDATA[PHP,CGI & Co.]]></category>
		<category><![CDATA[Windoof]]></category>
		<guid isPermaLink="false">https://www.egm.at/weblog/?p=1854</guid>

					<description><![CDATA[Die Lösung kann, so wie gestern in meinem Fall ganz einfach sein: das in der php.ini unter session.save_path angegebene Verzeichnis muss natürlich existieren, weil sonst die Session-Daten nirgends gespeichert werden können. Hat mich eine Stunde gekostet, das als Fehlerursache herauszufinden.]]></description>
										<content:encoded><![CDATA[<p>Die Lösung kann, so wie gestern in meinem Fall ganz einfach sein: das in der <em>php.ini</em> unter <em>session.save_path</em> angegebene Verzeichnis muss natürlich existieren, weil sonst die Session-Daten nirgends gespeichert werden können. Hat mich eine Stunde gekostet, das als Fehlerursache herauszufinden.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.weblog.co.at/php-merkt-sich-keine-session-variablen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Lazy Loading (feed)

Served from: www.weblog.co.at @ 2026-04-20 23:20:44 by W3 Total Cache
-->