Nobots.php
<?
- Add a Human Detector to the create-account section of login form
global $xwUserName; $comment = ; $code = array(); for ( $i = 1; $i < 5; $i++ ) $code[] = rand(0,1) ? rand(65,90) : rand(49,57); $code = 'code='.join( '.', $code );
if ( $event == 'view' ) { # "optional" instead of asterisk $article = preg_replace( '/(email|name)\\*/', '$1 (optional)', $article ); # Remove mail-buttons and bullshit text $article = preg_replace( '/<input[^<]+?wpCreateaccountMail.+?(<\\/table>)/s', '$1', $article ); # Add "new users:" heading
$article = preg_replace( '/(<td.+?Retype password:)/', "
New users:
$1", $article );
# Add Human-detector and SadGir-image $article = preg_replace( '/<td.+?\\(new users only\\)/',
'<a href="http://en.wikipedia.org/wiki/GIR_(Invader_Zim)"><img src="http://www.organicdesign.co.nz/wiki/images/a/a2/SadGir.jpg" /></a>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width=155 height=50 id=/wiki/nobots.swf align="" type="application/x-shockwave-flash" data=/wiki/nobots.swf> <param name=flashvars value="'.$code.'"> <param name=movie value=/wiki/nobots.swf> <param name=quality value=low> <param name=bgcolor value=ffffff> <embed src=/wiki/nobots.swf quality=low bgcolor=ffffff width=155 height=50 align="" flashvars="'.$code.'" name=/wiki/nobots.swf type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
Enter the characters above
to prove you\'re not a robot
<input type=text name=xwSpecies size=20>
No robots allowed!',
$article ); } elseif ( $event == 'init' ) { # Called before processing posted login form xwSetProperty( $properties, 'xpath:/properties:view', $tTitle ); if ( $_REQUEST['wpCreateaccount'] ) { $xwBot = $_REQUEST['wpName']; if ( !ereg( '^[1-9A-Z]{4}$', $_REQUEST['xwSpecies'] ) ) { $url = $_SERVER['HTTP_HOST']."/wiki/index.php?title=No+Bots!&xwBot=$xwBot"; header( "Location: http://$url" ); exit; } $comment = "User:$xwBot successfully created from IP $xwUserName"; } } elseif ( $event == 'data' && ( $xwBot = $_REQUEST['xwBot'] ) ) { # This is called from the "No Bots!" page $comment = "Attempt from IP $xwUserName to create user \"$xwBot\" denied ;-)"; }
- Append the XmlWiki log article if there's a comment
if ( $comment ) { global $wgLang; $ts = $wgLang->timeanddate( wfTimestampNow(), true ); $log = xwArticleContent( 'XmlWiki Log' )."\n*$ts : $comment"; $a = new Article( Title::makeTitle( 0, 'XmlWiki Log' ) ); $a->quickEdit( $log ); } ?>