Re: Cleaning user data
| From: | CPT John W. Holmes | Date: | Thu, 20 Mar 2003 13:48:18 +0000 |
| Subject: | Re: Cleaning user data | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-140428@lists.php.net to get a copy of this message | ||
> --- "John W. Holmes" <holmes072000@charter.net> wrote:
> > I disagree. I think stripping HTML from my text is a horrible thing. If
> > I want to put a <b> in my text, then use htmlentities() and show me a
> > <b> when I look at it. Obviously you don't want to "evaluate" HTML,
> > but
> > the end result should be that I should see exactly what I typed into the
> > text box.
The real problem I have with strip_tags is that if I want to type <smile> or
<grin>, it's going to be stripped out and now I have to go back and edit my
code and change it to something else... If you just use htmlentities(), the
user is none the wiser.
> > If you need to allow formatted text, then use something like BBcode
> > where you can specify exactly what is allowed.
>
> Maybe there is something I'm missing, but I have always hated these
alternative
> markup languages like "BBcode" that seem to offer no benefit over HTML. If
you
> want to allow the <b> tag to be evaluated, you can do something like this
after
> you use htmlentities():
>
> $blah = str_replace('<b>', '<b>', $blah);
> $blah = str_replace('</b>', '</b>', $blah);
>
> Of course, if people want the <b> to appear exactly as they type it, they
would
> either have to use <b>, or you would have to let them choose an
option as
> to whether they want to use HTML (much like slash code does).
That would work, too, I guess. If the user actually typed in < it would
be encoded as &lt; and not match something similar to a replacement like
you've shown.
You don't want to do matching like you've shown, though. If I put a <b> on
my page with no </b>, then it's going to make everything on the entire page
following my post bold. When "cleaning" the data, you want to make sure you
match a pattern that includes both the start and end tag. You can use
regular expressions or go through character by character.
---John Holmes...