Uhmmmm...
Otra solución sería utilizar htmlspecialchars, el cual solo convierte los siguientes caracteres :
Código:
* '&' (ampersand) becomes '&'
* '"' (double quote) becomes '"' when ENT_NOQUOTES is not set.
* ''' (single quote) becomes ''' only when ENT_QUOTES is set.
* '<' (less than) becomes '<'
* '>' (greater than) becomes '>'
http://cl.php.net/manual/en/function...ecialchars.php
La ventaja que creo que tiene, es que puedes especificar el charset, en otras palabras, si tu texto es guardado como UTF-8, y el charset de tu web la has definido como UTF-8, no habría problema en la conversión de los caracteres.
Entonces, sería algo así, para explicarme mejor :
1.- El charset de tu web es UTF-8
2.- Ingresas los datos a la tabla de la siguiente forma :
htmlspecialchars("<scrip>alert('código malicioso');</script>", ENT_NOQUOTES);
Luego sería solo mostrarlos, ya que el charset de tu web se encargará de traducir los caracteres sin el riesgo de ejecutar código malicioso.
Si me equivoco agradecería que me corrijan
PD : htmlspecialchars no afecta a los tildes.
Nos vemos.