简体   繁体   中英

php String from user input and from database

I have a problem about this strings

currently i save some strings into the database with simple insert query and cleaning the data by this code

mysql_real_escape_string($data)

i get the data from the database using a simple query

sample input

$saveString = "You're great";

saving...

Insert into . . . values (mysql_real_escape_string($saveString))

now when i get the string i get the You're great string

When i use this code

$str = str_word_count(strtolower($fromDbString), 1);

print_r($str);

It outputs:

Array
(
    [0] => You're
    [1] => great 
)

But if the string came from the users input in textbox and i use this code.

   $str = str_word_count(strtolower($fromUserInput), 1);

    print_r($str);

I get something like this:

   Array
    (
        [0] => You
        [1] => re
        [2] => great 
    )

How do i fix the string from the database to be process like the one from the users input?

I tried htmlentities() to check the values and the output was

from db You're great from input You're great

i tried to html decode the string from db but it still outputs You're great

You could try to add addslashes():

$str = str_word_count(addslashes(strtolower($fromUserInput)), 1);

print_r($str);

If you want to return an array that contains all the string words you could try this instead str_word_count

$str = preg_split("/[' ]/", strtolower($fromUserInput));
//$str = preg_split("/[' ]/", strtolower($fromDbString));
print_r($str);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM