<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://htyp.org/mw/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%2Farchive%2Fextensions%2FSpecial%2FLogPost</id>
	<title>MediaWiki/archive/extensions/Special/LogPost - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://htyp.org/mw/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%2Farchive%2Fextensions%2FSpecial%2FLogPost"/>
	<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=MediaWiki/archive/extensions/Special/LogPost&amp;action=history"/>
	<updated>2026-06-27T02:01:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://htyp.org/mw/index.php?title=MediaWiki/archive/extensions/Special/LogPost&amp;diff=23407&amp;oldid=prev</id>
		<title>Woozle: Woozle moved page MediaWiki/Special/LogPost to MediaWiki/archive/extensions/Special/LogPost without leaving a redirect: obsolete, but may contain useful bits</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=MediaWiki/archive/extensions/Special/LogPost&amp;diff=23407&amp;oldid=prev"/>
		<updated>2017-12-15T00:23:01Z</updated>

		<summary type="html">&lt;p&gt;Woozle moved page &lt;a href=&quot;/mw/index.php?title=MediaWiki/Special/LogPost&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;MediaWiki/Special/LogPost (page does not exist)&quot;&gt;MediaWiki/Special/LogPost&lt;/a&gt; to &lt;a href=&quot;/MediaWiki/archive/extensions/Special/LogPost&quot; title=&quot;MediaWiki/archive/extensions/Special/LogPost&quot;&gt;MediaWiki/archive/extensions/Special/LogPost&lt;/a&gt; without leaving a redirect: obsolete, but may contain useful bits&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:23, 15 December 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=MediaWiki/archive/extensions/Special/LogPost&amp;diff=11414&amp;oldid=prev</id>
		<title>Woozle: MediaWiki/SpecialLogPost moved to MediaWiki/Special/LogPost: so &quot;special&quot; can be an index of specialpage extensions</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=MediaWiki/archive/extensions/Special/LogPost&amp;diff=11414&amp;oldid=prev"/>
		<updated>2009-02-24T01:49:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/MediaWiki/SpecialLogPost&quot; class=&quot;mw-redirect&quot; title=&quot;MediaWiki/SpecialLogPost&quot;&gt;MediaWiki/SpecialLogPost&lt;/a&gt; moved to &lt;a href=&quot;/mw/index.php?title=MediaWiki/Special/LogPost&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;MediaWiki/Special/LogPost (page does not exist)&quot;&gt;MediaWiki/Special/LogPost&lt;/a&gt;: so &amp;quot;special&amp;quot; can be an index of specialpage extensions&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:49, 24 February 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=MediaWiki/archive/extensions/Special/LogPost&amp;diff=11121&amp;oldid=prev</id>
		<title>Woozle: New page: ==Overview== &#039;&#039;&#039;Special:LogPost&#039;&#039;&#039; is a MediaWiki extension which displays and logs any data sent to it via HTTP POST. It was written primarily for capturing sample d...</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=MediaWiki/archive/extensions/Special/LogPost&amp;diff=11121&amp;oldid=prev"/>
		<updated>2009-01-03T00:51:27Z</updated>

		<summary type="html">&lt;p&gt;New page: ==Overview== &amp;#039;&amp;#039;&amp;#039;Special:LogPost&amp;#039;&amp;#039;&amp;#039; is a &lt;a href=&quot;/MediaWiki&quot; title=&quot;MediaWiki&quot;&gt;MediaWiki&lt;/a&gt; extension which displays and logs any data sent to it via &lt;a href=&quot;/HTTP&quot; title=&quot;HTTP&quot;&gt;HTTP&lt;/a&gt; &lt;a href=&quot;/mw/index.php?title=HTTP_POST&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;HTTP POST (page does not exist)&quot;&gt;POST&lt;/a&gt;. It was written primarily for capturing sample d...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Overview==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Special:LogPost&amp;#039;&amp;#039;&amp;#039; is a [[MediaWiki]] extension which displays and logs any data sent to it via [[HTTP]] [[HTTP POST|POST]]. It was written primarily for capturing sample data from [[PayPal/IPN|PayPal Instant Payment Notification]], but could also be useful in any other situation where POSTed data needs to be checked.&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;php&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 NAME: SpecialMakePage&lt;br /&gt;
 PURPOSE: Special page for creating a new page from a form&lt;br /&gt;
	Other extensions can do this, but they don&amp;#039;t make it at all easy&lt;br /&gt;
	to base the title on variables which are substituted from fields on the form.&lt;br /&gt;
 AUTHOR: Woozle Staddon&lt;br /&gt;
 VERSION:&lt;br /&gt;
	2008-12-31 0.0 (Wzl) Writing started - using SpecialMakePage as a skeleton&lt;br /&gt;
	2009-01-02 1.0 (Wzl) It does what I need it to do; no need to start with small version numbers...&lt;br /&gt;
*/&lt;br /&gt;
$wgSpecialPages[&amp;#039;LogPost&amp;#039;] = &amp;#039;SpecialLogPost&amp;#039;; # Let MediaWiki know about your new special page.&lt;br /&gt;
$wgExtensionCredits[&amp;#039;other&amp;#039;][] = array(&lt;br /&gt;
        &amp;#039;name&amp;#039; =&amp;gt; &amp;#039;Special:LogPost&amp;#039;,&lt;br /&gt;
        &amp;#039;description&amp;#039; =&amp;gt; &amp;#039;special page for logging POSTed form data&amp;#039;,&lt;br /&gt;
        &amp;#039;author&amp;#039; =&amp;gt; &amp;#039;Woozle Staddon&amp;#039;,&lt;br /&gt;
	&amp;#039;version&amp;#039; =&amp;gt; &amp;#039;1.0 2009-01-02&amp;#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function wfSpecialLogPost() {&lt;br /&gt;
// This registers the page&amp;#039;s class. I think.&lt;br /&gt;
	global $wgRequest;&lt;br /&gt;
&lt;br /&gt;
	$app = new SpecialLogPost($wgRequest);&lt;br /&gt;
&lt;br /&gt;
	$app-&amp;gt;doLog();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
require_once( $wgScriptPath.&amp;#039;includes/SpecialPage.php&amp;#039; );&lt;br /&gt;
require_once( $wgScriptPath.&amp;#039;includes/EditPage.php&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
class SpecialLogPost extends SpecialPage {&lt;br /&gt;
  public function __construct() {&lt;br /&gt;
	global $wgMessageCache;&lt;br /&gt;
&lt;br /&gt;
	parent::__construct( &amp;#039;LogPost&amp;#039; );&lt;br /&gt;
	$this-&amp;gt;includable( false );&lt;br /&gt;
        $wgMessageCache-&amp;gt;addMessage(&amp;#039;logpost&amp;#039;, &amp;#039;Log POSTed data&amp;#039;);&lt;br /&gt;
  }&lt;br /&gt;
  public function doLog() {&lt;br /&gt;
	global $wgRequest, $wgOut;&lt;br /&gt;
&lt;br /&gt;
	$this-&amp;gt;setHeaders();&lt;br /&gt;
&lt;br /&gt;
	$out = date(&amp;#039;Y-m-d H:i:s&amp;#039;).&amp;quot;\n&amp;quot;;&lt;br /&gt;
	$out .= $this-&amp;gt;EnvLine(&amp;#039;REQUEST_METHOD&amp;#039;);&lt;br /&gt;
	$out .= $this-&amp;gt;EnvLine(&amp;#039;HTTP_USER_AGENT&amp;#039;);&lt;br /&gt;
	$out .= $this-&amp;gt;EnvLine(&amp;#039;REMOTE_ADDR&amp;#039;);&lt;br /&gt;
	$out .= &amp;quot;\tPOSTed form data:\n&amp;quot;;&lt;br /&gt;
// display results on screen&lt;br /&gt;
	foreach ($_POST AS $key =&amp;gt; $value) {&lt;br /&gt;
		$wgOut-&amp;gt;AddWikiText(&amp;quot;* &amp;#039;&amp;#039;&amp;#039;$key&amp;#039;&amp;#039;&amp;#039;: $value&amp;quot;);&lt;br /&gt;
		$out .= &amp;quot;\t\t$key\t$value\n&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
// write more complete data to log file:&lt;br /&gt;
	$fh = fopen(&amp;#039;SpecialLogPost.log&amp;#039;, &amp;#039;a&amp;#039;);&lt;br /&gt;
	$qb = fwrite($fh, $out);&lt;br /&gt;
	fclose($fh);&lt;br /&gt;
	$wgOut-&amp;gt;AddWikiText($qb.&amp;#039; bytes logged&amp;#039;);&lt;br /&gt;
  }&lt;br /&gt;
  private function EnvLine($iName) {&lt;br /&gt;
	return &amp;quot;\t&amp;quot;.$iName.&amp;quot;\t&amp;quot;.$_ENV[$iName].&amp;quot;\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/php&amp;gt;&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
</feed>