[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnuheter-dev] [Bug #2667] ampersand() i mainfi le.php använder felaktig
From: |
nobody |
Subject: |
[Gnuheter-dev] [Bug #2667] ampersand() i mainfi le.php använder felaktig algoritm |
Date: |
Sun, 09 Mar 2003 12:12:07 -0500 |
=================== BUG #2667: LATEST MODIFICATIONS ==================
http://savannah.nongnu.org/bugs/?func=detailbug&bug_id=2667&group_id=2176
Changes by: Patrik Wallström <address@hidden>
Date: Sun 03/09/03 at 18:12 (Europe/Stockholm)
What | Removed | Added
---------------------------------------------------------------------------
Resolution | None | Fixed
Status | Open | Closed
=================== BUG #2667: FULL BUG SNAPSHOT ===================
Submitted by: schultz Project: Gnuheter
Submitted on: Thu 02/27/03 at 15:55
Category: Bug Severity: 5 - Major
Bug Group: None Resolution: Fixed
Assigned to: None Status: Closed
Summary: ampersand() i mainfile.php använder felaktig algoritm
Original Submission:
Så här ser funktionen ampersand() ut i sitt nuvarande skick:
function ampersand($str) {
$str = ereg_replace('&', '&', $str);
$str = ereg_replace('&([a-z]+;)', '&\\1', $str);
return $str;
}
Uppenbart vill man tillåta HTML-entities, men man är allt för restriktiv. Även
Ä för stora Ä eller ¼ för en fjärdedel utesluts, vilket även
skrivsätt som æ (æ) och andra görs.
Föreslagen lösning:
function ampersand($str) {
$str = str_replace("&", "&", $str);
$str = eregi_replace("&(#x?[0-9a-f]+;)", "&\\1", $str);
$str = eregi_replace("&([a-z][a-z0-9]+;)", "&\\1", $str);
return $str;
}
Skilnaden är dels case-sensitive, dels att även ŋ (fonetiskt ng-tecken
som i "ring") och ¾ (tre fjärdedelar) tillåts.
Buggar i den nya algoritmen: även B; tillåts, trots att hexadecimala tal
kräver ett x framför; och att den är lite för restriktiv gällande entities av
typen ³ (upphöjd trea) som enligt XML-standarden även får innehålla
bindestreck, punkter, med mera. Ingen av de i HTML 4 definierade entities gör
detta, vilket borde göra mitt antagande säkert.
No Followups Have Been Posted
CC list is empty
No files currently attached
For detailed info, follow this link:
http://savannah.nongnu.org/bugs/?func=detailbug&bug_id=2667&group_id=2176
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnuheter-dev] [Bug #2667] ampersand() i mainfi le.php använder felaktig algoritm,
nobody <=