[PHP] PCRE regexp bug ?

Ask a Question related to PHP Development, Design and Development.

  1. #1

    Default Re: [PHP] PCRE regexp bug ?


    I believe I spoke too soon. If I use isset() then even if I leave the
    field empty it still returns true. I am trying to view the documentation for
    this function but php.net seems to be timing out now.

    On Fri, 15 Aug 2003 [email]tpc@csua.berkeley.edu[/email] wrote:
    >
    > Thank you. I did the following:
    >
    > if (isset($_POST[MI]) && (preg_match('/^[[:alpha:]]{1,1}$/', $_POST[MI]) == 0))
    >
    > and zero is caught.
    >
    > On Fri, 15 Aug 2003, CPT John W. Holmes wrote:
    >
    > > From: <tpc@csua.berkeley.edu>
    > >
    > > > I use preg_match to validate the Middle Initial field of a form and so far
    > > > it works, except yesterday a user submitted a "0" (zero) as a middle
    > > > initial! My regexp is:
    > > >
    > > > if (!empty($_POST[MI]) && (preg_match('/^[[:alpha:]]{1,1}$/', $_POST[MI])
    > > == 0))
    > > >
    > > > I tested it with 0-9 and my regexp catches every digit except 0.
    > > Curious...
    > >
    > > empty("0") is going to be true. So, !empty("0") is going to be false, so you
    > > won't "catch" the zero.
    > >
    > > ---John Holmes...
    > >
    > >
    >
    >
    tpc@csua.berkeley.edu Guest

  2. Similar Questions and Discussions

    1. pcre libraries
      I'm new to mysql and was trying to compile the admin tool. The configure script complains about something called "pcre libraries". What is that? ...
    2. #26295 [Opn->Bgs]: Change from PCRE Library 3.9 to PCRE library 4.3 has resulted in broken code.
      ID: 26295 Updated by: sniper@php.net Reported By: mnbob70 at earthlink dot net -Status: Open +Status: ...
    3. #26295 [NEW]: Change from PCRE Library 3.9 to PCRE library 4.3 has resulted in broken code.
      From: mnbob70 at earthlink dot net Operating system: Linux lion.phpwebhosting.com 2.4 PHP version: 4.3.4 PHP Bug Type: PCRE...
    4. PCRE regexp bug ?
      I use preg_match to validate the Middle Initial field of a form and so far it works, except yesterday a user submitted a "0" (zero) as a middle...
    5. [PHP-DEV] this causes a segfault cvs: php-src(PHP_4_3) /ext/pcre
      He added a decleration for pcre_* in the wrappers eg. #define pcre_xxxxx php_pcre_xxxx as apache2 uses pcre internally???? As far as I could...
  3. #2

    Default Re: [PHP] PCRE regexp bug ?

    * Thus wrote [email]tpc@csua.berkeley.edu[/email] (tpc@csua.berkeley.edu):
    >
    > I believe I spoke too soon. If I use isset() then even if I leave the
    > field empty it still returns true. I am trying to view the documentation for
    > this function but php.net seems to be timing out now.
    > > if (isset($_POST[MI]) && (preg_match('/^[[:alpha:]]{1,1}$/', $_POST[MI]) == 0))

    That is because the browser is sending in the POST data:
    MI=

    Thus, php does set it to ''.

    Use something like this instead:

    if (strlen($_POST['MI'])) ...


    btw, you should really quote your array keys.

    HTH,


    Curt
    --
    "I used to think I was indecisive, but now I'm not so sure."
    Curt Zirzow Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139