You are not logged in.
- Topics: Active | Unanswered
#1 2009-12-06 7:26 pm
- pedigree
- uıɐbɐ ʎɐqǝ ɯoɹɟ pɹɐoqʎǝʞ ɐ buıʎnq ɹǝʌǝu ɯ,ı
- From: New Zealand
- Registered: 2008-04-16
- Posts: 7,082
HOW TO: POSTing/GETting Data to/from the API
In order for email/usernames to be correctly added to the database when POSTing data, they must be correctly encoded.
For PHP, then means submitting the details using the urlencode() function
eg
"username=" . $urlencode($username) . "&email=" . urlencode($email)
We are seeing an increased amount of submissions where the data is not correctly encoded, the main issue being that + signs are not being encoded correctly but being left as + signs. This means that a space is inserted in the email (eg) instead of a + sign.
Offline
#2 2009-12-11 4:50 am
- nullamatix.com
- Member
- From: 127.0.0.1
- Registered: 2009-12-11
- Posts: 8
- Website
Re: HOW TO: POSTing/GETting Data to/from the API
This will also work:
$p = http_build_query(
array(
'username' => 'spammer',
'ip_addr' => '172.16.20.99',
'email' => 'spammer@stinkyspam.com',
'api_key' => 'xxxxxxxxxx'
)
);
Generates a URL-encoded query string from the associative (or indexed) array provided.
Offline
#3 2010-01-15 1:17 am
- Mast3rpyr0
- Member
- Registered: 2010-01-14
- Posts: 1
Re: HOW TO: POSTing/GETting Data to/from the API
i am attempting to add this into my PHPBB board so that whenever i ban someone by IP, it also submits to you guys.
I have added the following under what is executed upon selecting an IP Ban from the admin panel:
$php_load_options = array(
'return_info' => true,
'method' => 'post'
);
$php_load_url = 'http://www.stopforumspam.com/post.php?username='.$user->lang['USERNAME'].'&ip_addr='.$user->lang['IP_HOSTNAME'].'&email='.$user->lang['EMAIL_ADDRESS'].'&api_key=XXXXXXXX';
$php_load_result = load($php_load_url,$php_load_options);
the php_load_options is a custom script that is supposed to load the URL, and i assume i set that up correctly.
Am I missing something?
Offline
#4 2010-01-15 2:13 am
- nullamatix.com
- Member
- From: 127.0.0.1
- Registered: 2009-12-11
- Posts: 8
- Website
Re: HOW TO: POSTing/GETting Data to/from the API
I'm not familiar with phpbb, but this is what I'm using to submit via the WordPress comments page.
function submit_spam($uname, $ip, $em) {
$postdata = http_build_query(
array(
'username' => $uname,
'ip_addr' => $ip,
'email' => $em,
'api_key' => 'abcdefg123456')
);
$opts = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://www.stopforumspam.com/post.php', false, $context);
return $result;
}
To execute the function, I just click a link...
/?uid=SpammerName&uip=SpammerIP&uem=SpammerEmail
Which, if all the variables exist, runs:
submit_spam($uid, $uip, $uem);
Porting that to phpbb shouldn't be too much trouble.. Keep us posted.
Offline
#5 2010-01-15 2:23 am
- pedigree
- uıɐbɐ ʎɐqǝ ɯoɹɟ pɹɐoqʎǝʞ ɐ buıʎnq ɹǝʌǝu ɯ,ı
- From: New Zealand
- Registered: 2008-04-16
- Posts: 7,082
Re: HOW TO: POSTing/GETting Data to/from the API
Am I missing something?
yes, the several other threads that exactly the same thing has been solved.
You POST to post.php
You GET to add.php
but as I dont have the rest of the functions, I cant help out. The certainly isnt how you build a post form though, change it to add.php and post to get
And for the love of god
DO NOT POST YOUR API KEY in the forums
Because you did, I had to delete the API key incase someone decided to start using it. Youll need to get another one
Offline
#6 2010-01-15 11:44 am
- Spud
- Member
- From: Kent, UK
- Registered: 2009-09-08
- Posts: 206
- Website
Re: HOW TO: POSTing/GETting Data to/from the API
LOL are you actually saying that this poor API key was actually used? (abcdefg123456)? Talk about weak passwords, Anyone using such deserves to be hacked.
Passwords should be a minimum of 10 characters long and contain upper/lower case characters, numbers and *%$) symbols too. It's the only way to help ensure your sites safety.
Spam - Uninteresting garbage quickly deleted.
Spammer - A parasitic worm intent on creating internet misery.
Offline
#7 2010-01-15 1:26 pm
- pedigree
- uıɐbɐ ʎɐqǝ ɯoɹɟ pɹɐoqʎǝʞ ɐ buıʎnq ɹǝʌǝu ɯ,ı
- From: New Zealand
- Registered: 2008-04-16
- Posts: 7,082
Re: HOW TO: POSTing/GETting Data to/from the API
no, one that I editted and replaced with XXXXXXXXXX
Offline
#8 2010-01-15 9:27 pm
- Spud
- Member
- From: Kent, UK
- Registered: 2009-09-08
- Posts: 206
- Website
Re: HOW TO: POSTing/GETting Data to/from the API
Hehe thank god, I actually thought someone was dense enough to use something like that (No offense intended to nullamatix.com as it was not your doing).
Spam - Uninteresting garbage quickly deleted.
Spammer - A parasitic worm intent on creating internet misery.
Offline
#9 2010-01-27 11:51 pm
- Odis
- Member
- Registered: 2008-08-19
- Posts: 1
Re: HOW TO: POSTing/GETting Data to/from the API
I'm not familiar with phpbb, but this is what I'm using to submit via the WordPress comments page.
function submit_spam($uname, $ip, $em) { $postdata = http_build_query( array( 'username' => $uname, 'ip_addr' => $ip, 'email' => $em, 'api_key' => 'abcdefg123456') ); $opts = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata ) ); $context = stream_context_create($opts); $result = file_get_contents('http://www.stopforumspam.com/post.php', false, $context); return $result; }
To execute the function, I just click a link...
/?uid=SpammerName&uip=SpammerIP&uem=SpammerEmail
Which, if all the variables exist, runs:
submit_spam($uid, $uip, $uem);
Porting that to phpbb shouldn't be too much trouble.. Keep us posted.
Where do you add that in wordpress? I'd like a simple way to report comments via the wordpress page.
I found your plugin on your website. Can you add an option to this plugin that will allow the data to be sent to stopforumspam.com with my API key just by clicking a link. This would save the trouble of having to copy and paste. Perhaps tying it into the existing "Report & Delete" of wordpress?
Last edited by Odis (2010-01-28 12:10 am)
Offline
#10 2010-02-02 4:27 pm
- EOC_Jason
- Member
- Registered: 2010-01-28
- Posts: 50
Re: HOW TO: POSTing/GETting Data to/from the API
Hey guys,
You might want to make mention of the GET method (and URL) on the API page. The existing POST info with URL is a little misleading since you don't actually POST with the URL variables in the string.
I was a little confused as to why my information wasn't auto-submitting for confirmed spammers till I realized it had to be POST and not GET for the example info on the API page.
Offline
#11 2010-02-02 6:13 pm
- pedigree
- uıɐbɐ ʎɐqǝ ɯoɹɟ pɹɐoqʎǝʞ ɐ buıʎnq ɹǝʌǝu ɯ,ı
- From: New Zealand
- Registered: 2008-04-16
- Posts: 7,082
Re: HOW TO: POSTing/GETting Data to/from the API
I know, Ive updated it on the new code that will be rolled out soon. There is a large chunk of updates as you can post data in this format or in json and php serialize as well.
Offline
#12 2011-05-06 7:33 am
- Garf
- Member
- Registered: 2011-05-05
- Posts: 2
Re: HOW TO: POSTing/GETting Data to/from the API
By the way, integrating the checking code is really easy because of the serialization support.
Unfortunately, the add.php doesn't seem to have something similar which would be handy for checking return code/failure reasons. Consider adding PHP/JSON serialization support similar as for the checking script. i.e.
http://www.stopforumspam.com/add.php
?username=USERNAME
&ip_addr=IPADDRESS
&email=EMAILADDRESS
&api_key=ZZZZZZZZZZZZZZZ
&f=serial
And the response can be fed to unserialize.
Offline
#13 2011-05-06 5:01 pm
- pedigree
- uıɐbɐ ʎɐqǝ ɯoɹɟ pɹɐoqʎǝʞ ɐ buıʎnq ɹǝʌǝu ɯ,ı
- From: New Zealand
- Registered: 2008-04-16
- Posts: 7,082
Re: HOW TO: POSTing/GETting Data to/from the API
the add code will soon respond to serialized php/json. i just need to find some time to test it but the code is there, just not enabled
Offline
#14 2011-05-08 4:10 am
- jacostrauss
- Member
- Registered: 2011-05-08
- Posts: 2
Re: HOW TO: POSTing/GETting Data to/from the API
Do you have sample ASP code I can use to submit Spammers to you DB as I intercept them? I currently only log them in my db and display them here on my "Trophy Page" http://www.strauss.za.com/asp/Junk.asp .I only display the current day's results and as my site is hosted in the US, the list is cleared every day at 6 .a.m. GMT.
Thanks
Jaco Strauss
Offline
#15 2011-05-08 7:28 am
- pedigree
- uıɐbɐ ʎɐqǝ ɯoɹɟ pɹɐoqʎǝʞ ɐ buıʎnq ɹǝʌǝu ɯ,ı
- From: New Zealand
- Registered: 2008-04-16
- Posts: 7,082
Re: HOW TO: POSTing/GETting Data to/from the API
I dont but I have seen some around before.
There is some here but its going to need some edits
Offline
#16 2011-05-08 9:58 pm
- pedigree
- uıɐbɐ ʎɐqǝ ɯoɹɟ pɹɐoqʎǝʞ ɐ buıʎnq ɹǝʌǝu ɯ,ı
- From: New Zealand
- Registered: 2008-04-16
- Posts: 7,082
Re: HOW TO: POSTing/GETting Data to/from the API
By the way, integrating the checking code is really easy because of the serialization support.
Unfortunately, the add.php doesn't seem to have something similar which would be handy for checking return code/failure reasons. Consider adding PHP/JSON serialization support similar as for the checking script. i.e.
http://www.stopforumspam.com/add.php
?username=USERNAME
&ip_addr=IPADDRESS
&email=EMAILADDRESS
&api_key=ZZZZZZZZZZZZZZZ
&f=serialAnd the response can be fed to unserialize.
http://www.stopforumspam.com/add.php?us … Z&f=serial
responds with
a:3:{s:7:"success";i:0;s:5:"errno";N;s:5:"error";s:26:"could not validate api key";}
and json
{"success":0,"errno":null,"error":"could not validate api key"}
and xmldom
<?xml version="1.0" encoding="UTF-8"?>
<root>
<success>0</success>
<errno></errno>
<error>could not validate api key</error>
</root>
and xmlcdata
<?xml version="1.0" encoding="UTF-8"?>
<array>
<success><![CDATA[0]]</success>
<errno>![CDATA[]]
</errno>
<error><![CDATA[could not validate api key]]</error>
</array>
Offline
#17 2011-05-08 10:07 pm
- pedigree
- uıɐbɐ ʎɐqǝ ɯoɹɟ pɹɐoqʎǝʞ ɐ buıʎnq ɹǝʌǝu ɯ,ı
- From: New Zealand
- Registered: 2008-04-16
- Posts: 7,082
Re: HOW TO: POSTing/GETting Data to/from the API
SFS_MAINT_MODE => maintenance mode record processing deferred
SFS_ADD_DUPLICATE => duplicate record from your apikey
SFS_ADD_INVALID_APIKEY => could not validate api key
SFS_ADD_SANITY => you cannot submit your own email address
SFS_ADD_MYSQL_ERROR => database error deferred processing failed
SFS_FORMAT_ERROR => serialized data invalid
There are still a couple that I need to include in the error list
DEFINE ('SFS_ADD_NO_ERROR', 0);
DEFINE ('SFS_ADD_INVALID_EMAIL', 1);
DEFINE ('SFS_ADD_INVALID_IP', 2);
DEFINE ('SFS_ADD_INVALID_USER', 4);
DEFINE ('SFS_ADD_INVALID_APIKEY', 8);
DEFINE ('SFS_ADD_INVALID_SELF_EMAIL', 16);
DEFINE ('SFS_ADD_INVALID_SELF_IP', 32);
DEFINE ('SFS_ADD_MYSQL_ERROR', 64);
DEFINE ('SFS_ADD_MYSQL_ERROR_SC', 128);
DEFINE ('SFS_ADD_NOSQL_INSERT_ERROR', 256);
DEFINE ('SFS_ADD_DUPLICATE', 512);
DEFINE ('SFS_ADD_SANITY', 1024);
DEFINE ('SFS_ADD_FIELD_ERROR', 32768);
DEFINE ('SFS_MAINT_MODE', 65536);
These will change a lilttle, I just noticed an oversight in the numbering. Ill get this done tomorrow. At the moment, its not correctly adding the bit values up for field errors when more than one field errors.
Offline
#18 2011-05-09 1:48 am
- Katana
- Member
- Registered: 2009-08-18
- Posts: 1,886
Re: HOW TO: POSTing/GETting Data to/from the API
pedigree, when are you going to update the API docs with that info as well, so it's easier on everyone trying to work with the API?
うるさいうるさいうるさい!
Offline
#19 2011-05-09 8:16 am
- pedigree
- uıɐbɐ ʎɐqǝ ɯoɹɟ pɹɐoqʎǝʞ ɐ buıʎnq ɹǝʌǝu ɯ,ı
- From: New Zealand
- Registered: 2008-04-16
- Posts: 7,082
Re: HOW TO: POSTing/GETting Data to/from the API
Yup, Ill update all the api doc as well.
Offline
#20 2011-05-11 12:16 pm
- jacostrauss
- Member
- Registered: 2011-05-08
- Posts: 2
Re: HOW TO: POSTing/GETting Data to/from the API
Hi
Further to my previous post, the following ASP code works just fine for posting my banned spammers ( http://www.strauss.za.com/asp/Junk.asp ) here automatically. I only submit them once they've reached 4 Spam attempts at my site. The ones that have spammed me less than 4 times are not submitted (yet) in case I have miss-classified them, or they use a once-off IP addresses.
Any case, here is the VBScript code I use:
IF bBanned = True THEN
sSQL = "username=" & sName & "&ip_addr=" & sIP & "&email=" & sEmail & "&api_key=xxxxxxx"
set oXML_HTTP = server.Createobject("MSXML2.ServerXMLHTTP")
oXML_HTTP.Open "POST","http://www.stopforumspam.com/add.php?",false
oXML_HTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
oXML_HTTP.send sSQL
Response.ContentType = "text/xml"
Response.Write oXML_HTTP.responsexml.xml
Set oXML_HTTP = nothing
END IF
Thanks for a great site and service
Jaco
Offline
#21 2011-05-15 12:00 am
- kbdavis07
- Member
- Registered: 2011-05-13
- Posts: 1
Re: HOW TO: POSTing/GETting Data to/from the API
Need asp.net C# code to post to the database.
Offline
#22 2011-10-15 7:38 pm
- Katana
- Member
- Registered: 2009-08-18
- Posts: 1,886
Re: HOW TO: POSTing/GETting Data to/from the API
Ped, regarding all the constants, what's the up-to-date info on the numbers, the constants, and what each of them is for?
うるさいうるさいうるさい!
Offline
#23 2011-10-15 7:51 pm
- pedigree
- uıɐbɐ ʎɐqǝ ɯoɹɟ pɹɐoqʎǝʞ ɐ buıʎnq ɹǝʌǝu ɯ,ı
- From: New Zealand
- Registered: 2008-04-16
- Posts: 7,082
Re: HOW TO: POSTing/GETting Data to/from the API
Ill post those up shortly as some have been added for the new api code
Offline
#24 2012-03-16 6:10 am
- fanno
- Member
- Registered: 2012-02-23
- Posts: 4
Re: HOW TO: POSTing/GETting Data to/from the API
Hello all
$post = array(
'username' => $usename,
'ip_addr' => $ip,
'email' => $email,
'f' => 'json',
'api_key' => $apikey,
'evidence' => $evidence
);
even i provide 'f' => 'json' it is not json
is that what you would expect ? i am using a curl method to send instead of the other suggested methods ? is that a factor?
i have tried both:
http://www.stopforumspam.com/post.php
and
http://www.stopforumspam.com/add.php
-Thanks
Offline
#25 2012-03-16 12:02 pm
- Katana
- Member
- Registered: 2009-08-18
- Posts: 1,886
Re: HOW TO: POSTing/GETting Data to/from the API
f=json is a GET Variable
うるさいうるさいうるさい!
Offline