Home » HTML » Pager » Bug #441
Pager does not escape '&' in links
Details
| Submitted | 2003-12-16 18:26 UTC |
|---|---|
| From | ieure at debian dot org |
| Assigned | quipo |
| Status | Closed |
| Package | Pager |
| PHP Version | Irrelevant |
| OS | Linux |
| Roadmaps | (Not assigned) |
Comments
[2003-12-16 18:26 UTC] ieure at debian dot org
Description:
------------
Links returned by Pager use raw '&'s in the GET string. This is broken,
and causes non-well-formed XML documents when using XHTML. '&'
should be replaced with '&'
Reproduce code:
---------------
Just examine the output of $pager->getLinks();
Expected result:
----------------
Pager should return HTML-entity-escaped link URLs.
Actual result:
--------------
Pager returns raw '&'s.
[2003-12-16 18:30 UTC] ieure at debian dot org
Hmm, tried to add a patch but it didn't seem to work. Here
are patches for Common & Jumping, against 2.0:
--- Common.php.orig Tue Dec 16 10:27:31 2003
+++ Common.php Tue Dec 16 10:28:02 2003
@@ -587,8 +587,8 @@
if ($this->_currentPage > 1) {
$back = sprintf('<a href="%s" %s
title="%s">%s</a>',
- ( $this->_append ?
$this->_url.$this->getPreviousPageID() :
-
$this->_url.sprintf($this->_fileName,
$this->getPreviousPageID()) ),
+ ( $this->_append ?
htmlentities($this->_url.$this->getPreviousPageID()) :
+
htmlentities($this->_url.sprintf($this->_fileName,
$this->getPreviousPageID())) ),
$this->_classString,
$this->_altPrev,
$this->_prevImg)
@@ -643,8 +643,8 @@
if ($this->_currentPage < $this->_totalPages) {
$next = $this->_spacesAfter
. sprintf('<a href="%s" %s
title="%s">%s</a>',
- ( $this->_append ?
$this->_url.$this->getNextPageID() :
-
$this->_url.sprintf($this->_fileName,
$this->getNextPageID()) ),
+ ( $this->_append ?
htmlentities($this->_url.$this->getNextPageID()) :
+
htmlentities($this->_url.sprintf($this->_fileName,
$this->getNextPageID())) ),
$this->_classString,
$this->_altNext,
$this->_nextImg)
--- Jumping.php.orig Tue Dec 16 10:26:00 2003
+++ Jumping.php Tue Dec 16 10:26:04 2003
@@ -254,7 +254,7 @@
if ($i != $this->_currentPage) {
$this->range[$i] = false;
$links .= sprintf('<a href="%s" %s
title="%s">%d</a>',
- ( $this->_append ?
$this->_url.$i : $this->_url.sprintf($this->_fileName, $i)
),
+ ( $this->_append ?
htmlentities($this->_url.$i) :
htmlentities($this->_url.sprintf($this->_fileName, $i)) ),
$this->_classString,
$this->_altPage.' '.$i,
$i);