Archive for the ‘4Images Tutorials’ Category
How to stop spammers with the help of Stop Forum Spam. This actually works!
First Step:
You need to access functions.php which is in the includes folder of your 4images.
Once you have located the file open it and before the last ?> (at the end) add the following code:
function checkspammers($input,$inputtype='email'){
//Load the file, and implode the array.
$xml = implode('',file("http://www.stopforumspam.com/api?".$inputtype."=".$input));
//Start new xml parser.
$p = xml_parser_create();
//Get the xml into an array
xml_parse_into_struct($p, $xml, $vals, $index);
//Free some memory by clearing the xml parser
xml_parser_free($p);
//We don't need $index or the $xml any more
unset($index,$xml);
//Prepare the return array
$return = array();
//Now we are going to make the aray useable
foreach($vals as $array){
//If it's the opening array we can do it slightly differnetly
if($array['type'] == 'open'){
//Just get weather it was sucess or not.
$return[$array['tag']] = $array['attributes']['SUCCESS'];
}elseif($array['type'] == 'complete'){
//Else just get the value
$return[$array['tag']] = $array['value'];
}
}
//Save a bit mroe memory by clearing the vals array
unset($vals);
//Now make time into a unix timestamp
if($return['LASTSEEN']){
//Sepparate the timestamp into the time and the date
$time = explode(' ',$return['LASTSEEN']);
//Sepparate the date
$date = explode("-",$time[0]);
//Sepparate the time
$time = explode("-",$time[0]);
//Now make the time, note we times by 1 to remove leading zeros, if we don't then php cansometimes use teh octal system instead of decimal.
$return['UNIXLASTSEEN'] = gmmktime($time[0]*1,$time[1]*1,$time[2]*1,$date[1]*1,$date[2]*1,$date[0]*1);
}
//RESPONCE would be better as booleen, not a string
if($return['RESPONCE'] == 'true'){ $return['RESPONCE'] = true; }else{ $return['RESPONCE'] = false; }
//Now return our array.
return $return;
}
//Example function to check in ip
function isaspammer($ip){
//Get the xml results as an array from teh function above
$result = checkspammers($ip);
//Is he reported?
if($result['FREQUENCY'] > 0 && (time() - $result['UNIXLASTSEEN']) < (3600 * 24 * 365)){
//He is a spammer
return true;
}else{
//He is not reported as a spammer
return false;
}
}
Next Step:
Now open register.php this should be in the
main folder of you 4images gallery
(please note you should log into your host and make the
changes these aren't for the HTML under edit templates).
find this line:
if ($user_password == "") {
and above it copy this:
if (isaspammer($user_email) || isaspammer($site_sess->user_ip, "ip")) {
$msg .= (($msg != "") ? "<br />" : "").$lang['invalid_email_format']; // or add anything else, bots doesn't understand nothing :)
$error = 1;
}