View Issue Details

IDProjectCategoryView StatusLast Update
0008898phpList 3 applicationRSSpublic18-02-08 14:08
Reporterdanatang Assigned To 
Status resolvedResolutionfixed 
Product Version2.10.4 
Target Version2.10.7Fixed in Version2.10.5 
Summary0008898: getrss bug for chinese rssitem title in UTF-8 encoding
DescriptionI found a bug in getrss.php.
If the length of a rss item title is longer than 100 or the item title is in double byte format(such as chinese), when I click the get rss link, the same items will be added repeatedly. The original code is as below:
Sql_Query(sprintf('select * from %s where title = "%s" and link = "%s"', tables["rssitem"],addslashes(substr($item["title"],0,100)),addslashes(substr($item["link"],0,100))));

And I fix as below:

Sql_Query(sprintf("select * from %s where title = '%s' and link = '%s'", $tables["rssitem"],addslashes($item["title"]),addslashes($item["link"])));

Hope it is helpful to all.
TagsNo tags attached.


related to 0003721 closed phplist 2.10.x 



08-08-07 20:01


I don't understand how this could fix the problem, since the databasefield is a varchar(100). I do believe it should be rewritten as substr(addslashes($item["title"]),0,100) though.

Couold you please try and confirm this?


09-08-07 03:47

reporter   ~0030260

Dear bas,

Thanks. I have tried and I am sure the substr($item["title"],0,100) will cut UTF-8 encoding string.
Because my mysql db is UTF-8(multibyte) encoding, so the strlen() of the title (varchar(100) data field) will exceed 100, it counts byte.
I suggest use mb_substr() instead of substr() for multibyte encoding. Otherwise, just do not set length in substr().


27-08-07 14:03


suggestion adopted