<?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/"
	
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>bueltge.de [by:ltge.de] &#187; SQL</title>
	<atom:link href="http://bueltge.de/tag/sql/feed/" rel="self" type="application/rss+xml" />
	<link>http://bueltge.de</link>
	<description>Frank Bültge schreibt auf bueltge.de zu den Themen Webentwicklung &#38; design, WordPress, Literatur und andere Themen bezüglich Internet und Development</description>
	<lastBuildDate>Mon, 06 Feb 2012 12:19:43 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Feed Cache von WordPress löschen</title>
		<link>http://bueltge.de/feed-cache-von-wordpress-loschen/1231/</link>
		<comments>http://bueltge.de/feed-cache-von-wordpress-loschen/1231/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 05:40:09 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1231</guid>
		<description><![CDATA[Der Feed-Cache von WordPress wird in der Datenbank abgelegt, Tabelle <code>options</code> und manchmal möchte man diesen löschen. Mit Hilfe von SQL ist dies schnell erledigt.]]></description>
			<content:encoded><![CDATA[<p>Der Feed-Cache von WordPress wird in der Datenbank abgelegt, Tabelle <code>options</code> und manchmal möchte man diesen löschen. Mittels ein wenig SQL ist das schnell erledigt - hat aber keinen Fallback, aufpassen!<br />
Innerhalb von WordPress tue ich dies mit Hilfe des Plugins <a href="http://bueltge.de/adminer-fuer-wordpress/1014/">Adminer</a>, was einen kompletten mySQL Zugriff erlaubt und trotzdem im Backend von WordPress nutzbar ist. Alternativ geht natürlich auch jedes andere Tool, beispielsweise <a href="http://www.phpmyadmin.net/home_page/index.php">phpMyAdmin</a>.<br />
<span id="more-1231"></span><br />
<a href="http://wpengineer.com/wp-content/uploads/sql-feedcache.png"><img src="http://wpengineer.com/wp-content/uploads/sql-feedcache-300x83.png" alt="" title="sql-feedcache" width="300" height="83" class="aligncenter size-medium wp-image-2115" /></a></p>
<p>Mit Hilfe der folgenden Syntax ist der Cache schnell gelöscht, der Beispielpräfix <code>wp_</code> muss natürlich angepasst werden.</p>
<pre><code class="sql">
DELETE FROM `wp_options` WHERE `option_name` LIKE ('_transient%_feed_%')
</code></pre>
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/feed-cache-von-wordpress-loschen/1231/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/feed-cache-von-wordpress-loschen/1231/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
	
		<media:thumbnail url="http://wpengineer.com/wp-content/uploads/sql-feedcache-300x83.png" />
		<media:content url="http://wpengineer.com/wp-content/uploads/sql-feedcache-300x83.png" medium="image">
			<media:title type="html">sql-feedcache</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Alle WordPress Kommentare ausleiten und formatieren</title>
		<link>http://bueltge.de/alle-wordpress-kommentare-ausleiten-und-formatieren/1148/</link>
		<comments>http://bueltge.de/alle-wordpress-kommentare-ausleiten-und-formatieren/1148/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 16:22:29 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Kommentar]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1148</guid>
		<description><![CDATA[Die Ausgabe der Kommentare unabhängig vom Post muss bisher über eine SQL-Syntax geschehen. Wie dies geht ist hier nun abgelegt und steht für weitere Lösungen und Ideen bereit.]]></description>
			<content:encoded><![CDATA[<p>Die Ausgabe der Kommentare kann an verschiedenen Ecken gewollt sein. So könnte man sich beispielsweise eine Ausgabe der letzten x Kommentare auf einem zentralen Template vorstellen. Dazu braucht man die letzten Kommentare oder auch alle Kommentare, die die Installation besitzt. Anbei eine kleine Lösung, die alle Kommentare, oder auch eine gewissen Anzahl, ausliest und mit Markup versorgt wird.<br />
<span id="more-1148"></span><br />
Der folgende Code gehört beispielsweise in ein Template, welches dann einer Seite in WordPress dient und so eine <a href="http://bueltge.de/kommentaruebersicht/">Ausgabe der Kommentare</a> realisiert. Dabei können verschiedene Spielarten erdacht werden, der Code soll nur als Denkstütze dienen und den SQL-Syntax erleichtern.<br />
Die folgenden Lösung bildet aktuell die Kommentare ab, ohne Track- und Pingbacks.</p>
<pre><code>
global $wpdb;

$max = '-1'; // -1 for all
$result = '';
$sql  = "SELECT c.*, p.post_title FROM $wpdb->comments c INNER JOIN $wpdb->posts p ON (c.comment_post_id = p.ID) ";
$sql .= "WHERE comment_approved = '1' ";
$sql .= "AND comment_type not in ('trackback', 'pingback') ";
$sql .= "AND p.post_status != 'trash' ";
$sql .= "ORDER BY comment_date DESC";
if ('-1' != $max)
	$sql .= &quot; LIMIT 0, $max&quot;;
$results = $wpdb-&gt;get_results($sql);

$templates = &quot;\t&quot; . '&lt;li&gt;%gravatar% &lt;a href=&quot;%authorurl%&quot;&gt;%authorname%&lt;/a&gt; zu &lt;a href=&quot;%posturl%#comment-%commentid%&quot;&gt;%posttitle%&lt;/a&gt; %commentcontent%&lt;/li&gt;' . &quot;\n&quot;;

foreach ($results as $row) {
	$tags = array(
		'%commentdate%', '%gravatar%', '%posttitle%',
		'%posturl%', '%authorurl%', '%authorname%',
		'%commentid%', '%commentcontent%'
	);
	$replacements = array(
		$row-&gt;comment_date, get_avatar($row-&gt;comment_author_email, '30'), $row-&gt;post_title,
		get_permalink($row-&gt;comment_post_ID), $row-&gt;comment_author_url, $row-&gt;comment_author,
		$row-&gt;comment_ID, $row-&gt;comment_content
	);
	$result .= str_replace($tags, $replacements, $templates);
}
if ($result)
	$result = '&lt;ul&gt;' . &quot;\n&quot; . $result . '&lt;/ul&gt;' . &quot;\n&quot;;

// output
echo $result;
</code></pre>
<p>Will man dies <a href="http://bueltge.de/wordpress-funktionen-ausserhalb-von-wordpress-nutzen/922/">außerhalb von WordPress</a> nutzen, dann kann man alternativ den Kommentarfeed nutzen und die Kommentare, die im Feed sind, ausgeben oder man bindet die <code>wp-load.php</code> der Installation ein und hat vollen Zugriff auf alle Funktionen von WordPress.</p>
<pre><code class="php">
require('wp-load.php');
</code></pre>
<p>Viele Freude beim nutzen und Hinweise, Fehler und Erweiterungen bitte in den Kommentaren dieses Beitrags.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/alle-wordpress-kommentare-ausleiten-und-formatieren/1148/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/alle-wordpress-kommentare-ausleiten-und-formatieren/1148/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Die WordPress Datenbank Möglichkeiten</title>
		<link>http://bueltge.de/die-wordpress-datenbank-moeglichkeiten/1008/</link>
		<comments>http://bueltge.de/die-wordpress-datenbank-moeglichkeiten/1008/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 23:02:39 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1008</guid>
		<description><![CDATA[Die WordPress Datanbank Klasse ist recht umfangreich und liefert eine ganze Reihe von Methoden um effektiv mit der Datenbank zu arbeiten und dabei auf den WordPress-Standard zuzugreifen.

Zu finden ist die Klasse in <code>/wp-includes/wp-db.php</code>, wo auch die einzelnen Methoden dokumentiert sind.
Ich zeige mal die wichtigsten und lege kleine Beispiele ab. Es ist von größer Bedeutung mit diesen Möglichkeiten zu arbeiten und so die Sicherheit von Plugins zu gewährleisten.]]></description>
			<content:encoded><![CDATA[<p>Die WordPress Datenbank Klasse ist recht umfangreich und liefert eine ganze Reihe von Methoden um effektiv mit der Datenbank zu arbeiten und dabei auf den WordPress-Standard zuzugreifen.</p>
<p>Zu finden ist die Klasse in <code>/wp-includes/wp-db.php</code>, wo auch die einzelnen Methoden dokumentiert sind. Dort sind weitere Methoden zu finden, allerdings sind die wichtigsten oft in Gebrauch und daher sind diese nur ein Teil der Klasse.</p>
<p>Ich zeige mal die wichtigsten und lege kleine Beispiele ab, zum Teil in unterschiedlichen Schreibweisen, um die Möglichkeiten aufzuzeigen. Es ist von größer Bedeutung mit diesen Möglichkeiten zu arbeiten und so die Sicherheit von Plugins zu gewährleisten. Sie geben ausreichend Möglichkeiten in die Hand, schaffen Sicherheit und man nutzt die Standards von WordPress, muss sich also nicht um Abhängigkeiten kümmern.<br />
<span id="more-1008"></span><br />
Zu folgenden vier Methoden sind im Anschluss Syntaxbeispiele hinterlegt.</p>
<ul>
<li><code>insert($table, $data, $format)</code> — insert a row into a table via arrays.</li>
<li><code>update($table, $data, $where, $format, $where_format)</code> — update a row in a table via arrays.</li>
<li><code>get_var($query, $x, $y)</code> — retrieve a single variable from the database.</li>
<li><code>query($query)</code> — perform a MySQL database query with current connection</li>
<li><code>get_results($query, $output)</code> — retrieve SQL result set from database… one or more rows.</li>
<li><code>escape($data)</code> — Escapes content for insertion into the database using addslashes(), for security</li>
</ul>
<p>Ebenso sind die kommenden Methoden interessant.</p>
<ul>
<li><code>set_prefix($prefix)</code> — used to set table prefix for WordPress tables, can be used to override prefix at any time</li>
<li><code>prepare($query)</code> — safely prepares an SQL query for execution with sprintf()-like syntax.</li>
<li><code>get_row($query, $output, $y)</code> — retrieve a single row from the database.</li>
<li><code>get_col($query, $x)</code> — retrieve a single column from the database in array format.</li>
</ul>
<pre><code>
/**
 * insert
 */
$wpdb-&gt;insert( $wpdb-&gt;posts, array( 'post_title' =&gt; $mytitle ) );

$wpdb-&gt;insert( $wpdb-&gt;options, array(
			'option_name',
			'new_option_key',
			'option_value' =&gt; 'New Option Value',
			'autoload' =&gt; 'yes' )
			);

/**
 * update
 */
$wpdb-&gt;update( $wpdb->posts, array( 'post_title' =&gt; $mytitle ),
			array( 'ID' => $myid )
			);

$wpdb-&gt;update( $wpdb-&gt;options,
			array( 'option_value' =&gt; 'New Option Value' ),
			array( 'option_name' =&gt; 'new_option_value' )
			);

/**
 * get_var
 */
$post_id = $wpdb-&gt;get_var(
			$wpdb-&gt;prepare( &quot;SELECT post_id FROM
					$wpdb-&gt;postmeta WHERE
					post_id = %d AND
					meta_key = 'enclosure' AND
					meta_value LIKE (%s)&quot;, $post_ID, $url . '&amp;' )
			);

$content = $wpdb-&gt;get_var(
			$wpdb-&gt;prepare("SELECT post_content FROM " .
					"$wpdb-&gt;posts WHERE " .
					"post_title = %s AND " .
					"ID = %d", $title, $id )
		);

/**
 * query
 */
$wpdb-&gt;query( &quot;DELETE FROM $wpdb-&gt;options WHERE option_name = '$name'&quot; );

$wpdb-&gt;query( &quot;UPDATE $wpdb-&gt;posts SET post_title = '$mytitle' WHERE ID = $myid&quot; );

/**
 * query and escape
 */
$mytitle = $wpdb-&gt;escape( $mytitle );
$myid    = absint( $myid );
$wpdb-&gt;query( &quot;UPDATE $wpdb-&gt;posts SET post_title = '$mytitle' WHERE ID = $myid&quot; );

/**
 * get_results
 */
$type = $wpdb-&gt;get_results( "SELECT post_type FROM " .
				"$wpdb-&gt;posts WHERE ID=$id" );
</code></pre>
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/die-wordpress-datenbank-moeglichkeiten/1008/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/die-wordpress-datenbank-moeglichkeiten/1008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Adminer für WordPress</title>
		<link>http://bueltge.de/adminer-fuer-wordpress/1014/</link>
		<comments>http://bueltge.de/adminer-fuer-wordpress/1014/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 22:54:45 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Plugin]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1014</guid>
		<description><![CDATA[Der Zugriff auf die Datenbank ist dann und wann nötig. Aus dem Backend von WordPress heraus kann das sehr einfach sein und man muss die Zugriffsdaten nicht zur Hand haben. Sehr schnell ist ein Kundenzugriff möglich und alle Möglichkeiten, die einem mySQL in die Hand gibt, sind mit dem Plugin Adminer möglich. Vom Exportieren, Importieren und alle Arten von SQL-Zugriffen via GUI bis hin zur SQL-Anweisung kann Adminer eingesetzt werden.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://bueltge.de/wp-content/images/wp/adminer.png" alt="Adminer" /><br />
Der Zugriff auf die Datenbank ist dann und wann nötig. Aus dem Backend von WordPress heraus kann das sehr einfach sein und man muss die Zugriffsdaten nicht zur Hand haben. Sehr schnell ist ein Kundenzugriff möglich und alle Möglichkeiten, die einem mySQL in die Hand gibt, sind mit dem Plugin Adminer möglich. Vom Exportieren, Importieren und alle Arten von SQL-Zugriffen via GUI bis hin zur SQL-Anweisung kann Adminer eingesetzt werden.</p>
<p>Das Tool <a href="http://www.adminer.org/en/">Adminer</a> ist die Grundlage meines Plugins und holt das Tool direkt in das WordPress Backend. Adminer hat auch ohne mein Plugin und ohne WordPress sehr viele Vorteile und wer einfach, schnell und unkompliziert auf die Datenbank zugreifen will, der sollte sich das Tool anschauen - <a href="http://www.adminer.org/en/">Adminer</a>. Alternativ lohnt ein Blick in den <a href="http://www.drweb.de/magazin/adminer-mysql-administration-on-the-fly-kurzbeitrag/">Artikel bei Dr.Web</a>, wo Adminer ausführlich erklärt wird.<br />
<span id="more-1014"></span><br />
Nun aber zum Plugin, welches den <a href="http://www.adminer.org/en/">Adminer</a> in WordPress integriert.</p>
<h3>Was macht das Plugin</h3>
<p>Das Plugin erleichtert den Zugriff auf die Datenbank aus WordPress heraus. Es ist entstanden, weil ich nicht selten helfen soll und die Leute keinen Zugang haben, ihn nicht wissen oder auch kein Tool auf dem Webspace für den Datenbankzugang haben. Damit bleibt mir oft nur das Einrichten eines Tools und das wollte ich vereinfachen. Mit diesem Plugin geht das einfach; es ist aber ebenso mächtig wie jedes andere Tool, welches alle Zugriffe auf die Datenbank zulässt - daher <strong>Vorsicht im Umgang mit dem Plugin. Das Anlegen einer Sicherung im Vorfeld sollte selbstverständlich sein.</strong></p>
<p>Der Zugang auf Adminer wird über das Plugin gelöst, so dass man keine Zugangsdaten benötigt. Ebenfalls kann das Plugin direkt aus dem Admin-Bereich von WordPress installiert werden, so dass, je nach Webspace, nicht mal ein FTP-Zugang erforderlich ist.</p>
<p>Adminer lässt den Export und Import von großen Datenmengen zu, damit kann es sehr einfach sein, die Datenbank einzuspielen. Ebenfalls kann jede Art von SQL-Anweisung ausgeführt werden. Hinzu kommt, dass Adminer die SQL-Anweisung zu einer Anweisung via Mouse-Klick zurück gibt, so dass man die Anweisung dann als Syntax hat und anderweitig nutzen kann.</p>
<p><img class="centered" src="http://bueltge.de/wp-content/images/wp/screenshot-adminer.png" alt="Adminer in WordPress" /></p>
<p>Adminer wurde von mir in zwei Punkten verändert, da beide Themen den Zugriff auf einen Server benötigen. Die Themen Versions-Kontrolle von Adminer und Syntax-Highlightning der SQL-Anweisung benötigen einen Zugriff auf SourceForge. Beide Punkte sind nicht relevant für das Plugin und der Zugriff ist nicht bei jedem Nutzer gern gesehen. Hinzu kommt das das Highlightning eine 100 kByte Datei benötigt, die aus meiner Sicht nicht unbedingt notwendig ist. Wer beide Funktionen unbedingt haben möchte, der muss nur die Adminer-Datei im Ordner <code>inc</code> des Plugins mit dem Original austauschen.</p>
<p>Ebenfalls habe ich ein neues Stylesheet erstellt, welches die Optik von Adminer dem Design von WordPress 2.8 anpasst. Somit ist die Arbeit in gleicher Optik gewährleistet. Das Design kann auch ohne Plugin genutzt werden und steht auf der <a href="http://www.adminer.org/en/#extras">Site von Adminer zum Download</a>.</p>
<h3>Voraussetzungen</h3>
<p>Um das Plugin zu nutzen, ist WordPress Version 2.7 das Minimum, darunter habe ich keine Tests unternommen. Grundvoraussetzung ist eine saubere Installation, wo die Datenbankzugänge zu den Standard-Konstanten gepflegt sind. Das wird sicher auf die meisten Nutzer zutreffen, ist aber leider nicht immer so.</p>
<h3>Installation</h3>
<p>Es werden keinerlei Daten in der Datenbank abgelegt und es müssen auch keine Einstellungen vorgenommen werden. Daher ist die Installation auch denkbar einfach: in das Pluginverzeichnis kopieren oder mit Hilfe der automatischen Installation aus dem Backend des Blog installieren lassen und im Anschluss aktivieren.<br />
Im Anschluss steht im Bereich <em>Werkzeuge</em> (<em>Tools</em>) ein neuer Unterpunkt <em>Adminer</em> bereit, der euch den Zugriff ermöglicht. Auf der Site zu Adminer muss dann lediglich der Button <em>Start Adminer</em> genutzt werden und Adminer wird in voller Bildschirmgröße in eine Thickbox geladen, so dass man ausreichend Raum zu arbeiten hat.</p>
<h3>Download:</h3>
<form class="spenden" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="amount" id="eins" value="" />
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="business" value="frank@bueltge.de" />
<input type="hidden" name="item_name" value="Spende bueltge.de Debug Objects" />
<input type="hidden" name="no_shipping" value="1" />
<input type="hidden" name="return" value="http://bueltge.de/" />
<input type="hidden" name="cancel_return" value="http://bueltge.de/" />
<input type="hidden" name="currency_code" value="EUR" />
<input type="hidden" name="tax" value="0" />
<input type="hidden" name="bn" value="PP-DonationsBF" />
<input type="image" src="http://bueltge.de/wp-content/images/donate.png" style="border:0" name="submit" alt="Zahlen Sie mit PayPal - schnell, kostenlos und sicher!" /></form>
<p><strong>Ist die Arbeit nicht 1 Euro wert?</strong><br />
Jede Spende wird dankbar angenommen und ermöglicht das weitere Arbeiten an freier Software.<br />
Möchtest du mehr oder anders spenden, so besuche meine <a href="http://bueltge.de/wunschliste/">Wunschliste</a>.<br />
Download als zip-Datei: <a href="http://downloads.wordpress.org/plugin/adminer.zip">downloads.wordpress.org/plugin/adminer.zip</a> - 200 kByte</p>
<h3>Historie</h3>
<p>Seit geraumer Zeit bietet das WordPress Plugin Repository die Möglichkeit der Ausgabe des Changelog an und so werde ich direkt am Plugin, in der Readme, die Historie pflegen - daher bitte ich, dass ihr euch <a href="http://wordpress.org/extend/plugins/adminer/changelog/">dort die Änderungen anschaut</a>, so dass ich ein wenig hier pflegen muss: <a href="http://wordpress.org/extend/plugins/adminer/changelog/">Changelog</a>.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/adminer-fuer-wordpress/1014/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/adminer-fuer-wordpress/1014/feed/</wfw:commentRss>
		<slash:comments>48</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/wp/adminer.png" />
		<media:content url="http://bueltge.de/wp-content/images/wp/adminer.png" medium="image">
			<media:title type="html">Adminer</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/wp/screenshot-adminer.png" medium="image">
			<media:title type="html">Adminer in WordPress</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>SSEQ-LIB im Einsatz</title>
		<link>http://bueltge.de/sseq-lib-im-einsatz/1017/</link>
		<comments>http://bueltge.de/sseq-lib-im-einsatz/1017/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 09:29:41 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[WP]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1017</guid>
		<description><![CDATA[Ich habe hier live im Blog die SSEQ-LIB im Einsatz; nur so kann ich eine ausreichend frequentierte Plattform nutzen um die Library zu testen. Wenn jemanden meiner Leser Fehler, Ungereimtheiten oder einfach Unstimmigkeiten auffallen, dann wäre ich sehr dankbar für eine Mail oder einen Kommentar hier.

Zum Hintergrund: sseq-lib ist eine mächtige PHP-Security Bibliothek]]></description>
			<content:encoded><![CDATA[<p>Ich habe hier live im Blog die <a href="http://code.google.com/p/sseq-lib/">SSEQ-LIB</a> im Einsatz; nur so kann ich eine ausreichend frequentierte Plattform nutzen um die Library zu testen. Wenn jemanden meiner Leser Fehler, Ungereimtheiten oder einfach Unstimmigkeiten auffallen, dann wäre ich sehr dankbar für eine Mail oder einen Kommentar hier.</p>
<p><strong>Zum Hintergrund:</strong> <a href="http://code.google.com/p/sseq-lib/">sseq-lib</a> ist eine mächtige PHP-Security Bibliothek<br />
Security-Themen, die sseq-lib behandelt:</p>
<ul>
<li>XSS (Cross Site Scripting)</li>
<li>SQL-Injection</li>
<li>CSRF (Cross Site Request Forgery)</li>
<li>Session-Fixation</li>
<li>Mail-Header-Injection</li>
<li>File-Injection</li>
<li>HTTP-Header-Manipulation</li>
<li>Response-Splitting</li>
<li>Informative error messages</li>
</ul>
<p>Viele Informationen stehen im <a href="http://code.google.com/p/sseq-lib/">Projektverzeichnis</a> bereit und ebenfalls auf das Blog von <a href="http://www.erich-kachel.de/?page_id=133">Erich Kachel</a>.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/sseq-lib-im-einsatz/1017/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/sseq-lib-im-einsatz/1017/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Web-Anwendungen und ihre größten Schwachstellen</title>
		<link>http://bueltge.de/web-anwendungen-und-ihre-groeszten-schwachstellen/535/</link>
		<comments>http://bueltge.de/web-anwendungen-und-ihre-groeszten-schwachstellen/535/#comments</comments>
		<pubDate>Sun, 11 Nov 2007 00:17:51 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://bueltge.de/web-anwendungen-und-ihre-groeszten-schwachstellen/535/</guid>
		<description><![CDATA[Eine Liste mit Schwachstellen in Webanwendungen ohne Wertung der Reihenfolge. Viele Informationen beziehen sich auf die Aussagen des OWASP-Projektes. Dort sind auch mögliche Lösungen und Hintergründe in ausführlicher Form hinterlegt (Downloads). Cross Site Scripting (XSS) Die bekannteste und meiste genutzte Lücke im System - XSS. Wie, was und warum - dazu habe ich bereits einen [...]]]></description>
			<content:encoded><![CDATA[<p>Eine Liste mit Schwachstellen in Webanwendungen ohne Wertung der Reihenfolge. Viele Informationen beziehen sich auf die Aussagen des <a href="http://www.owasp.org/">OWASP-Projektes</a>. Dort sind auch mögliche Lösungen und Hintergründe in ausführlicher Form hinterlegt (<a href="http://www.owasp.org/index.php/OWASP_Guide_Project#OWASP_Guide_2.0_Downloads">Downloads</a>).<br />
<span id="more-535"></span></p>
<h3>Cross Site Scripting (XSS)</h3>
<p>Die bekannteste und meiste genutzte Lücke im System - XSS. Wie, was und warum - dazu habe ich bereits <a href="http://bueltge.de/cross-site-scripting-xss/477/">einen Artikel im Vorfeld</a> veröffentlicht.</p>
<p>Grundlegend heißt es, bösartige User hinterlegen Script im Browser des Anwenders und holen darüber benutzereigene Daten und können mit diesen Daten beispielsweise schadhaften Code injizieren. Die meisten Angriffe werden mittels JavaScript ausgeführt, daher auch die ehemalige Ablehnung von JavaScipt in einigen Bereichen. Grundlegend können aber XSS-Attacken mit jeder Script-Sprache ausgeführt werden, die der Browser unterstützt. Seit dem Thema Web 2.0 ist JavaScript in aller Munde und in vielen Anwendungen nicht mehr wegzudenken. Um so wichtiger das Wissen über die möglichen Schwachstellen und die damit verbundene Vorsorge. Gerade im AJAX-Umfeld ist XSS ein Problem.</p>
<p>Hierbei sehr interessant das <a href="http://ha.ckers.org/xss.html ">XSS-Cheat Sheet</a> (Auch im Download von OWASP zu finden)</p>
<h3>Cross Site Request Forgery (CSRF)</h3>
<p>Der Hacker greift den Client an und übernimmt die Kontrolle über den Browser. In der Regel passiert das nach dem Einloggen in eine Webappliaktion. Mit diesem Login kann der Hacker dann Anfragen an das System kreieren und nutzereigene Daten als Rückmeldung bekommen. In der Regel laufen derartige Aktione über Cookies-Sessions. Einzige Lösung ist das nicht Speichern durch den Browser von relevanten Daten.</p>
<h3>Offene URLs</h3>
<p>Eine ganze Reihe von Webseiten haben Anwendungen für kleine Bereiche laufen. Allerdings schützen sie die Verzeichnisse nicht und versierte User finden die URLs recht schnell und können so auf eventuell schützenswerte Daten zugreifen. Es findet also das klassische Erraten von Adressen statt, was man aber deswegen nicht als abwegig und nachlässig einstufen sollte. Prinzipiell sollte man den Anderen nicht unterschätzen, also lieber das Verzeichnis schützen und eine Zugangskontrolle implementieren.</p>
<h3>Ausführen von</h3>
<p>Kann die Applikation Nutzerdaten akzeptieren, dann kann prinzipiell auch schadhafter Code ausgeführt werden. Die meisten Probleme in diesem Umfeld sind mit der Sprache PHP bekannt. Anfällig ist aber jede Applikation oder Framework. Die Schwachstellen wird bezeichnet als Remote File Inclusion (RFI).</p>
<h3>Injection-Fehler</h3>
<p>Hierbei nutzen Hacker die Möglichkeit, dass Daten vom Anwender als Befehl oder Anfrage an einen Interpreter gesendet werden. Dabei werden die Befehle manipuliert und die Daten verändert. Man kann also jede Form von Daten für die Anwendung erstellen, lesen, ändern oder löschen. Das größte Problem in aktuellen Anwendungen sind die gelobten APIs. Diese könnten, wenn sie Lücken aufweisen dazu missbraucht werden. Klassisches Beispiel sind SQL-Injections.</p>
<h3>Objekt-Zugriff</h3>
<p>Unautorisierte Zugriffe via Direct Object References dienen dem Angreifer um auf Dateien, Verzeichnisse, Schlüssel oder direkt auf Datenbankeinträge zuzugreifen. Prinzipiell kann man, wenn man einen Schlüssel im System hat, auf die anderen Schlüssel schließen und verwenden. Ein klassisches Beispiel ist der Finanzmarkt: die Kontonummer des Nutzers referenziert ihn in allen Anwendungen und somit hat der Angreifer Kontonummer und kann damit weitere Daten abrufen. Eine indirekte Referenz kann helfen und macht die Zugriffe autonomer. Grundlegend sollten direkte Referenzen vermieden werden.</p>
<h3>Fehlerbehandlung</h3>
<p>Ausführliche und inhaltlich wertvolle Fehlerbeschreibungen eines Fehlers in der Webapplikation sind für Hacker ein Schlüssel. Mit diesen detailreichen Informationen können Bösewichte entsprechende Maßnahmen einleiten um das System für sich zu öffnen. Derartige Probleme lassen sich nur mit Hilfe von umfangreichen Tests finden. Auch dafür gibt es Tools mit entsprechenden Möglichkeiten. Außerdem gehört die Fehlerbehandlung im Live-Betrieb deaktiviert.</p>
<h3>Zugang via Session und Kommunikation</h3>
<p>Webapplikationen sind so gut wie immer mit einem Zugang geschützt, die Zugangsdaten gehören sicher gespeichert und der Zugang sollte immer per Protokoll SSL laufen. Ebenso speichert man Zugangsdaten nicht 1:1, sondern mit Hilfe eines Hash. Auch hier gilt es, Cookies sind nicht immer der Schlüssel zum Glück des Anwenders. Die Kommunikation zwischen verschiedenen Servern o.ä. gehört mittels Verschlüsselung oder Transport Layer Security realisiert.</p>
<h3>Offene Datenablage</h3>
<p>Die Datenablage ist bei relevanten Applikation schon heute in vielen Bereichen verschlüsselt. Die Daten selbst werden aber uncodiert gespeichert und die vorhandene Verschlüsselung ist oft unzureichend. Es gilt, dass möglichst starke und ausreichend getestet, besser standardisierte, Algorithmen genutzt werden. Einfache oder eigene Algorithmen entsprechen selten den nötigen Anforderungen.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/web-anwendungen-und-ihre-groeszten-schwachstellen/535/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/web-anwendungen-und-ihre-groeszten-schwachstellen/535/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>WP - Datenbank optimieren</title>
		<link>http://bueltge.de/wp-datenbank-optimieren/177/</link>
		<comments>http://bueltge.de/wp-datenbank-optimieren/177/#comments</comments>
		<pubDate>Fri, 19 May 2006 18:44:39 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Tipps]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.bueltge.de/?p=177</guid>
		<description><![CDATA[Mit Hilfe von phpMyAdmin kann man durch ein klein wenig Handarbeit seine Datenbankperformance verbessern. Das DB-Tool bietet dazu einige nützliche Funktionen. Wenige Schritte führen zu großer Wirkung. Ich habe bisher keine Messwerte, sondern mache dies nur immer mal, wenn es mir in den Sinn kommt. Deshalb habe ich nur Gefühlswerte. Bei Weblog Tools Collection ist [...]]]></description>
			<content:encoded><![CDATA[<p>Mit Hilfe von phpMyAdmin kann man durch ein klein wenig Handarbeit seine Datenbankperformance verbessern. Das DB-Tool bietet dazu einige nützliche Funktionen. Wenige Schritte führen zu großer Wirkung. Ich habe bisher keine Messwerte, sondern mache dies nur immer mal, wenn es mir in den Sinn kommt. Deshalb habe ich nur Gefühlswerte. Bei <a href="http://weblogtoolscollection.com/archives/2005/04/06/optimize-your-database/">Weblog Tools Collection</a> ist dazu ein wenig mehr nach zu lesen.</p>
<p>Wähle mit Hilfe von phpMyAdmin deine Datenbank. Liste deine Tabellen und wähle "Alle auswählen". Nun die Tabellen analysieren, im rechten Feld wählen "Analysiere Tabelle". Daraufhin nochmal das ganze und die Tabbeln prüfen - "Prüfe Tabelle".<br />
In beiden Fällen erhaltet ihr eine detaillierte Ergebnisliste.<br />
<a href="http://bueltge.de/wp-content/images/phpmyadmin/db-optimieren.jpg"><img class="centered" src="http://bueltge.de/wp-content/images/phpmyadmin/thump-db-optimieren.jpg" alt="Screenshot DB optimieren" title="Click für Zoom" /></a><br />
Daraufhin kann die Optimierung mit dem selben Rhythmus durchgeführt werden - "Optimiere Tabelle".</p>
<p><strong>Achtung:</strong><br />
Im Vorfeld sollte in jedem Fall eine Sicherung der Datenbank angelegt werden - mehr dazu gibt es im Artikel "<a href="http://bueltge.de/wp-datenbank-backup-mit-phpmyadmin/97/">Datenbank Backup mit phpMyAdmin</a>".<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/wp-datenbank-optimieren/177/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/wp-datenbank-optimieren/177/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/phpmyadmin/thump-db-optimieren.jpg" />
		<media:content url="http://bueltge.de/wp-content/images/phpmyadmin/thump-db-optimieren.jpg" medium="image">
			<media:title type="html">Click für Zoom</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>WP - Suchen und Ersetzen (de) (Plugin)</title>
		<link>http://bueltge.de/wp-suchen-und-ersetzen-de-plugin/114/</link>
		<comments>http://bueltge.de/wp-suchen-und-ersetzen-de-plugin/114/#comments</comments>
		<pubDate>Thu, 05 Jan 2006 08:12:41 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Plugin]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Suche]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://www.bueltge.de/?p=114</guid>
		<description><![CDATA[Jetzt  können alle erdenklichen Einträge in der DB gesucht und ersetzt werden. Besonders bei vielen Beiträgen empfinde ich das als sehr vorteilhaft.
Deshalb habe ich das Plugin auch für alle deutschen WordPress-User übersetzt, so dass es zum deutschen Layout passt und ein wenig verständlicher ist, was man damit machen kann.]]></description>
			<content:encoded><![CDATA[<p><em>If you want the information in <strong>english </strong>- please have a look  on this <a href="http://wordpress.org/extend/plugins/search-and-replace/">this page</a>.</em></p>
<p><a href="http://thedeadone.net/">Mark Cunningham</a> stellte vor geraumer Zeit sein <a href="http://thedeadone.net/software/search-and-replace-wordpress-plugin/">Plugin "Search and Replace"</a> in einer erweiterten Version bereit. Jetzt  können alle erdenklichen Einträge in der DB gesucht und ersetzt werden. Besonders bei vielen Beiträgen empfinde ich das als sehr vorteilhaft.<br />
Deshalb habe ich das Plugin auch für alle deutschen WordPress-User übersetzt, so dass es zum deutschen Layout passt und ein wenig verständlicher ist, was man damit machen kann.</p>
<h3>Anforderungen:</h3>
<p>Suchen und Ersetzen arbeitet mit WordPress Version 1.5 und wurde getestet bis Version 2.9-rare.</p>
<h3>Installation:</h3>
<ol>
<li>Das Paket downloaden und lokal entpacken.</li>
<li>Kopiere die Dateien, inklusive Ordner in deinen Plugin-Ordner (/wp-content/plugins).</li>
<li>Aktiviere das Plugin in der Admin-Oberfläche deines WordPress-Blogs</li>
</ol>
<p><strong>Anwendung:</strong><br />
In eurer WP-Admin-Oberfläche findet ihr nun unter <em>Verwalten </em>den neuen Tab <em>Suchen &#038; Ersetzen</em>. Dort sind alle Funktionen nutzbar.</p>
<p><img class='centered' src='http://bueltge.de/wp-content/images/searchandreplace.png' alt='Screenshot Suchen und Ersetzen Plugin' /></p>
<p>Dieses Plugin arbeitet mit einer Standard SQL Abfrage und verändert deine DB direkt.</p>
<h4>Achtung:</h4>
<p> Du <strong>kannst nichts rückgängig</strong> machen mit diesem Plugin. Wenn du dir nicht sicher bist, fertige eine Sicherung deiner DB im Vorfeld an. Ansonsten kann man nur die Funktion umgekehrt wiederholen oder direkt in der DB Änderungen vornehmen, z.B. mit phpMyAdmin.</p>
<p>Die Textsuche ist sensitiv und besitzt keine passende Abstimmungsbefähigung.<br />
Du kannst folgende Einträge bearbeiten: ID von Beiträgen, Beitrag (content), Titel (titles), Auszug (excerpt), Kommentarbeiträge (comment content), Tags, User-ID, Kommentarautor (comment author) etc..<br />
Die Funktion arbeitet stringbasierend und kann somit auch HTML-Tags ersetzen.</p>
<h3>Download:</h3>
<form class="spenden" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="amount" id="eins" value="" />
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="business" value="frank@bueltge.de" />
<input type="hidden" name="item_name" value="Spende bueltge.de" />
<input type="hidden" name="no_shipping" value="1" />
<input type="hidden" name="return" value="http://bueltge.de/" />
<input type="hidden" name="cancel_return" value="http://bueltge.de/" />
<input type="hidden" name="currency_code" value="EUR" />
<input type="hidden" name="tax" value="0" />
<input type="hidden" name="bn" value="PP-DonationsBF" />
<input type="image" src="http://bueltge.de/wp-content/images/donate.png" style="border:0" name="submit" alt="Zahlen Sie mit PayPal - schnell, kostenlos und sicher!" />
</form>
<p><strong>Ist die Arbeit nicht 1 Euro wert?</strong><br />
Jede Spende wird dankbar angenommen und ermöglicht das weitere Arbeiten an freier Software.<br />
Möchtest du mehr oder anders spenden, so besuche meine <a href="http://bueltge.de/wunschliste/">Wunschliste</a>.</p>
<p>Download als zip-Datei: <a href="http://downloads.wordpress.org/plugin/search-and-replace.zip">downloads.wordpress.org/plugin/search-and-replace.zip</a> - 90 kByte</p>
<h3>Historie:</h3>
<ul>
<li>Version 1.2 - Alles in deutsch</li>
<li>Version 1.3 - Bugs behoben; getestet mit WP 2.0</li>
<li>Version 1.5 - ersetzen auch in Kommentar-URLs, getestet unter 2.2beta</li>
<li>Version 1.6 - ersetzen auch in Kommentar-E-Mail</li>
<li>Version 1.7 - Mehrsprachigkeit ermöglicht, englisches Sprachfile beigelegt, Ordnerstruktur eingefügt</li>
<li>Version 1.71 - french, polish translation, Rechtschreibfehler korrigiert, Sprachfiles angepasst</li>
<li>Version 1.8 - Tags, Kategorien, Beschreibung ab WP-Version 2.3 durchsuchbar, <code>wp_nonce</code> integriert.</li>
<li>Version 1.9 - <code>wp_nonce</code> verändert, WP 2.5 Style</li>
<li>Version 2.1 - neue Übersetzungsdateien</li>
<li>Version 2.0 - WP 2.5 Design, Neu: <code>meta_data, user-id, user-login, GUID</code> ...</li>
<li>Version 2.2 - Ordnerstruktur geändert, extra languages-Ordner</li>
<li>Version 2.3 - Bug gefixt in <code>descr</code>, neuer Datei-Name</li>
<li>Version 2.4 - <code>ID</code> für Posts ändern, Kleine Inhaltsänderungen, Ausgabe der Änderungen</li>
<li>Version 2.5 - Umstellung Code, 2.6 Anpassungen, Verbesserungen beim Bestätigungsdialog; Core in englisch, de als Sprachfile</li>
</ul>
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/wp-suchen-und-ersetzen-de-plugin/114/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/wp-suchen-und-ersetzen-de-plugin/114/feed/</wfw:commentRss>
		<slash:comments>282</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/searchandreplace.png" />
		<media:content url="http://bueltge.de/wp-content/images/searchandreplace.png" medium="image">
			<media:title type="html">Screenshot Suchen und Ersetzen Plugin</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
	</channel>
</rss>

