Difference between revisions of "Nobots.php"
m |
m |
||
| (49 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| − | <? | + | {{legacy}} |
| − | # Add | + | <php><? |
| + | # Add a Human Detector to the create-account section of login form | ||
global $xwUserName; | global $xwUserName; | ||
$comment = ''; | $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' ) { | if ( $event == 'view' ) { | ||
| − | # | + | # "optional" instead of asterisk |
| + | $article = preg_replace( '/(email|name)\\*/', '$1 <i>(optional)</i>', $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:)/', "<td><h2>New users:</h2></td></tr><tr>$1", $article ); | ||
| + | # Add Human-detector and SadGir-image | ||
$article = preg_replace( | $article = preg_replace( | ||
| − | + | '/<td.+?\\(new users only\\)/', | |
| − | + | '<td rowspan=2><a href="http://en.wikipedia.org/wiki/GIR_(Invader_Zim)"><img src="http://www.organicdesign.co.nz/wiki/images/a/a2/SadGir.jpg" /></a></td></tr> | |
| + | <tr><td><td> | ||
| + | <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/images/c/c4/Nobots.swf align="" | ||
| + | type="application/x-shockwave-flash" data=/wiki/images/c/c4/Nobots.swf> | ||
| + | <param name=flashvars value="'.$code.'"> | ||
| + | <param name=movie value=/wiki/images/c/c4/Nobots.swf> | ||
| + | <param name=quality value=low> | ||
| + | <param name=bgcolor value=ffffff> | ||
| + | <embed src=/wiki/images/c/c4/Nobots.swf quality=low bgcolor=ffffff | ||
| + | width=155 height=50 align="" flashvars="'.$code.'" | ||
| + | name=/wiki/images/c/c4/Nobots.swf type="application/x-shockwave-flash" | ||
| + | pluginspage="http://www.macromedia.com/go/getflashplayer" /> | ||
| + | </object></td></tr> | ||
| + | <tr><td align=right><i>Enter the characters above <br>to prove you\'re not a robot </i></td> | ||
| + | <td align=left valign=bottom><input type=text name=xwSpecies size=20> </td> | ||
| + | <td align=left><b><i>No robots allowed!</i></b></td>', | ||
$article | $article | ||
); | ); | ||
| − | |||
} | } | ||
elseif ( $event == 'init' ) { | elseif ( $event == 'init' ) { | ||
| − | # Called | + | # Called before processing posted login form |
xwSetProperty( $properties, 'xpath:/properties:view', $tTitle ); | xwSetProperty( $properties, 'xpath:/properties:view', $tTitle ); | ||
if ( $_REQUEST['wpCreateaccount'] ) { | if ( $_REQUEST['wpCreateaccount'] ) { | ||
| − | if ( $_REQUEST['xwSpecies'] | + | $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; | exit; | ||
} | } | ||
| − | $comment = " | + | $comment = "[[User:$xwBot]] successfully created from IP $xwUserName"; |
} | } | ||
} | } | ||
elseif ( $event == 'data' && ( $xwBot = $_REQUEST['xwBot'] ) ) { | elseif ( $event == 'data' && ( $xwBot = $_REQUEST['xwBot'] ) ) { | ||
# This is called from the "No Bots!" page | # This is called from the "No Bots!" page | ||
| − | $comment = "Attempt from $xwUserName to create user \"$xwBot\" denied ;-)"; | + | $comment = "Attempt from IP $xwUserName to create user \"$xwBot\" denied ;-)"; |
} | } | ||
| − | if | + | # Append the XmlWiki log article if there's a comment |
| − | + | if ($comment) xwLog($comment); | |
| − | + | ?></php> | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | ?> | ||
Latest revision as of 09:47, 14 March 2009
<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/images/c/c4/Nobots.swf align="" type="application/x-shockwave-flash" data=/wiki/images/c/c4/Nobots.swf> <param name=flashvars value="'.$code.'"> <param name=movie value=/wiki/images/c/c4/Nobots.swf> <param name=quality value=low> <param name=bgcolor value=ffffff> <embed src=/wiki/images/c/c4/Nobots.swf quality=low bgcolor=ffffff width=155 height=50 align="" flashvars="'.$code.'" name=/wiki/images/c/c4/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) xwLog($comment); ?></php>



