Re: Replacing a special character

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 18 April 2010 16:46, Peter Lind <peter.e.lind@xxxxxxxxx> wrote:

> On 18 April 2010 16:40, Phpster <phpster@xxxxxxxxx> wrote:
> >
> >
> > On Apr 18, 2010, at 8:59 AM, Michael Stroh <stroh@xxxxxxxxxx> wrote:
> >
> >> I have this form that people use to add entries into a MySQL database.
> >> Recently I've had some users insert − in their entries instead of -
> which is
> >> causing some issues with scripts down the line. I'd like to replace the
>
> >> character with -.
> >>
> >> Originally I had something like
> >>
> >> $name = mysql_escape_string($_POST["name"]);
> >>
> >> which would convert the offending character to &#8722; before entering
> it
> >> into the database. It's this encoding that is causing the problems since
> >> some scripts send out emails with this entry in their subject line which
> >> looks messy.
> >>
> >> I've tried adding the following line after the previous line to help fix
> >> this issue, however, I just got another entry with the same problem.
> >>
> >> preg_replace('/&#8722;/','-',$name);
> >>
> >> Any suggestions on how others would fix this problem? I'd just like to
> fix
> >> it before the entry hits the database instead of creating fixes on the
> other
> >> end of things.
> >>
> >>
> >> Cheers,
> >> Michael
> >> --
> >> PHP General Mailing List (http://www.php.net/)
> >> To unsubscribe, visit: http://www.php.net/unsub.php
> >>
> >
> > One option is to send an HTML email which would have the email reader
> > interpret that code correctly
> >
> > Bastien
>
> Another option would be to use mysql_real_escape_string and make sure
> that your code and the database are using utf-8. Then when the email
> is sent, make sure that uses utf-8 as well.
>
> Regards
> Peter
>
>
Make sure the database connection is also utf8:

set names 'utf8';

Typically, you should keep everything in utf8 unless you have a very good
reason not to.
And as Peter mentioned, the proper way to escape MySQL inserts (that is, if
you're not already using a framework that does this competently) is
mysql_real_escape_string().

Michiel

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux