Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /var/www/mybb-es.com/html/inc/plugins/avatarep.php on line 1102

Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /var/www/mybb-es.com/html/inc/class_language.php on line 201
Bloquear el posteo de usuarios según código de países
Juliens   7 Jan, 2013, 8:50 am
#1
Les traigo una modificación para bloquear la creación de nuevos topics y respuestas según el código del país. Por ejemplo "United States" "US".

Para ello, hacen lo siguiente:

Ve al archivo newthread.php y busca:

Código PHP:
<?php 
if($mybb->input['action'] == "editdraft" || ($mybb->input['savedraft'] && $mybb->input['tid']) || ($mybb->input['tid'] && $mybb->input['pid']))

Antes de eso agrega:

Código PHP:
<?php 
$geoPlugin_array
= unserialize( file_get_contents('http://www.geoplugin.net/php.gp?ip=' . $_SERVER['REMOTE_ADDR']) );
$paises = array('P1', 'P2', 'P3', 'P4');

Luego busca:

Código PHP:
<?php 
if($forumpermissions['canview'] == 0 || $forumpermissions['canpostthreads'] == 0 || $mybb->user['suspendposting'] == 1)

Reemplaza toda esa línea por:

Código PHP:
<?php 
if($forumpermissions['canview'] == 0 || $forumpermissions['canpostthreads'] == 0 || $mybb->user['suspendposting'] == 1||in_array($geoPlugin_array[geoplugin_countryCode], $paises))

Con eso no puede crear temas según el país, le saldrá el típico error de problema de permisos, así que no le das pistas de la IP.

Ahora para que no puedan responder te vas al archivo newreply.php y buscas:

Código PHP:
<?php 
if(isset($mybb->input['replyto']))
y antes de eso agregas:

Código PHP:
<?php 
$geoPlugin_array
= unserialize( file_get_contents('http://www.geoplugin.net/php.gp?ip=' . $_SERVER['REMOTE_ADDR']) );
$paises = array('P1', 'P2', 'P3', 'P4');

Ahora buscas:

Código PHP:
<?php 
if($forumpermissions['canview'] == 0 || $forumpermissions['canpostreplys'] == 0 || $mybb->user['suspendposting'] == 1)

Aparecerá dos veces, en los dos casos lo cambias por:

Código PHP:
<?php 
if($forumpermissions['canview'] == 0 || $forumpermissions['canpostreplys'] == 0 || $mybb->user['suspendposting'] == 1||in_array($geoPlugin_array[geoplugin_countryCode], $paises))

Con eso debería de funcionar.

Por cierto, donde dice:

Código PHP:
<?php 
$paises
= array('P1', 'P2', 'P3', 'P4');

Cada PX se debe de cambiar por el código del país que desean bloquear.

Lo que me gusta de esta mod es que no le das la pista al spammer de que cambie la IP, que haces que aparezca el típico error de "No tienes permisos para postear en estos foros"

Fuente: Bloquear el posteo de usuarios según código de países

[Imagen: 88x31.png]
Este obra está bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 3.0 Unported.

Equipo de Desarrollo de Skylium Network


[Imagen: http://skyliumplus.com/wp-content/upload...OMINIO.png]


Blog de Programación y de otras cosas xD
papi   7 Jan, 2013, 9:20 am
#2
tremendo el post, Juliens. Ahi te doy rep
DarkEternity   7 Jan, 2013, 9:53 am
#3
estoy servirá para prevenir el spam hay te dejo repu
Cluster   7 Jan, 2013, 11:20 am
#4
+Rep, bastante bueno el tutorial

:)
Juliens   7 Jan, 2013, 8:23 pm
#5
Muchas gracias por la reputación.

Esto se podría usar para cualquier cosa. Bloquear perfiles para evitar que te agreguen a listas de correo para enviarte spam, y así varias cosas que serían muy interesantes. Capaz con eso bloqueo que algunos de países conocidos por ataques vean el showteam y pues varias cosas más con referencia a las IPs.

Alguien debería hacer un plugin xD
  
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.