You are not logged in.

#1 2013-06-27 1:19 am

MegaBedder
Member
From: Honduras
Registered: 2013-06-25
Posts: 10

API StopForumSpam (SFS) - [PHP] - (No Oficial)

Introducción:
Bueno, aqui dejo una API de conexión a SFS aún no oficial wink

Descripción:
Esta es una clase desarrollada en PHP que facilita el manejo de las conexiones hacia la API de SFS,
y el resultado generado para una utilización más simple para su obtención y uso.

Nombre: UserSpam.class.php

<?php
// Clase creada por MegaBedder <MegaBedder@HoTMaiL.com>
// Skype: MegaBedder
// ID Perfil de SFS: 44642
// URL de SFS: stopforumspam.com/forum/profile.php?id=44642
// Fecha de Creación: 25/06/2013
// Nota: Se limita el número de peticiones al API a un máximo de 20.000 por día.
// Ejemplo: http://www.stopforumspam.com/api?ip=41.89.49.250&email=chenghwang7743@tpte.org

class UserSpam{
	private $api_key = "XXX-XXX-XXX"; // Tú Api Key

	function Is($correo=false, $ip=false){
		if(empty($ip)){
			$ip = $_SERVER['REMOTE_ADDR'];
		}

		if(empty($email)){
			$url = "http://www.stopforumspam.com/api?ip=" . $ip . "&f=json";
		}else{
			$url = "http://www.stopforumspam.com/api?ip=" . $ip . "&email=" . $correo . "&f=json";
		}

		$data = file_get_contents($url);
		$json = json_decode($data, true);

		if($json['success'] === 1){
			if($json['ip']['appears'] === 1 || $json['email']['appears'] === 1){
				return true;
			}else{
				return false;
			}

		}else{

			return 0; // NO SUCCESS - INT(0)
		}
	}

	function Add($ip=false, $correo=false, $usuario=false, $evidencia=false){
		$api_key = $this->api_key;

		if(empty($usuario) || empty($ip) || empty($correo)){
			return false;
		}

		if(empty($evidencia)){
			$url = "http://www.stopforumspam.com/add.php?username=" . $usuario . "&ip_addr=" . $ip . "&email=" . $correo . "&api_key=" . $api_key;
		}else{
			$url = "http://www.stopforumspam.com/add.php?username=" . $usuario . "&ip_addr=" . $ip . "&evidence=" . $evidencia . "&email=" . $correo . "&api_key=" . $api_key;
		}

		$data = file_get_contents($url);
		if(preg_match("/could not validate api key/", $data)) {
			return "err_api_key";
		}

		if(preg_match("/data submitted successfully/", $data)){
			return true;
		}else{
			return false;
		}
	}

}
?>

Nombre: Ejemplo.php

<?php
// Clase creada por MegaBedder <MegaBedder@HoTMaiL.com>
// Skype: MegaBedder
// ID Perfil de SFS: 44642
// URL de SFS: stopforumspam.com/forum/profile.php?id=44642
// Fecha de Creación: 25/06/2013
// Nota: Se limita el número de peticiones al API a un máximo de 20.000 por día.
// Ejemplo: http://www.stopforumspam.com/api?ip=41.89.49.250&email=chenghwang7743@tpte.org
/*
require_once("UserSpam.class.php");

$UserSpam = new UserSpam();
$User_Spam['IS'] = $UserSpam->Is($correo, $ip); // Correo (Requerido), IP (Opcional)

$User_Spam['ADD'] = $UserSpam->Add($ip, $correo, $usuario, $evidencia); // IP (Requerido), Correo (Requerido), Usuario (Requerido), Evidencia (Opcional)

print("<pre>\r\n");
print("<b>UserSpam(IS)</b>: <br />\n");

if($User_Spam['IS']){
	echo "RETURN TRUE <br /><br />\n";
	var_dump($User_Spam['IS']); // TRUE
}else{
	echo "RETURN FALSE <br /><br />\n";
	var_dump($User_Spam['IS']); // FALSE
}

print("<br />\r\n");

print("<b>UserSpam(ADD)</b>: <br />\n");

if($User_Spam['ADD']){
	echo "RETURN TRUE || err_api_key <br /><br />\n";
	var_dump($User_Spam['ADD']); // TRUE
}else{
	echo "RETURN FALSE <br /><br />\n";
	var_dump($User_Spam['ADD']); // FALSE
}

print("</pre>\n");
?>

Nota:
El ejemplo solo representa los datos más relevantes para su aplicación, y si necesita más ayuda ó informacion acudase a esta dirección URL [http://www.stopforumspam.com/forum/viewtopic.php?pid=37259]. Y el ejemplo esta creado para que usted mismo verifique los datos enviados y recividos de ellos. Y editar el api_key del archivo UserSpam.class.php para añadir tu lista de spammer. Y cabe mencionar que si hace interacción con los datos de su base de datos se deberian usar un filtro como: mysql_real_escape_string para MySQL y mysqli_real_escape_string para MySQLi ó dependiendo que motor de base de datos emplean.

Agradecimientos:
A SFS por brindar el API pero con limitaciones de 20.000 Peticiones por día.
A GarryRicketson por responder mi primer tema big_smile

Referencias:
http://www.stopforumspam.com/forum/viewtopic.php?pid=37259 - Tema de referencia con el que fue desarrollado esta clase.
StopForumSpam.Com/usage - Uso del API Oficial de Stop Forum Spam.

Last edited by MegaBedder (2013-06-27 1:32 am)

Offline

Board footer

Powered by FluxBB

Close
Close