Re: str_replace removing unwanted characters...

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

 



On Fri, Feb 29, 2008 at 2:18 PM, VanBuskirk, Patricia
<pvanbuskirk@xxxxxxxxxxx> wrote:
> Someone from this list (sorry I cannot remember the name), a while back, gave me the following function to use to get rid of unwanted characters coming in on forms:
>
>  function convert_smart_quotes($string)
>  {
>      $search = array(chr(145),
>                          chr(146),
>                                          chr(147),
>                                          chr(148),
>                                          chr(151),
>                                          "#",
>                                          ";",
>                                          "[",
>                                          "]",
>                                          "{", // Note the missing "}" closing curly bracket here
>                                          "<",
>                                          ">",
>                                          "=",
>                                          "URL=http://";);

    Above, there are only 14 search terms, but below, there are 15
replace terms.  Below the line I commented, add:
                                           "}",

>       $replace = array("'",
>                            "'",
>                                            '"',
>                                            '"',
>                                            "-",
>                                            "number",
>                                            ",",
>                                            "",
>                                            "",
>                                            "",
>                                            "",
>                                            "",
>                                            "",
>                                            "equals",
>                                            "");
>       return str_replace($search, $replace, $string); }
[snip!]


>  2. "New " VM Tree Greeting 1- Need NEW DN for this!!!  (Please coordinate with Suzanne for recordings).

    See the parentheses above?  I'll bet dollars to donuts that's your
killswitch.  See my updated arrays at the end of this email.

[snip!]
>  Also, we are getting back for example "I\'m hoping..."  Somehow the slashes are coming through in the field and in the emails.  I am not even sure what is putting them in, as I don't see that in the replace function.

    There's either an addslashes() function somewhere or a missing
stripslashes().

    Prior to inserting the data into the database, you should sanitize
it using mysql_real_escape_string().  So, for example, if your SQL
query looks like this:

$body = convert_smart_quotes($string);
$sql = "INSERT INTO email(body) VALUES($body)";

    It should be changed to:

$body = mysql_real_escape_string(stripslashes(convert_smart_quotes($string)));
$sql = "INSERT INTO email(body) VALUES($body)";

    And if that's not fixing the error for emails being sent, then
find where the mail() function resides and replace the message body
variable with something similar to:

$message = stripslashes($message);


    Finally, the new arrays (rewritten function) I promised.

function convert_smart_quotes($string) {
    $search = array(chr(145),
                                        chr(146),
                                        chr(147),
                                        chr(148),
                                        chr(151),
                                        "#",
                                        ";",
                                        "[",
                                        "]",
                                        "{",
                                        "}",
                                        "(",
                                        ")",
                                        "!",
                                        "<",
                                        ">",
                                        "=",
                                        "URL=http://";);
     $replace = array("'",
                                          "'",
                                          '"',
                                          '"',
                                          "-",
                                          "number",
                                          ",",
                                          "",
                                          "",
                                          "",
                                          "",
                                          "",
                                          "",
                                          ".",
                                          "",
                                          "",
                                          "",
                                          "equals",
                                          "");
     return str_replace($search,$replace,$string);
}

-- 
</Dan>

Daniel P. Brown
Senior Unix Geek
<? while(1) { $me = $mind--; sleep(86400); } ?>

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux