duda con IF

javier29pe Seguir

Sigma
SEO
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
26 Nov 2011
Mensajes
9.209
dispongo de este codigo que impide que los spam creen posts en mi foro con links

lo que necesito es que un dominio determinado pongamos http://www.burritos1234.com si se pueda escribir (vamos una excepcion a la regla de todas las urls)

sabriais decirme como seria la linea que me falta?

//Define the minimum number of posts for "good" users
//Users below this threshold are considered potential spammers
$user_posts_threshold = 3;

//strip whitespace characters in the post body
$msgwows = $data['message'];
$msgwows = str_replace(" ", "", $msgwows);
$msgwows = str_replace("\n", "", $msgwows);
$msgwows = str_replace("\r", "", $msgwows);
$msgwows = str_replace("\t", "", $msgwows);

if (!$user->data['is_registered'] ||
$user->data['user_posts'] < $user_posts_threshold) {
if (strpos($msgwows, 'http://') !== FALSE ||
strpos($msgwows, 'ftp://') !== FALSE ||
strpos($msgwows, 'www.') !== FALSE ||
strpos($msgwows, '[url') !== FALSE) {
trigger_error("You are not allowed to post URLs!");
}
}


GRACIAS.
 

vicram10

Épsilon
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
8 May 2013
Mensajes
751
Edad
39
Podrias probar algo asi

PHP:
if (!$user->data['is_registered'] || $user->data['user_posts'] < $user_posts_threshold) 
{
	if (strpos($msgwows, 'http://www.google.com') === false)
	{
		if (strpos($msgwows, 'http://') !== FALSE ||
			strpos($msgwows, 'ftp://') !== FALSE ||
			strpos($msgwows, 'www.') !== FALSE ||
			strpos($msgwows, '[url') !== FALSE) 
		{
			trigger_error("You are not allowed to post URLs!");
		}
	}
}

Solamente continuara con la validacion si la url introducida NO es el que quieres que si salga..
Puedes probar a ver si asi te funciona segun lo que necesitas
 

kronenmix

Beta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
4 Sep 2010
Mensajes
49
Podrias probar algo asi

PHP:
if (!$user->data['is_registered'] || $user->data['user_posts'] < $user_posts_threshold) 
{
	if (strpos($msgwows, 'http://www.google.com') === false)
	{
		if (strpos($msgwows, 'http://') !== FALSE ||
			strpos($msgwows, 'ftp://') !== FALSE ||
			strpos($msgwows, 'www.') !== FALSE ||
			strpos($msgwows, '[url') !== FALSE) 
		{
			trigger_error("You are not allowed to post URLs!");
		}
	}
}

Solamente continuara con la validacion si la url introducida NO es el que quieres que si salga..
Puedes probar a ver si asi te funciona segun lo que necesitas

El problema en tu solución es que si pone la url que sí desea pero ponen urls que no desea, tampoco le permitiría postear.

usa un preg_replace() para eliminar lo que no deseas en el mensaje.
 
Arriba