From: Geoffrey T. D. <da...@us...> - 2001-11-06 20:43:48
|
Update of /cvsroot/phpwiki/phpwiki/lib In directory usw-pr-cvs1:/tmp/cvs-serv30066/lib Modified Files: Tag: release-1_2-branch db_filesystem.php Log Message: Fix encoding of page names '.' and '..'. Ensure RetrievePage() sets $pagehash[pagename]. Index: db_filesystem.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/Attic/db_filesystem.php,v retrieving revision 1.4.2.4 retrieving revision 1.4.2.5 diff -C2 -r1.4.2.4 -r1.4.2.5 *** db_filesystem.php 2001/08/18 05:09:09 1.4.2.4 --- db_filesystem.php 2001/11/06 20:43:45 1.4.2.5 *************** *** 47,55 **** // urldecode. function EncodePagename($pagename) { ! $bad_chars = '%/\\:'; // '%' must be first! for ($i = 0; $i < strlen($bad_chars); $i++) { $pagename = str_replace($bad_chars[$i], rawurlencode($bad_chars[$i]), $pagename); } return $pagename; } --- 47,61 ---- // urldecode. function EncodePagename($pagename) { ! if ($pagename == '.') ! return '%2e'; ! else if ($pagename == '..') ! return '%2e.'; ! ! $bad_chars = '%/\\:'; // '%' must be first! for ($i = 0; $i < strlen($bad_chars); $i++) { $pagename = str_replace($bad_chars[$i], rawurlencode($bad_chars[$i]), $pagename); } + return $pagename; } *************** *** 66,69 **** --- 72,76 ---- // unserialize $data into a hash $pagehash = unserialize($data); + $pagehash['pagename'] = $pagename; if (!is_array($pagehash)) ExitWiki(sprintf(gettext("'%s': corrupt file"), |