View Issue Details

IDProjectCategoryView StatusLast Update
0008898phplist applicationRSSpublic18-02-08 14:08
Reporterdanatang 
PrioritynormalSeverityminorReproducibilityalways
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.

Relationships

related to 0003721 closed phplist 2.10.x 

Activities

user1822

08-08-07 19:01

  ~0030247

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?

danatang

09-08-07 02: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().

user1822

27-08-07 13:03

  ~0031063

suggestion adopted