Thank you Aliia.
It works very well:
This works perfectly
$router->addRoute(new OW_Route('base_join', 'join42342432', 'BASE_CTRL_Join', 'index'));
This could be futher obfusticated using ideas like
if (the day is Monday) {
$router->addRoute(new OW_Route('base_join', 'join42342432', 'BASE_CTRL_Join', 'index'));}
if (the day is Tuesday) {
$router->addRoute(new OW_Route('base_join', 'join346645645', 'BASE_CTRL_Join', 'index'));}
All I have to do know is design a question and answer system.
The user will only be sent through to join42342432 if the questions are answered correctly.
There are lots of really simple systems to use.
Look at this one
http://identipic.com/
Here are a lot of free capture scripts
http://www.hotscripts.com/...ems/captcha-scripts/
Just by using my own page for /join I have now cut spam users to zero.
There were about 40 before.
In the next few days I will implement a system to let real users sign up using a method similar to the above.
If lots of people design custom antispam systems then it will be impossible for people to design spam bots which sign up users.
Here is another idea. It is probably too simple but would work for a while.
<p>What is 2+2?</p><inputtype="text"name="answer"id="answer"/>
<?php
if(isset($_POST['submit'])){
if(isset($_POST['answer'])&&$_POST['answer']==4){
#Right answer was given continue with submitting form
}else{
#The wrong answer was given give an error message.
}
}
?>