Restringir html en web

x0s3

Buenas,

Estoy haciendo una web en php, donde hay muchos formularios y los usuarios envian mucho texto que se publica en la página.

Quiero restringir el html, osea que los usuarios cuando envien texto por un formulario no puedan enviar etiquetas html tipo <table> <h1>... o que almenos no se muestren, he usado htmlspecialchars() pero no se si hay una forma mejor para hacerlo.

Saludos

DarkSoldier

puedes probar con strip_tags y obligar a tus usuarios usar BBCODE

1 respuesta
txandy

Por javascript o php se puede hacer...

Mira encontré una función por mi pc, no es mía es de internet

function remove_HTML($s , $keep = '' , $expand = 'script|style|noframes|select|option'){
	$s = ' ' . $s;
	if(!isset($k)) $k = "0";
   	if(strlen($keep) > 0){
		$k = explode('|',$keep);
		for($i=0;$i<count($k);$i++){
			$s = str_replace('<' . $k[$i],'[{(' . $k[$i],$s);
			$s = str_replace('</' . $k[$i],'[{(/' . $k[$i],$s);
		}
	}
	while(stripos($s,'<!--') > 0){
		$pos[1] = stripos($s,'<!--');
		$pos[2] = stripos($s,'-->', $pos[1]);
		$len[1] = $pos[2] - $pos[1] + 3;
		$x = substr($s,$pos[1],$len[1]);
		$s = str_replace($x,'',$s);
	}
  
if(strlen($expand) > 0){ $e = explode('|',$expand); for($i=0;$i<count($e);$i++){ while(stripos($s,'<' . $e[$i]) > 0){ $len[1] = strlen('<' . $e[$i]); $pos[1] = stripos($s,'<' . $e[$i]); $pos[2] = stripos($s,$e[$i] . '>', $pos[1] + $len[1]); $len[2] = $pos[2] - $pos[1] + $len[1]; $x = substr($s,$pos[1],$len[2]); $s = str_replace($x,'',$s); } } } while(stripos($s,'<') > 0){ $pos[1] = stripos($s,'<'); $pos[2] = stripos($s,'>', $pos[1]); $len[1] = $pos[2] - $pos[1] + 1; $x = substr($s,$pos[1],$len[1]); $s = str_replace($x,'',$s); } for($i=0;$i<count($k);$i++){ $s = str_replace('[{(' . $k[$i],'<' . $k[$i],$s); $s = str_replace('[{(/' . $k[$i],'</' . $k[$i],$s); } return trim($s); }
NeB1

#1 usa la función de php strip_tags, del rollo

$cadenaSinHTML = strip_tags($cadenaHTML);
$cadenaSoloConTables = strip_tags($cadenaHTML, '<table>');
x0s3

Muchas gracias a todos :P

x0s3

#2 ¿Cómo puedo instalar un sistema de bbcode?

2 respuestas
Tunnecino

#6 Con expresiones regulares xD La verdad es que puede complicarse si te pierdes en la sintaxis.

NeB1

#6 en PHP classes hay una clase que lo implementa:

http://www.phpclasses.org/package/951-PHP-Class-to-parse-BBCode-.html

Está bastante bien

1 respuesta
x0s3

#8 Genial! muchas gracias, no sabía de la existencia de esa web.

Usuarios habituales

  • x0s3
  • NeB1
  • Tunnecino
  • txandy
  • DarkSoldier