NEW FEATURE: add a random math question to the registration progress to get rid of...
authorArun Persaud <arun@nubati.net>
Sun, 18 Jan 2009 06:50:05 +0000 (22:50 -0800)
committerArun Persaud <arun@nubati.net>
Sun, 18 Jan 2009 06:50:05 +0000 (22:50 -0800)
make it harder for robots to register

include/output.php
include/register.php

index 48f31e4ac73ff3b5b80f74d7f12ea36c1c16d81b..395e4ec812cc8a171b09c2db9e4802cdfa99c973 100644 (file)
@@ -440,4 +440,20 @@ function output_user_notes($userid,$gameid,$userstatus)
   return;
 }
 
   return;
 }
 
+function output_robotproof($i)
+{
+  switch($i)
+    {
+    case 0:
+      return "6*7=";
+    case 1:
+      return "5*7=";
+    case 2:
+      return "4*7=";
+    case 3:
+      return "3*7=";
+    case 4:
+      return "2*7=";
+    }
+}
 ?>
\ No newline at end of file
 ?>
\ No newline at end of file
index 797e60563e431c9b41f6f81ed74c89a458dfcf8f..7f3266bba19d0fa4885a60d73f3758a5d6f038ac 100644 (file)
@@ -12,17 +12,59 @@ if(myisset("Rfullname","Remail","Rpassword","Rtimezone") )
 
     /* is this name already in use/ */
     $ok=1;
 
     /* is this name already in use/ */
     $ok=1;
-    if(DB_get_userid('name',$_REQUEST["Rfullname"]))
+    if(DB_get_userid('name',$_REQUEST['Rfullname']))
       {
        echo "please chose another name<br />";
        $ok=0;
       }
     /* check if email address is already used */
       {
        echo "please chose another name<br />";
        $ok=0;
       }
     /* check if email address is already used */
-    if(DB_get_userid('email',$_REQUEST["Remail"]))
+    if(DB_get_userid('email',$_REQUEST['Remail']))
       {
        echo "this email address is already used ?!<br />";
        $ok=0;
       }
       {
        echo "this email address is already used ?!<br />";
        $ok=0;
       }
+    /* check against robots */
+    $robots=0; /* at least one anti-robot question needs to be answered */
+    if(myisset('Robotproof0'))
+      {
+       if($_REQUEST['Robotproof0']!=42)
+         $ok=0;
+       else
+         $robot=1;
+      }
+    else if(myisset('Robotproof1'))
+      {
+       if($_REQUEST['Robotproof1']!=35)
+         $ok=0;
+       else
+         $robot=1;
+      }
+    else if(myisset('Robotproof2'))
+      {
+       if($_REQUEST['Robotproof2']!=28)
+         $ok=0;
+       else
+         $robot=1;
+      }
+    else if(myisset('Robotproof3'))
+      {
+       if($_REQUEST['Robotproof3']!=21)
+         $ok=0;
+       else
+         $robot=1;
+      }
+    else if(myisset('Robotproof4'))
+      {
+       if($_REQUEST['Robotproof4']!=14)
+         $ok=0;
+       else
+         $robot=1;
+      }
+    if($robot==0)
+      {
+       echo "You answered the math question wrong. <br />\n";
+       $ok=0;
+      }
 
     /* everything ok, go ahead and create user */
     if($ok)
 
     /* everything ok, go ahead and create user */
     if($ok)
@@ -44,6 +86,10 @@ if(myisset("Rfullname","Remail","Rpassword","Rtimezone") )
        else
          echo " something went wrong, couldn't add you to the database, please contact $ADMIN_NAME at $ADMIN_EMAIL.";
       }
        else
          echo " something went wrong, couldn't add you to the database, please contact $ADMIN_NAME at $ADMIN_EMAIL.";
       }
+    else
+      {
+       echo "Couldn't register you. Please <a href=\"index.php?action=register\">try again</a>! </br />\n";
+      }
   }
  else
    {
   }
  else
    {
@@ -59,13 +105,13 @@ if(myisset("Rfullname","Remail","Rpassword","Rtimezone") )
              <table>
               <tr>
                <td><label for="Rfullname">Full name:</label></td>
              <table>
               <tr>
                <td><label for="Rfullname">Full name:</label></td>
-              <td><input type="text" id="Rfullname" name="Rfullname" size="20" maxsize="30" /> </td>
+              <td><input type="text" id="Rfullname" name="Rfullname" size="20" maxlength="30" /> </td>
               </tr><tr>
                <td><label for="Remail">Email:</label></td>
               </tr><tr>
                <td><label for="Remail">Email:</label></td>
-              <td><input type="text" id="Remail" name="Remail" size="20" maxsize="30" /></td>
+              <td><input type="text" id="Remail" name="Remail" size="20" maxlength="30" /></td>
               </tr><tr>
               <td><label for="Rpassword">Password(will be displayed in cleartext on the next page):</label></td>
               </tr><tr>
               <td><label for="Rpassword">Password(will be displayed in cleartext on the next page):</label></td>
-               <td><input type="password" id="Rpassword" name="Rpassword" size="20" maxsize="30" /></td>
+               <td><input type="password" id="Rpassword" name="Rpassword" size="20" maxlength="30" /></td>
               </tr><tr>
               <td><label for="Rtimezone">Timezone:</label></td>
                <td>
               </tr><tr>
               <td><label for="Rtimezone">Timezone:</label></td>
                <td>
@@ -73,8 +119,20 @@ if(myisset("Rfullname","Remail","Rpassword","Rtimezone") )
                output_select_timezone("Rtimezone");
 ?>
               </td>
                output_select_timezone("Rtimezone");
 ?>
               </td>
+              </tr><tr>
+              </tr><tr>
+<?php
+              /* random number to select robotproof question */
+             $rand_number = mt_rand(0,3); /* to get numbers between 0 and 4  */
+              $Robotproof = "Robotproof".$rand_number;
+?>
+               <td><label for="Robotproof">Please answer this question: <?php echo output_robotproof($rand_number); ?></label></td>
+<?php
+        echo "<td><input type=\"text\" id=\"$Robotproof\" name=\"$Robotproof\" size=\"20\" maxlength=\"30\" /></td>\n";
+?>
               </tr><tr>
                <td colspan="2"> <input type="submit" value="register" /></td>
               </tr><tr>
                <td colspan="2"> <input type="submit" value="register" /></td>
+              </tr>
              </table>
           </fieldset>
         </form>
              </table>
           </fieldset>
         </form>