Re: Apostrophe in preg_match?
| From: | Andre Dubuc | Date: | Wed, 28 Aug 2002 14:00:11 +0000 |
| Subject: | Re: Apostrophe in preg_match? | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-114362@lists.php.net to get a copy of this message | ||
Thanks DL,
I've read that part of the manual. My original syntax was as you
suggested [^a-zA-Z-'], but the PostgreSQl query barfed on the apostrophe.
The preg_match works, but the db refuses to accept the apostrophe. Reading
the postgresql docs, they suggest escaping the character, but since the
variable is contained in $_POST['ssname'] I don't know how to get the escaped
character inserted into this POST'd variable.
After the validation check :
if (!preg_match("^[a-zA-Z-/\'/]^", $_POST['ssname'])) die . . . . .
the POST'd variable is transformed:
$_POST['ssname'] = ucwords("{$_POST['ssname']}");
$_SESSION['ssname'] = $_POST['ssname'];
$_SESSION['ssname'] = ucwords("{$_SESSION['ssname']}");
and then inserted into the db:
"INSERT INTO sponsor (sid, sfname, ssname, . . . '{$_SESSION['ssname']}', .
.
. .
So, how would I get this escaped character into the db?
Any further help would be greatly appreciated. I'm stumped on this one.
Perhaps, I'll have to exclude apostrophes, but there must be a way??
Tia,
Andre
On Wednesday 28 August 2002 06:16 am, DL Neil wrote:
> > I'm trying to get an apostrophe (and a dash, as well) to be
> > included in a preg_match expression, but I don't know how to escape the
> > characters.
>
> The manual discusses which characters need escaping and how to escape
> characters:
> http://www.php.net/manual/en/pcre.pattern.syntax.php
>
> > <?php
> > if (preg_match("^[!a-zA-Z-/\\\'/]^", $_POST['ssname'])) die
> > ("<h5>Numbers and special characters not allowed in
> > 'Surname'<br><br>
> > Click 'Back' on your browser to re-enter
> > information.</h5>");
> >
> > ?>
> > Any help will be greatly appreciated.
>
> Keep it simple: [^a-zA-Z-']
>
> Regards,
> =dn