aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpetko <petko@524c5546-5005-0410-9a3e-e25e191bd360>2024-05-07 05:12:36 +0000
committerpetko <petko@524c5546-5005-0410-9a3e-e25e191bd360>2024-05-07 05:12:36 +0000
commit19b0912949931b14956890d472aaa49b90313c8c (patch)
treef5c30b6e0497536767b22cdb467369826a0a22b4
parentd795c66b0ae26c6eb2edff4bac433171bf7c45f9 (diff)
downloadpmwiki.svn-19b0912949931b14956890d472aaa49b90313c8c.tar.bz2
Documentation update.
git-svn-id: svn://pmwiki.org/pmwiki/trunk@4707 524c5546-5005-0410-9a3e-e25e191bd360
-rw-r--r--wikilib.d/PmWiki.ChangeLog8
-rw-r--r--wikilib.d/PmWiki.Requirements14
-rw-r--r--wikilib.d/PmWiki.Troubleshooting10
3 files changed, 16 insertions, 16 deletions
diff --git a/wikilib.d/PmWiki.ChangeLog b/wikilib.d/PmWiki.ChangeLog
index 3171cfb7..a8d66a83 100644
--- a/wikilib.d/PmWiki.ChangeLog
+++ b/wikilib.d/PmWiki.ChangeLog
@@ -1,9 +1,9 @@
version=pmwiki-2.3.33 ordered=1 urlencoded=1
author=Petko
charset=UTF-8
-csum=$GUIButtons remove invalid elements (+67)
+csum=phpdiff.php fix for PHP 8 when saving new pages (reported by Simon). (+71)
name=PmWiki.ChangeLog
-rev=1846
+rev=1847
targets=Cookbook.RecentChanges,PmWiki.MailingLists,PmWiki.Subversion,PmWiki.LayoutVariables,PmWiki.EditVariables,PITS.01502,PmWiki.UploadVariables,PmWiki.OtherVariables,PITS.01499,PITS.01498,PmWiki.WikiStyles,PITS.01497,Cookbook.DarkColorScheme,PmWiki.LinkVariables,Cookbook.PmSyntax-Talk,PmWiki.Notify,PITS.01431,PITS.01495,PITS.01493,PmWiki.PagelistVariables,PITS.01494,Cookbook.FuseEdit,PmWiki.BasicVariables,PmWiki.SecurityVariables,PITS.01488,PITS.01489,Cookbook.SectionEdit,PITS.01486,PITS.01297,PITS.01485,Cookbook.EditHelp,PITS.01484,PITS.01208,PITS.01483,PITS.01480,PmWiki.PageVariables,PITS.01478,PITS.01477,Cookbook.PmSyntax,Cookbook.CustomSyntax,PITS.01418,PITS.00447,PITS.01475,PITS.00908,PITS.01095,PmWiki.ChangeLogArchive
-text=(:Summary: Log of changes made to PmWiki by [[Release(Notes)]]:)\%0aSee [[Cookbook:RecentChanges | the cookbook recent changes page]] for additional updates and activity by other developers, or join the [[PmWiki (/) mailing lists]] to discuss feature development with us.%0a%0a(:Prerelease:Changes made to the [[PmWiki:Subversion | subversion pre-release]] of PmWiki. You can get \%0a[[https://www.pmwiki.org/pub/pmwiki-devel/pmwiki-latest-svn.zip|a full ZIP archive]] of the nightly version, or \%0a[[https://www.pmwiki.org/pub/pmwiki-devel/pmwiki-nightly.zip|a partial export]] with only the files changed since {$Version}.:)\%0a{$:Prerelease}%0a%0a* Add helper function PosArgs($args, $posnames).%0a* Refactor $MessagesFmt to allow nested arrays with keys and %25pmhlt%25[@(:messages key=a,b:)@] that can be set from recipes.%0a* Delete wikilib.d/PmWiki.PerGroupCustomizations (unused redirect), content moved to GroupCustomizations 14 years ago.%0a* RecipeCheck remove table width attribute (suggested by Simon).%0a* Add %25pmhlt%25[@(:if action browse,edit:)@] conditional.%0a* $GUIButtons remove invalid elements (warning reported by Simon).%0a[[#svn-revision-4704]]%0a* Update documentation.%0a%0a!!! Version 2.3.33 (2024-04-21) [[#v2333]]%0a* $EnablePreviewChanges to show "%25diffadd%25No changes%25%25" if there are no changes.%0a* PmSyntax add rules for colored pagenames and URLs inside bracket links.%0a* Responsive skin hide dropdown icons from printing.%0a* Fix some cases with conditional markup and markup expressions where an empty code could be evaluated (suggested by Goodguy00).%0a* Add $HTMLTitleFmt (PITS:01502).%0a* Cache auth conditional results for %25pmhlt%25[@(:if auth level:)@].%0a* Update blocklist.php for PHP 8, reported by Foster Schucker.%0a* Update documentation.%0a%0a!!! Version 2.3.32 (2024-03-24) [[#v2332]]%0a* Dark theme: add toggleImages(), add $ImgDarkSuffix, $FmtV['$PathUpload']. Restore light styles and pictures for printing.%0a* Responsive skin: white background when printing, move dark toggle label styles into skin.css.%0a* PmSyntax: only apply dark theme colors on screen (not print).%0a* Add upload extensions and image extension patterns AVIF, AVIFS.%0a* Lock AllRecentChanges in case of concurrent uploads.%0a* FileSizeCompact() allow for base 1000 (PITS:01499).%0a* Update documentation.%0a%0a!!! Version 2.3.31 (2024-02-23) [[#v2331]]%0a* Add $EnableDarkThemeToggle, enable 3-way theme toggle, "Light", "Dark" and "Auto", add annotation tooltip showing the current theme on tap and on mouse over.%0a* Refactor config data passed to pmwiki-utils.php, refactor dark toggle functions into a separate script. %0a* Responsive skin add body attributes for group and page name, update dark theme, enable auto theme (browser preferences) by default.%0a* PmSyntax improve dark theme thanks to a script by Said Achmiz; expose color properties for reuse.%0a* Refactor redirect quiet (PITS:01498).%0a* Page attributes passwords form: allow for +addition and -removal of passwords, users, groups.%0a* Allow $EditTemplatesFmt entries to apply to specific pages with name= specification (suggested by Simon).%0a* Forms add attribute "form".%0a* Refactor $PostConfig to allow called functions to update it.%0a* Update RecipeCheck to also list skins, suggested by Simon.%0a* Refactor PrintFmt, add $EnablePrePrintFmt.%0a* [[WikiStyles]] add 'columns'.%0a* When Highlight.js is enabled, Vardoc links will be the same color as variables in highlighted code blocks.%0a* Refactor $EnableUploadVersions.%0a* Update documentation.%0a%0a!!! Version 2.3.30 (2024-01-22) [[#v2330]]%0a* Add prototype for dark theme toggle. See PITS:01497 and Cookbook:DarkColorScheme.%0a** PmWiki-responsive skin converted CSS colors to variables, added dark theme styles.%0a** Add skins/pmwiki/pmwiki-32.svg, enable default for $PageLogoUrl.%0a** PmSyntax added dark theme styles.%0a* $EnableUploadMimeMatch with Fileinfo not enabled to deny uploads.%0a* upload.php fix warning for PHP 8.%0a* RecipeCheck use https, suggested by Simon.%0a* PrintDiff() add $since argument.%0a* Add $EnableRedirectQuiet = 2. Prevent infinite redirect loops.%0a* Fix Attach: links with escaped path and filename.%0a* Improved readability for inline diffs in page history.%0a* Forms enable input e_author not only for action=edit, fix unquoted positional form action URL.%0a* Update documentation.%0a%0a!!! Version 2.3.29 (2023-12-18) [[#v2329]]%0a* Fix urlapprove.php for PHP 8.2. %0a* PmSyntax textarea remove styles for width, height (Cookbook:PmSyntax-Talk), allow for fractional dimensions of the highlighted area.%0a* $MarkupDirectiveFunctions allow dashes in attribute names.%0a* Update documentation.%0a%0a!!! Version 2.3.28 (2023-11-27) [[#v2328]]%0a* Add input ''month'' and ''color'' fields.%0a* Add $NotifyRelatedTrailFmt.%0a* Reverse simpletable row backgrounds when there is a thead element.%0a* Fix pmwiki-utils.js when window.localStorage is disabled.%0a* UrlApprovals allow https: URLs if the http: URL for the same domain has been approved (PITS:01431).%0a* Update documentation.%0a%0a!!! Version 2.3.27 (2023-10-23) [[#v2327]]%0a* When merging last edit, if there is no change summary, reuse the last one. %0a* Keep unknown date/time formats for undefined timezone (PITS:01495).%0a* DiffRenderSource() fix for PHP 8, keep ins/del tags on the same line.%0a* The ".diffmarkup" element now has the style "white-space: pre-wrap".%0a* Add new keyword shortcuts Ctrl+B (bold), Ctrl+I (italic), Ctrl+K (link/unlink).%0a* Update documentation.%0a%0a%0a!!! Version 2.3.26 (2023-09-28) [[#v2326]]%0a* Add configurable $InputLabelFmt snippet (PITS:01493).%0a* Add configurable $TrailFmt snippets.%0a* Add $EnableSearchAtLeastOneTerm, default disabled.%0a* Unset upload extensions if size for the extension is set to 0.%0a* Update feeds.php for PHP 8.2 (PITS:01494).%0a* Update documentation.%0a%0a%0a!!! Version 2.3.25 (2023-07-29) [[#v2325]]%0a* Updates for PHP 8.2.%0a* Fix pagelist when 2+ directives on the same line, reported by Simon.%0a* Fix possible bug with internal group(header|footer) directives caused by PRR().%0a* Update documentation.%0a%0a%0a!!! Version 2.3.24 (2023-06-06) [[#v2324]]%0a* Add $EnableUploadMimeMatch.%0a* Add $EnableMergeLastMinorEdit, edit functions MergeLastMinorEdit (based on Cookbook:FuseEdit), SaveChangeSummary (refactored out of HandleEdit).%0a* Fix LogoutCookies() doesn't use a $pagename argument.%0a* PmForm add condition 'validemail' for use in template require.%0a* Add $PmCryptAlgo, pmcrypt() to call password_verify() if it exists. %0a* Refactor HandleDownload() split ServeDownload($filepath, $upname).%0a* Add InsertEditFunction($newfn, $where='%3cPostPage').%0a* Add $AuthFormRespCode.%0a* Add $EnableDownloadRanges, default 1.%0a* When the token is expired, reopen edit form rather than abort.%0a* LocalTimes add $EnableRCListLastEdit.%0a* Update documentation.%0a%0a!!! Version 2.3.23 (2023-05-03) [[#v2323]]%0a* Refactor pmtoken() to use session tokens, enable for core actions.%0a* Add %25pmhlt%25[@(:input pmtoken:)@] helper.%0a* PmForm add $PmFormEnablePmToken.%0a* Refactor @@HandleLogoutA()@@ split @@LogoutCookies()@@. %0a* Fix PRCB() for PHP %3c 7.4.%0a* Update documentation.%0a%0a!!! Version 2.3.22 (2023-04-06) [[#v2322]]%0a* Add scripts/pmform.php, Site.PmFormTemplates.%0a* FmtDateTimeZ() can now accept Unix timestamps.%0a* Pagelists fix bug with multiple category=+A,+B entries.%0a* Update for PHP 8.1 (PITS:01488).%0a* MarkupDirectiveFunctions will now cast numeric arguments to floats.%0a* Prevent errors in custom PageVariables from generating internal server errors (PITS:01489).%0a* Improve inline diff for rare cases (end of page).%0a* Forms/buttons with @@data-pmconfirm="Question"@@ will ask the question before they are submitted.%0a* Update documentation.%0a%0a%0a!!! Version 2.3.21 (2023-03-06) [[#v2321]]%0a* Add $IsPmArchive, $PmArchiveDir.%0a* Sortable tables with %3ctime datetime=""> elements can be sorted by the datetime attribute. Fix for tables with preexisting %3cthead> element.%0a* Updates for PHP8.%0a* Add CSV upload extension.%0a* LocalTimes add mode=3 to show old dates as MM'YY.%0a* Fix bug with multiline $MarkupDirectiveFunctions, reported by Antti Tikanm&auml;ki.%0a* Add $EnableCopyCode and Copy code button to %3cpre> blocks, suggested by Alex Dor&eacute;.%0a* Update PmTOC to work better with Cookbook:SectionEdit.%0a* Update documentation.%0a%0a!!! Version 2.3.20 (2023-02-12) [[#v2320]]%0a* Fix undefined variable warning, reported by Gregor Klari&ccaron;.%0a%0a!!! Version 2.3.19 (2023-02-11) [[#v2319]]%0a* Only set cookie params if headers not sent. %0a* Update for PHP8.2, reported by Dfaure. PageVar() update for PHP 8.%0a* Add variable $DiffPrepareInlineFunction.%0a* PageListCache() remove unused global $PageIndexFile.%0a* Add configurable $LocalCSSDir, $LocalCSSDirUrl.%0a* DownloadUrl() add $FmtV['$LinkDownload'] with current or future download link.%0a* Add pm_recode() helper function (based on PageStore::recodefn), check for more transcode options.%0a* HandleBrowse() add $FmtV['$PageSourceText'].%0a* Add helper function KeepBlock().%0a* Add $FarmPubDirPrefix, pm_servefile(), $ServeFileExts.%0a* Update documentation.%0a%0a!!! Version 2.3.18 (2023-01-15) [[#v2318]]%0a* Refactor scripts/utils.php, add pm_json_encode() (PITS:01486).%0a* EditAutoText() fix for lines ending with multiple backslashes.%0a* PmSyntax optimize/refactor for large pages (cont.), fix inline escaped texts could ignore line markups, add EnableStopwatch.%0a* Notify fix typo in regular expression.%0a* {-Add $EnableUploadVersions >=10 to rename base.ext to base-1.ext, base-2.ext,...-} ''Redesigned in 2.3.31''%0a* CondAuth() fix bug with global $AuthList.%0a* Add helper function PRCB() for simpler preg_replace_callback passing variables.%0a* Update scripts/refcount.php for PHP 8, reported by George Murray.%0a* Add PageVariable $PageLogoUrl (PITS:01297).%0a* Update documentation.%0a%0a!!! Version 2.3.17 (2022-12-17) [[#v2317]]%0a* WikiStyles trim class names (PITS:01485).%0a* GUIEditButtons refactor to enable Undo in textarea; allow for custom functions to configure mopen, mclose, and unselect for their buttons.%0a* [[Cookbook:EditHelp|EditHelp]] refactor to allow undo; add shortcuts Ctrl+L convert selection to lowercase, Ctrl+Shift+L to uppercase, Ctrl+Shift+ArrowUp and ArrowDown to swap lines.%0a* Skip upgrade check if $EnableReadOnly.%0a* Fix bug with multiple $MarkupDirectiveFunctions.%0a* Add $EnableBaseNameConfig.%0a* PmSyntax optimize for larger pages (cont.).%0a* Input password add class "inputbox" like the other fields.%0a* CondAuth() added way to check for usergroup permissions.%0a* Update in pagelist.php for PHP 8.%0a* Documentation update.%0a%0a!!! Version 2.3.16 (2022-11-28) [[#v2316]]%0a* Class PPRC add generic callbacks.%0a* IncludeText() update for PHP 8, reported by V.Krishn.%0a* WikiStyle add 'overflow', 'notoc'.%0a* Add PmNonce().%0a* PmTOC update indented link style->classname. %0a* Responsive skin: replace %25pmhlt%25[@[[%3c%3c]]@] with %25hlt html%25[@%3cbr class='clearboth' />@], update PmTOC styles.%0a* $EnableListIncludedPages use class name instead of style. %0a* guiedit.js remove unneeded style.%0a* PmSyntax realign font for nested programming languages in the edit form, optimize for large pages.%0a* Only call session_status() if function exists.%0a* Edit form remove unsafe-inline script.%0a* Revert WikiStyleToClassName(), PrePrintFmt() -- need more work (PITS:01484).%0a* Documentation update.%0a%0a!!! Version 2.3.15 (2022-11-21) [[#v2315]]%0a* CSS pre, code relative/scalable font-size (pmwiki-responsive skin).%0a* PmSyntax add variable --pmsyntax-fontsize-editform and split from --pmsyntax-fontsize [[https://www.pmichaud.com/pipermail/pmwiki-users/2022-November/064936.html|#]].%0a* PmSyntax fix [@[[Highlight]]@] label font size and family (reported by Hans).%0a* Add variable $CookieSameSite default to 'Lax'%0a* Add argument $samesite to pmsetcookie(), default to $CookieSameSite, refactor for old and new PHP versions. %0a* Add function pm_session_start() respecting local configuration.%0a* CSP header add base-uri=self; object-src 'none'.%0a* Add $HTTPHeaders['XSSP'] = 'X-XSS-Protection: 1; mode=block'.%0a* Rewrite GUIButtons logic to avoid unsafe-inline JavaScript.%0a* Refactor WikiStyles, replace inline styles with class names to avoid unsafe-inline CSS.%0a* Refactor PQA(), tables, cells, to replace inline style="..." with class names to avoid unsafe-inline CSS.%0a* Add PrePrintFmt(), refactor PrintFmt(), PrintSkin() to process wiki pages, skin parts, and skin functions to HTML before outputting headers.%0a* Fix XSS vulnerability.%0a* Documentation update.%0a%0a!!! Version 2.3.14 (2022-11-03) [[#v2314]]%0a* Searchbox also escape custom field names.%0a* Prevent double-encoded entities in searchbox (reported by Simon).%0a* Trim $Author (PITS:01208).%0a* Replace autofocus inline JavaScript with attributes.%0a* Edit form: the label next to the "Minor edit" checkbox now toggles the checkbox.%0a* PmSyntax recognize %25pmhlt%25[@(:template requires? ...:)@].%0a* Update for PHP 8. %0a* Obsolete PCCF() from PHP 7.2 not 8.0.%0a* Add array $ObsoleteMarkups, function TraceMarkup(), update Markup(), Markup_e() and ObsoleteMarkup(), to retrieve and show files and line numbers for obsolete/disabled markup rules.%0a* Fix bug with PSFT format %25L.%0a* Update documentation.%0a%0a!!! Version 2.3.13 (2022-10-07) [[#v2313]]%0a* Close potential XSS vulnerability, reported by lukystreik (PITS:01483).%0a* Refactor $MultiFactorAuthFunction, add $FailedLoginsFunction.%0a* Update documentation.%0a%0a!!! Version 2.3.12 (2022-09-25) [[#v2312]]%0a* Stripmagic() cast null to "" and other fixes for PHP 8.%0a* Fix parse error for complex conditionals with empty variables (PITS:01480).%0a* PSFT() and MarkupExpression [@ftime@] add %25L as human readable local timestamp. %0a* MarkupRestore() fix wrong cast to empty string of false-ish values.%0a* PrintAuthForm() split from PmWikiAuth(). %0a* Fix warning for unneeded session_regenerate_id() (reported by George Murray).%0a* Update documentation.%0a%0a!!! Version 2.3.11 (2022-08-30) [[#v2311]]%0a* Add [[PageVariables]] %25pmhlt%25 [@{$GroupHomePage}@], [@{$GroupHomePageName}@], [@{$GroupHomePageTitle}@], [@{$GroupHomePageTitlespaced}@].%0a* Add $MarkupDirectiveFunctions.%0a* Fix stripmagic() for arrays recently broke after PHP8 update.%0a* Update documentation.%0a%0a!!! Version 2.3.10 (2022-08-20) [[#v2310]]%0a* Update for PHP 8.1 (reported by Armin Bühler).%0a* Forms will now prefill wildcard variables from $DefaultUnsetPageTextVars or $DefaultEmptyPageTextVars.%0a* $EnablePmSyntax = 3; will enable syntax highlighting in the edit form by default, without the user clicking on "Highlight". Fix occasional text mis-alignment between the text area and the highlighted block.%0a* Update documentation.%0a%0a!!! Version 2.3.9 (2022-08-18) [[#v239]]%0a* Add non-wildcard $DefaultUnsetPageTextVars to %25pmhlt%25[@(:input default:)@] (reported by Johnny).%0a* PmSyntax handles new selectors pre.pmhlt, code.pmhlt.%0a* Update for PHP 8 (PITS:01478).%0a* Update documentation.%0a%0a%0a!!! Version 2.3.8 (2022-07-22) [[#v238]]%0a* PmSyntax fix for 2 different %25pmhlt%25 [@%25hlt%25@] on the same line (reported by Simon).%0a* Fix broken include when the first page doesn't exist.%0a* Update documentation.%0a%0a!!! Version 2.3.7 (2022-06-28) [[#v237]]%0a* $HTTPHeaders add X-Frame-Options (suggested by Imagine Dragon) and Content-Security-Policy to disallow embedding in external websites by default.%0a* $EnableHighlight will now remember any links to PmWiki variables and restore them after the highlighting, see [[thread->https://www.pmwiki.org/pipermail/pmwiki-users/2022-June/064887.html]].%0a* $EnablePmSyntax will now process %25pmhlt%25[@%25hlt pmwiki%25@] in addition to [@%25pmhlt%25@] blocks, and escaped markup after it will be tentatively highlighted.%0a* Update documentation.%0a%0a!!! Version 2.3.6 (2022-06-19) [[#v236]]%0a* Fixes for PHP 8.%0a* Add form attribute "lang".%0a* Sortable tables allow for table headers to have markup such as bold (except links). It will now use a case-insensitive natural ordering.%0a* Allow for $UploadVerifyFunction to modify $upname.%0a* Add variable $PageIndexTermsFunction.%0a* Searchbox allow for removal of submit button if [@label=""@]; add default [@placeholder="$[Search]"@].%0a* Fix author.php may be included before some variables are defined, reported by Said Achmiz.%0a* $EnableHighlight convert code blocks to plain text, see [[thread->https://www.pmwiki.org/pipermail/pmwiki-users/2022-June/064887.html]].%0a* Documentation update.%0a%0a%0a!!! Version 2.3.5 (2022-05-23) [[#v235]]%0a* Fix broken list=grouphomes (PITS:01477).%0a* Add DisableSkinParts() helper function for recipes.%0a* HandlePostUpload: add @@$FmtV["$filepath"]@@ and @@$FmtV["$upurl"]@@ with the file path and direct URL to the newly uploaded file.%0a* In pmwiki-utils.js, replace forgotten ''let'' with ''var'' (suggested by SteP).%0a* Update for PHP 8.1.%0a* Update documentation.%0a%0a!!! Version 2.3.4 (2022-04-22) [[#v234]]%0a* Fixes for PHP 8 warnings, reported by Siegfried Seibert.%0a* Update documentation.%0a%0a!!! Version 2.3.3 (2022-03-26) [[#v233]]%0a* Fix for PHP 8 warnings, reported by Jean-Patrick Charrey, Dominique Faure and Siegfried Seibert.%0a* Update README.txt and docs/ files, suggested by Simon Davis.%0a* Update documentation.%0a%0a!!! Version 2.3.2 (2022-02-09) [[#v232]]%0a* Allow for $EnableLocalTimes to define custom duration of the pulled page history.%0a* Rename variable $EnableIncludedPages to $EnableListIncludedPages (avoid ambiguity).%0a* Remove $LinkAlt when an embedded picture without an alternative text fails to load.%0a* PmSyntax:%0a** Allow for line breaks \\ inside headings, tables, list items (like the core).%0a** Parallel processing of multiple blocks.%0a* Add scripts/utils.php; move loading of pmwiki-utils.js and PmSyntax to scripts/utils.js.%0a** Add $EnablePmUtils, default enabled.%0a** Parallel processing of the pmwiki-utils.js utility functions.%0a** Move pmwiki-utils.js move to $HTMLHeaderFmt (often prevents page redraw with the TOC/PmToggle/LocalTimes).%0a* Fix bug causing invalid page name when the name is "Group.0".%0a* Fix PHP 8.1.2 warnings, reported by J&uuml;rgen Godau and Dominique Faure.%0a* LocaltTimes fix "rcnew" classes for wikis with the older format.%0a* Update documentation.%0a%0a!!! Version 2.3.1 (2022-01-15) [[#v231]]%0a%0a* Fix the release script which broke the $VersionNum variable and the [@[[#anchor]]@] markup with the PmWiki-responsive skin.%0a%0a!!! Version 2.3.0 (2022-01-15) [[#v230]]%0a* Add PmSyntax, $EnablePmSyntax, $CustomSyntax, [@{$EnabledIMap}@], see Cookbook:PmSyntax, Cookbook:CustomSyntax.%0a* [@(:markup:)@] can now have @@class=norender@@ to only show the source code without processing it.%0a* Updates for PHP 8.1, hide warnings, add PSFT() replacement for strftime() and 2 callbacks, $EnableFTimeNew, update core function calls, add [@%25o@] for the ordinal suffix of the date (PITS:01418).%0a* Notify: @@tz=@@ (timezone) per-user.%0a* PageList add category= argument (PITS:00447, PITS:01475); link= and category= now accept multiple pages, wildcards, and negations (PITS:00908).%0a* [=[[!Category]]=] links can have alternative text (PITS:01095).%0a* Simplify/optimize pmwiki-utils.js when using datasets, simplify sorting of table rows without cloning, add LocalTimes().%0a* Page history diff anchors to also have "id=" attributes in addition to "name=".%0a* Add $EnableLocalTimes (default disabled) and styles, add HandleDiffList().%0a* Add markup %25pmhlt%25[@@2022-01-09T08:35:00Z@]%25%25 output as %3ctime>; localized if $EnableLocalTimes.%0a** Add $CurrentLocalTime in the above format, used by default in $RecentChangesFmt.%0a* Add $EnableRecentUploads (only Site.AllRecentChanges, only if $RecentUploadsFmt not defined).%0a* PmTOC update CSS for properly indented subheadings.%0a* Edit form $EnableIncludedPages, add placeholders to e_changesummary and e_author. Enable $EnableNotSavedWarning, add to sample-config.php. EditHelp to behave more like a word processor, typing "Enter" twice without writing text removes the preceding bullet.%0a* Responsive skin details>summary:hover {color:navy, cursor: pointer;}.%0a* PrintDiff() add classes for the delay between edits: diffday, diffweek, diffmonth, diffyear.%0a* Add helper function @@DownloadUrl($pagename, $path)@@ moved from @@LinkUpload()@@.%0a* Add [=$[ULby]=] i18n string 'uploaded by'.%0a* Update documentation.%0a%0a!!! [[#older]] Older versions%0a[[(PmWiki:)ChangeLog Archive]] - changes prior to version 2.3.0.%0a
-time=1714291137
+text=(:Summary: Log of changes made to PmWiki by [[Release(Notes)]]:)\%0aSee [[Cookbook:RecentChanges | the cookbook recent changes page]] for additional updates and activity by other developers, or join the [[PmWiki (/) mailing lists]] to discuss feature development with us.%0a%0a(:Prerelease:Changes made to the [[PmWiki:Subversion | subversion pre-release]] of PmWiki. You can get \%0a[[https://www.pmwiki.org/pub/pmwiki-devel/pmwiki-latest-svn.zip|a full ZIP archive]] of the nightly version, or \%0a[[https://www.pmwiki.org/pub/pmwiki-devel/pmwiki-nightly.zip|a partial export]] with only the files changed since {$Version}.:)\%0a{$:Prerelease}%0a%0a* Add helper function PosArgs($args, $posnames).%0a* Refactor $MessagesFmt to allow nested arrays with keys and %25pmhlt%25[@(:messages key=a,b:)@] that can be set from recipes.%0a* Delete wikilib.d/PmWiki.PerGroupCustomizations (unused redirect), content moved to GroupCustomizations 14 years ago.%0a* RecipeCheck remove table width attribute (suggested by Simon).%0a* Add %25pmhlt%25[@(:if action browse,edit:)@] conditional.%0a* $GUIButtons remove invalid elements (warning reported by Simon).%0a* phpdiff.php fix for PHP 8 when saving new pages (reported by Simon).%0a[[#svn-revision-4706]]%0a* Update documentation.%0a%0a!!! Version 2.3.33 (2024-04-21) [[#v2333]]%0a* $EnablePreviewChanges to show "%25diffadd%25No changes%25%25" if there are no changes.%0a* PmSyntax add rules for colored pagenames and URLs inside bracket links.%0a* Responsive skin hide dropdown icons from printing.%0a* Fix some cases with conditional markup and markup expressions where an empty code could be evaluated (suggested by Goodguy00).%0a* Add $HTMLTitleFmt (PITS:01502).%0a* Cache auth conditional results for %25pmhlt%25[@(:if auth level:)@].%0a* Update blocklist.php for PHP 8, reported by Foster Schucker.%0a* Update documentation.%0a%0a!!! Version 2.3.32 (2024-03-24) [[#v2332]]%0a* Dark theme: add toggleImages(), add $ImgDarkSuffix, $FmtV['$PathUpload']. Restore light styles and pictures for printing.%0a* Responsive skin: white background when printing, move dark toggle label styles into skin.css.%0a* PmSyntax: only apply dark theme colors on screen (not print).%0a* Add upload extensions and image extension patterns AVIF, AVIFS.%0a* Lock AllRecentChanges in case of concurrent uploads.%0a* FileSizeCompact() allow for base 1000 (PITS:01499).%0a* Update documentation.%0a%0a!!! Version 2.3.31 (2024-02-23) [[#v2331]]%0a* Add $EnableDarkThemeToggle, enable 3-way theme toggle, "Light", "Dark" and "Auto", add annotation tooltip showing the current theme on tap and on mouse over.%0a* Refactor config data passed to pmwiki-utils.php, refactor dark toggle functions into a separate script. %0a* Responsive skin add body attributes for group and page name, update dark theme, enable auto theme (browser preferences) by default.%0a* PmSyntax improve dark theme thanks to a script by Said Achmiz; expose color properties for reuse.%0a* Refactor redirect quiet (PITS:01498).%0a* Page attributes passwords form: allow for +addition and -removal of passwords, users, groups.%0a* Allow $EditTemplatesFmt entries to apply to specific pages with name= specification (suggested by Simon).%0a* Forms add attribute "form".%0a* Refactor $PostConfig to allow called functions to update it.%0a* Update RecipeCheck to also list skins, suggested by Simon.%0a* Refactor PrintFmt, add $EnablePrePrintFmt.%0a* [[WikiStyles]] add 'columns'.%0a* When Highlight.js is enabled, Vardoc links will be the same color as variables in highlighted code blocks.%0a* Refactor $EnableUploadVersions.%0a* Update documentation.%0a%0a!!! Version 2.3.30 (2024-01-22) [[#v2330]]%0a* Add prototype for dark theme toggle. See PITS:01497 and Cookbook:DarkColorScheme.%0a** PmWiki-responsive skin converted CSS colors to variables, added dark theme styles.%0a** Add skins/pmwiki/pmwiki-32.svg, enable default for $PageLogoUrl.%0a** PmSyntax added dark theme styles.%0a* $EnableUploadMimeMatch with Fileinfo not enabled to deny uploads.%0a* upload.php fix warning for PHP 8.%0a* RecipeCheck use https, suggested by Simon.%0a* PrintDiff() add $since argument.%0a* Add $EnableRedirectQuiet = 2. Prevent infinite redirect loops.%0a* Fix Attach: links with escaped path and filename.%0a* Improved readability for inline diffs in page history.%0a* Forms enable input e_author not only for action=edit, fix unquoted positional form action URL.%0a* Update documentation.%0a%0a!!! Version 2.3.29 (2023-12-18) [[#v2329]]%0a* Fix urlapprove.php for PHP 8.2. %0a* PmSyntax textarea remove styles for width, height (Cookbook:PmSyntax-Talk), allow for fractional dimensions of the highlighted area.%0a* $MarkupDirectiveFunctions allow dashes in attribute names.%0a* Update documentation.%0a%0a!!! Version 2.3.28 (2023-11-27) [[#v2328]]%0a* Add input ''month'' and ''color'' fields.%0a* Add $NotifyRelatedTrailFmt.%0a* Reverse simpletable row backgrounds when there is a thead element.%0a* Fix pmwiki-utils.js when window.localStorage is disabled.%0a* UrlApprovals allow https: URLs if the http: URL for the same domain has been approved (PITS:01431).%0a* Update documentation.%0a%0a!!! Version 2.3.27 (2023-10-23) [[#v2327]]%0a* When merging last edit, if there is no change summary, reuse the last one. %0a* Keep unknown date/time formats for undefined timezone (PITS:01495).%0a* DiffRenderSource() fix for PHP 8, keep ins/del tags on the same line.%0a* The ".diffmarkup" element now has the style "white-space: pre-wrap".%0a* Add new keyword shortcuts Ctrl+B (bold), Ctrl+I (italic), Ctrl+K (link/unlink).%0a* Update documentation.%0a%0a%0a!!! Version 2.3.26 (2023-09-28) [[#v2326]]%0a* Add configurable $InputLabelFmt snippet (PITS:01493).%0a* Add configurable $TrailFmt snippets.%0a* Add $EnableSearchAtLeastOneTerm, default disabled.%0a* Unset upload extensions if size for the extension is set to 0.%0a* Update feeds.php for PHP 8.2 (PITS:01494).%0a* Update documentation.%0a%0a%0a!!! Version 2.3.25 (2023-07-29) [[#v2325]]%0a* Updates for PHP 8.2.%0a* Fix pagelist when 2+ directives on the same line, reported by Simon.%0a* Fix possible bug with internal group(header|footer) directives caused by PRR().%0a* Update documentation.%0a%0a%0a!!! Version 2.3.24 (2023-06-06) [[#v2324]]%0a* Add $EnableUploadMimeMatch.%0a* Add $EnableMergeLastMinorEdit, edit functions MergeLastMinorEdit (based on Cookbook:FuseEdit), SaveChangeSummary (refactored out of HandleEdit).%0a* Fix LogoutCookies() doesn't use a $pagename argument.%0a* PmForm add condition 'validemail' for use in template require.%0a* Add $PmCryptAlgo, pmcrypt() to call password_verify() if it exists. %0a* Refactor HandleDownload() split ServeDownload($filepath, $upname).%0a* Add InsertEditFunction($newfn, $where='%3cPostPage').%0a* Add $AuthFormRespCode.%0a* Add $EnableDownloadRanges, default 1.%0a* When the token is expired, reopen edit form rather than abort.%0a* LocalTimes add $EnableRCListLastEdit.%0a* Update documentation.%0a%0a!!! Version 2.3.23 (2023-05-03) [[#v2323]]%0a* Refactor pmtoken() to use session tokens, enable for core actions.%0a* Add %25pmhlt%25[@(:input pmtoken:)@] helper.%0a* PmForm add $PmFormEnablePmToken.%0a* Refactor @@HandleLogoutA()@@ split @@LogoutCookies()@@. %0a* Fix PRCB() for PHP %3c 7.4.%0a* Update documentation.%0a%0a!!! Version 2.3.22 (2023-04-06) [[#v2322]]%0a* Add scripts/pmform.php, Site.PmFormTemplates.%0a* FmtDateTimeZ() can now accept Unix timestamps.%0a* Pagelists fix bug with multiple category=+A,+B entries.%0a* Update for PHP 8.1 (PITS:01488).%0a* MarkupDirectiveFunctions will now cast numeric arguments to floats.%0a* Prevent errors in custom PageVariables from generating internal server errors (PITS:01489).%0a* Improve inline diff for rare cases (end of page).%0a* Forms/buttons with @@data-pmconfirm="Question"@@ will ask the question before they are submitted.%0a* Update documentation.%0a%0a%0a!!! Version 2.3.21 (2023-03-06) [[#v2321]]%0a* Add $IsPmArchive, $PmArchiveDir.%0a* Sortable tables with %3ctime datetime=""> elements can be sorted by the datetime attribute. Fix for tables with preexisting %3cthead> element.%0a* Updates for PHP8.%0a* Add CSV upload extension.%0a* LocalTimes add mode=3 to show old dates as MM'YY.%0a* Fix bug with multiline $MarkupDirectiveFunctions, reported by Antti Tikanm&auml;ki.%0a* Add $EnableCopyCode and Copy code button to %3cpre> blocks, suggested by Alex Dor&eacute;.%0a* Update PmTOC to work better with Cookbook:SectionEdit.%0a* Update documentation.%0a%0a!!! Version 2.3.20 (2023-02-12) [[#v2320]]%0a* Fix undefined variable warning, reported by Gregor Klari&ccaron;.%0a%0a!!! Version 2.3.19 (2023-02-11) [[#v2319]]%0a* Only set cookie params if headers not sent. %0a* Update for PHP8.2, reported by Dfaure. PageVar() update for PHP 8.%0a* Add variable $DiffPrepareInlineFunction.%0a* PageListCache() remove unused global $PageIndexFile.%0a* Add configurable $LocalCSSDir, $LocalCSSDirUrl.%0a* DownloadUrl() add $FmtV['$LinkDownload'] with current or future download link.%0a* Add pm_recode() helper function (based on PageStore::recodefn), check for more transcode options.%0a* HandleBrowse() add $FmtV['$PageSourceText'].%0a* Add helper function KeepBlock().%0a* Add $FarmPubDirPrefix, pm_servefile(), $ServeFileExts.%0a* Update documentation.%0a%0a!!! Version 2.3.18 (2023-01-15) [[#v2318]]%0a* Refactor scripts/utils.php, add pm_json_encode() (PITS:01486).%0a* EditAutoText() fix for lines ending with multiple backslashes.%0a* PmSyntax optimize/refactor for large pages (cont.), fix inline escaped texts could ignore line markups, add EnableStopwatch.%0a* Notify fix typo in regular expression.%0a* {-Add $EnableUploadVersions >=10 to rename base.ext to base-1.ext, base-2.ext,...-} ''Redesigned in 2.3.31''%0a* CondAuth() fix bug with global $AuthList.%0a* Add helper function PRCB() for simpler preg_replace_callback passing variables.%0a* Update scripts/refcount.php for PHP 8, reported by George Murray.%0a* Add PageVariable $PageLogoUrl (PITS:01297).%0a* Update documentation.%0a%0a!!! Version 2.3.17 (2022-12-17) [[#v2317]]%0a* WikiStyles trim class names (PITS:01485).%0a* GUIEditButtons refactor to enable Undo in textarea; allow for custom functions to configure mopen, mclose, and unselect for their buttons.%0a* [[Cookbook:EditHelp|EditHelp]] refactor to allow undo; add shortcuts Ctrl+L convert selection to lowercase, Ctrl+Shift+L to uppercase, Ctrl+Shift+ArrowUp and ArrowDown to swap lines.%0a* Skip upgrade check if $EnableReadOnly.%0a* Fix bug with multiple $MarkupDirectiveFunctions.%0a* Add $EnableBaseNameConfig.%0a* PmSyntax optimize for larger pages (cont.).%0a* Input password add class "inputbox" like the other fields.%0a* CondAuth() added way to check for usergroup permissions.%0a* Update in pagelist.php for PHP 8.%0a* Documentation update.%0a%0a!!! Version 2.3.16 (2022-11-28) [[#v2316]]%0a* Class PPRC add generic callbacks.%0a* IncludeText() update for PHP 8, reported by V.Krishn.%0a* WikiStyle add 'overflow', 'notoc'.%0a* Add PmNonce().%0a* PmTOC update indented link style->classname. %0a* Responsive skin: replace %25pmhlt%25[@[[%3c%3c]]@] with %25hlt html%25[@%3cbr class='clearboth' />@], update PmTOC styles.%0a* $EnableListIncludedPages use class name instead of style. %0a* guiedit.js remove unneeded style.%0a* PmSyntax realign font for nested programming languages in the edit form, optimize for large pages.%0a* Only call session_status() if function exists.%0a* Edit form remove unsafe-inline script.%0a* Revert WikiStyleToClassName(), PrePrintFmt() -- need more work (PITS:01484).%0a* Documentation update.%0a%0a!!! Version 2.3.15 (2022-11-21) [[#v2315]]%0a* CSS pre, code relative/scalable font-size (pmwiki-responsive skin).%0a* PmSyntax add variable --pmsyntax-fontsize-editform and split from --pmsyntax-fontsize [[https://www.pmichaud.com/pipermail/pmwiki-users/2022-November/064936.html|#]].%0a* PmSyntax fix [@[[Highlight]]@] label font size and family (reported by Hans).%0a* Add variable $CookieSameSite default to 'Lax'%0a* Add argument $samesite to pmsetcookie(), default to $CookieSameSite, refactor for old and new PHP versions. %0a* Add function pm_session_start() respecting local configuration.%0a* CSP header add base-uri=self; object-src 'none'.%0a* Add $HTTPHeaders['XSSP'] = 'X-XSS-Protection: 1; mode=block'.%0a* Rewrite GUIButtons logic to avoid unsafe-inline JavaScript.%0a* Refactor WikiStyles, replace inline styles with class names to avoid unsafe-inline CSS.%0a* Refactor PQA(), tables, cells, to replace inline style="..." with class names to avoid unsafe-inline CSS.%0a* Add PrePrintFmt(), refactor PrintFmt(), PrintSkin() to process wiki pages, skin parts, and skin functions to HTML before outputting headers.%0a* Fix XSS vulnerability.%0a* Documentation update.%0a%0a!!! Version 2.3.14 (2022-11-03) [[#v2314]]%0a* Searchbox also escape custom field names.%0a* Prevent double-encoded entities in searchbox (reported by Simon).%0a* Trim $Author (PITS:01208).%0a* Replace autofocus inline JavaScript with attributes.%0a* Edit form: the label next to the "Minor edit" checkbox now toggles the checkbox.%0a* PmSyntax recognize %25pmhlt%25[@(:template requires? ...:)@].%0a* Update for PHP 8. %0a* Obsolete PCCF() from PHP 7.2 not 8.0.%0a* Add array $ObsoleteMarkups, function TraceMarkup(), update Markup(), Markup_e() and ObsoleteMarkup(), to retrieve and show files and line numbers for obsolete/disabled markup rules.%0a* Fix bug with PSFT format %25L.%0a* Update documentation.%0a%0a!!! Version 2.3.13 (2022-10-07) [[#v2313]]%0a* Close potential XSS vulnerability, reported by lukystreik (PITS:01483).%0a* Refactor $MultiFactorAuthFunction, add $FailedLoginsFunction.%0a* Update documentation.%0a%0a!!! Version 2.3.12 (2022-09-25) [[#v2312]]%0a* Stripmagic() cast null to "" and other fixes for PHP 8.%0a* Fix parse error for complex conditionals with empty variables (PITS:01480).%0a* PSFT() and MarkupExpression [@ftime@] add %25L as human readable local timestamp. %0a* MarkupRestore() fix wrong cast to empty string of false-ish values.%0a* PrintAuthForm() split from PmWikiAuth(). %0a* Fix warning for unneeded session_regenerate_id() (reported by George Murray).%0a* Update documentation.%0a%0a!!! Version 2.3.11 (2022-08-30) [[#v2311]]%0a* Add [[PageVariables]] %25pmhlt%25 [@{$GroupHomePage}@], [@{$GroupHomePageName}@], [@{$GroupHomePageTitle}@], [@{$GroupHomePageTitlespaced}@].%0a* Add $MarkupDirectiveFunctions.%0a* Fix stripmagic() for arrays recently broke after PHP8 update.%0a* Update documentation.%0a%0a!!! Version 2.3.10 (2022-08-20) [[#v2310]]%0a* Update for PHP 8.1 (reported by Armin Bühler).%0a* Forms will now prefill wildcard variables from $DefaultUnsetPageTextVars or $DefaultEmptyPageTextVars.%0a* $EnablePmSyntax = 3; will enable syntax highlighting in the edit form by default, without the user clicking on "Highlight". Fix occasional text mis-alignment between the text area and the highlighted block.%0a* Update documentation.%0a%0a!!! Version 2.3.9 (2022-08-18) [[#v239]]%0a* Add non-wildcard $DefaultUnsetPageTextVars to %25pmhlt%25[@(:input default:)@] (reported by Johnny).%0a* PmSyntax handles new selectors pre.pmhlt, code.pmhlt.%0a* Update for PHP 8 (PITS:01478).%0a* Update documentation.%0a%0a%0a!!! Version 2.3.8 (2022-07-22) [[#v238]]%0a* PmSyntax fix for 2 different %25pmhlt%25 [@%25hlt%25@] on the same line (reported by Simon).%0a* Fix broken include when the first page doesn't exist.%0a* Update documentation.%0a%0a!!! Version 2.3.7 (2022-06-28) [[#v237]]%0a* $HTTPHeaders add X-Frame-Options (suggested by Imagine Dragon) and Content-Security-Policy to disallow embedding in external websites by default.%0a* $EnableHighlight will now remember any links to PmWiki variables and restore them after the highlighting, see [[thread->https://www.pmwiki.org/pipermail/pmwiki-users/2022-June/064887.html]].%0a* $EnablePmSyntax will now process %25pmhlt%25[@%25hlt pmwiki%25@] in addition to [@%25pmhlt%25@] blocks, and escaped markup after it will be tentatively highlighted.%0a* Update documentation.%0a%0a!!! Version 2.3.6 (2022-06-19) [[#v236]]%0a* Fixes for PHP 8.%0a* Add form attribute "lang".%0a* Sortable tables allow for table headers to have markup such as bold (except links). It will now use a case-insensitive natural ordering.%0a* Allow for $UploadVerifyFunction to modify $upname.%0a* Add variable $PageIndexTermsFunction.%0a* Searchbox allow for removal of submit button if [@label=""@]; add default [@placeholder="$[Search]"@].%0a* Fix author.php may be included before some variables are defined, reported by Said Achmiz.%0a* $EnableHighlight convert code blocks to plain text, see [[thread->https://www.pmwiki.org/pipermail/pmwiki-users/2022-June/064887.html]].%0a* Documentation update.%0a%0a%0a!!! Version 2.3.5 (2022-05-23) [[#v235]]%0a* Fix broken list=grouphomes (PITS:01477).%0a* Add DisableSkinParts() helper function for recipes.%0a* HandlePostUpload: add @@$FmtV["$filepath"]@@ and @@$FmtV["$upurl"]@@ with the file path and direct URL to the newly uploaded file.%0a* In pmwiki-utils.js, replace forgotten ''let'' with ''var'' (suggested by SteP).%0a* Update for PHP 8.1.%0a* Update documentation.%0a%0a!!! Version 2.3.4 (2022-04-22) [[#v234]]%0a* Fixes for PHP 8 warnings, reported by Siegfried Seibert.%0a* Update documentation.%0a%0a!!! Version 2.3.3 (2022-03-26) [[#v233]]%0a* Fix for PHP 8 warnings, reported by Jean-Patrick Charrey, Dominique Faure and Siegfried Seibert.%0a* Update README.txt and docs/ files, suggested by Simon Davis.%0a* Update documentation.%0a%0a!!! Version 2.3.2 (2022-02-09) [[#v232]]%0a* Allow for $EnableLocalTimes to define custom duration of the pulled page history.%0a* Rename variable $EnableIncludedPages to $EnableListIncludedPages (avoid ambiguity).%0a* Remove $LinkAlt when an embedded picture without an alternative text fails to load.%0a* PmSyntax:%0a** Allow for line breaks \\ inside headings, tables, list items (like the core).%0a** Parallel processing of multiple blocks.%0a* Add scripts/utils.php; move loading of pmwiki-utils.js and PmSyntax to scripts/utils.js.%0a** Add $EnablePmUtils, default enabled.%0a** Parallel processing of the pmwiki-utils.js utility functions.%0a** Move pmwiki-utils.js move to $HTMLHeaderFmt (often prevents page redraw with the TOC/PmToggle/LocalTimes).%0a* Fix bug causing invalid page name when the name is "Group.0".%0a* Fix PHP 8.1.2 warnings, reported by J&uuml;rgen Godau and Dominique Faure.%0a* LocaltTimes fix "rcnew" classes for wikis with the older format.%0a* Update documentation.%0a%0a!!! Version 2.3.1 (2022-01-15) [[#v231]]%0a%0a* Fix the release script which broke the $VersionNum variable and the [@[[#anchor]]@] markup with the PmWiki-responsive skin.%0a%0a!!! Version 2.3.0 (2022-01-15) [[#v230]]%0a* Add PmSyntax, $EnablePmSyntax, $CustomSyntax, [@{$EnabledIMap}@], see Cookbook:PmSyntax, Cookbook:CustomSyntax.%0a* [@(:markup:)@] can now have @@class=norender@@ to only show the source code without processing it.%0a* Updates for PHP 8.1, hide warnings, add PSFT() replacement for strftime() and 2 callbacks, $EnableFTimeNew, update core function calls, add [@%25o@] for the ordinal suffix of the date (PITS:01418).%0a* Notify: @@tz=@@ (timezone) per-user.%0a* PageList add category= argument (PITS:00447, PITS:01475); link= and category= now accept multiple pages, wildcards, and negations (PITS:00908).%0a* [=[[!Category]]=] links can have alternative text (PITS:01095).%0a* Simplify/optimize pmwiki-utils.js when using datasets, simplify sorting of table rows without cloning, add LocalTimes().%0a* Page history diff anchors to also have "id=" attributes in addition to "name=".%0a* Add $EnableLocalTimes (default disabled) and styles, add HandleDiffList().%0a* Add markup %25pmhlt%25[@@2022-01-09T08:35:00Z@]%25%25 output as %3ctime>; localized if $EnableLocalTimes.%0a** Add $CurrentLocalTime in the above format, used by default in $RecentChangesFmt.%0a* Add $EnableRecentUploads (only Site.AllRecentChanges, only if $RecentUploadsFmt not defined).%0a* PmTOC update CSS for properly indented subheadings.%0a* Edit form $EnableIncludedPages, add placeholders to e_changesummary and e_author. Enable $EnableNotSavedWarning, add to sample-config.php. EditHelp to behave more like a word processor, typing "Enter" twice without writing text removes the preceding bullet.%0a* Responsive skin details>summary:hover {color:navy, cursor: pointer;}.%0a* PrintDiff() add classes for the delay between edits: diffday, diffweek, diffmonth, diffyear.%0a* Add helper function @@DownloadUrl($pagename, $path)@@ moved from @@LinkUpload()@@.%0a* Add [=$[ULby]=] i18n string 'uploaded by'.%0a* Update documentation.%0a%0a!!! [[#older]] Older versions%0a[[(PmWiki:)ChangeLog Archive]] - changes prior to version 2.3.0.%0a
+time=1715058730
diff --git a/wikilib.d/PmWiki.Requirements b/wikilib.d/PmWiki.Requirements
index 08f98bb3..819de69e 100644
--- a/wikilib.d/PmWiki.Requirements
+++ b/wikilib.d/PmWiki.Requirements
@@ -1,9 +1,9 @@
-version=pmwiki-2.3.17 ordered=1 urlencoded=1
-author=Gregor
+version=pmwiki-2.3.33 ordered=1 urlencoded=1
+author=Petko
charset=UTF-8
-csum= (+94)
+csum=change link from unsupported to supported versions (+9)
name=PmWiki.Requirements
-rev=67
-targets=Cookbook.InstallOnIIS,Cookbook.Standalone,Cookbook.WikiOnAStick
-text=(:Summary:Pre-requisites for running the PmWiki wiki engine:)(:Audience: administrators (basic) :)%0aPrerequisites for running the PmWiki wiki engine:%0a# [[https://php.net/ | PHP]] 5.3 or later%0a** for PHP 5.5 to 8.1 compatibility use the current version of PmWiki%0a# Some sort of webserver that can run PHP scripts.%0a%0aPmWiki has been reported to work with the following OS/webserver combinations:%0a* Apache 1.3 or 2.0, on roughly anything (Unix, Linux, Windows, and Mac OS X)%0a** [[https://httpd.apache.org/ | Apache 2.4]] or later is recommended%0a* [[https://www.lighttpd.net/|lighttpd]] (1.4.19 php-fastcgi ssl) on Linux%0a* [[https://nginx.org/|nginx]] (0.8.47) on Windows ([[https://www.nginx.com/resources/wiki/start/topics/recipes/pmwiki/|configuration example]])%0a* Microsoft [[Cookbook:InstallOnIIS|Internet Information Server]], on Windows%0a* Linux + [[https://www.litespeedtech.com/|LiteSpeedWeb Server]] Standard Edition %0a* appWeb (a small, php-enabled webserver) executing on a Linksys NSLU2 Network Storage Link device%0a* Linux + [[https://www.hiawatha-webserver.org/|Hiawatha]]%0a%0aPmWiki has been reported not to work on:%0a* Mac OS before Mac OS X because there's no PHP available%0a* Specific Release Candidate builds of PHP 5.3 for Windows may not work correctly with passwords%0a%0aThe [[(Cookbook:)Standalone]] recipe provides a special, bare-bones webserver application that can be used to run PmWiki in places where another webserver isn't available.%0aPmWiki can also be run from a [[Cookbook:WikiOnAStick | USB drive]].
-time=1673640372
+rev=70
+targets=PmWiki.ReleaseNotes,Cookbook.Cookbook,Skins.Skins,PmWiki.Troubleshooting,Cookbook.InstallOnIIS,Cookbook.Standalone,Cookbook.WikiOnAStick
+text=(:Summary:Pre-requisites for running the PmWiki wiki engine:)(:Audience: administrators (basic) :)%0aYou are strongly advised to use PmWiki on the latest stable PHP version, or at least a PHP version that is still supported with security updates. See [[https://www.php.net/supported-versions|supported PHP versions]].%0a%0aThe [[ReleaseNotes|latest PmWiki version]] is tested and should work with recent PHP versions. New PHP versions often introduce breaking changes for code that was previously valid. We keep updating the core, but if you see any warnings we didn't notice, please do report them to us.%0a%0aSome [[Cookbook/]] recipes and complex [[skins/]] may break or show warnings after a PHP upgrade. If you have this problem, please see [[Troubleshooting]] on how to identify the recipes causing this, and check if the recipe has a more recent version, otherwise try reaching out to the recipe maintainer for assistance. You may find their contact details in the source code, or on their profile page.%0a%0aTechnical prerequisites for running the PmWiki wiki engine:%0a# [[https://php.net/ | PHP]] 5.3 or later%0a** for PHP 5.5 to 8.3 compatibility use the current version of PmWiki%0a# Some sort of webserver that can run PHP scripts.%0a%0aPmWiki has been reported to work with the following OS/webserver combinations:%0a* Apache 1.3 or 2.0, on roughly anything (Unix, Linux, Windows, and Mac OS X)%0a** [[https://httpd.apache.org/ | Apache 2.4]] or later is recommended%0a* [[https://www.lighttpd.net/|lighttpd]] (1.4.19 php-fastcgi ssl) on Linux%0a* [[https://nginx.org/|nginx]] (0.8.47) on Windows ([[https://www.nginx.com/resources/wiki/start/topics/recipes/pmwiki/|configuration example]])%0a* Microsoft [[Cookbook:InstallOnIIS|Internet Information Server]], on Windows%0a* Linux + [[https://www.litespeedtech.com/|LiteSpeedWeb Server]] Standard Edition %0a* appWeb (a small, php-enabled webserver) executing on a Linksys NSLU2 Network Storage Link device%0a* Linux + [[https://www.hiawatha-webserver.org/|Hiawatha]]%0a%0aPmWiki can run on MacOSX on a web server with PHP, however if you allow international characters in page names and in uploaded file names, your installation may be difficult to migrate to a standard web server, because the file system uses a different encoding for international characters. Trying to move such an installation to another operating system may make pages and attached files with international characters in the name invisible to PmWiki or unreachable with a web browser.%0a%0aThe [[(Cookbook:)Standalone]] recipe provides a special, bare-bones webserver application that can be used to run PmWiki in places where another webserver isn't available.%0aPmWiki can also be run from a [[Cookbook:WikiOnAStick | USB drive]].%0a
+time=1714640617
diff --git a/wikilib.d/PmWiki.Troubleshooting b/wikilib.d/PmWiki.Troubleshooting
index 72cfc263..806050da 100644
--- a/wikilib.d/PmWiki.Troubleshooting
+++ b/wikilib.d/PmWiki.Troubleshooting
@@ -1,9 +1,9 @@
-version=pmwiki-2.3.27 ordered=1 urlencoded=1
+version=pmwiki-2.3.33 ordered=1 urlencoded=1
author=Petko
charset=UTF-8
-csum=Upgrades#pmtoken (+204)
+csum=Move "warning may go away" up just after the question (-6)
name=PmWiki.Troubleshooting
-rev=176
+rev=178
targets=PmWiki.HowToGetAssistance,PmWiki.MailingLists,PmWiki.Questions,PITS.PITS,PmWiki.CustomMarkup,PmWiki.Functions,PmWiki.Upgrades,PmWiki.PathVariables,Cookbook.Cookbook,PmWiki.CustomPagelistSortOrder,Cookbook.PccfToPcfOverride,PmWiki.PmWiki,PmWiki.DebugVariables,PmWiki.SecurityVariables,PmWiki.BasicVariables,PmWiki.LinkVariables,PmWiki.EditVariables,PmWiki.FilePermissions,PmWiki.Installation,PmWiki.InitialSetupTasks,PmWiki.WikiGroup,PmWiki.LocalCustomizations,Cookbook.EncodePost,PmWiki.UploadsAdmin,PmWiki.Tables,PmWiki.LayoutVariables
-text=(:Summary:Advice for troubleshooting an installation, keywords: deprecated, preg_replace, crypt, blank pages, headers, .flock, upgrade, create_function:)%0a(:Audience: administrators :)%0a%0aPmWiki is pretty robust and can automatically adapt to a very wide variety of environments. %0aHowever, sometimes things don't go as we expect, so we're cataloging common errors and their fixes here.%0a%0a!! Troubleshooting Frequently Asked Questions%0a%0a->%25note%25 Note: This page on pmwiki.org is probably not the best place to post questions. Consider [[PmWiki:HowToGetAssistance | seeking assistance]] from the pmwiki-users [[mailing list(s)]], or post your question on the [[PmWiki:Questions]] page.%0a%0a>>faq%3c%3c [[#faq]]%0a%0a[[#track-errors]]%0aQ: How to track errors and know if they come from the PmWiki core or from a local configuration or addon/recipe?%0a%0aA: The PHP programming language has recently deprecated or removed a number of functions that were heavily used in the past by PmWiki and many addons/recipes/skins. The PmWiki core no longer relies on these functions but some addons still do -- here is how to track these.%0a%0aA: The PmWiki architecture allows addons (recipes, skins) and local configuration to register actions to be performed by PmWiki at a later point of the process. That's why the PHP warning may indicate a line in @@pmwiki.php@@, even if this was caused by a recipe. %0a%0aA: It is recommended to get the latest versions of PmWiki and of all your addons -- known bugs would have been fixed. This assumes the errors are fixed in the latest versions.%0a%0aA: (1) First disable or comment out all addons and local configuration (@@config.php@@, @@farmconfig.php@@, @@Group.php@@) and test your wiki. If the warning persists, please notify us ASAP with some information on how to reproduce the bug and on your installation (PHP version). If the error doesn't appear, go to (2).%0a%0aA: (2) Enable one local configuration or one addon and test your wiki to see if the error appears.%0a%0aA: (3) If the error doesn't appear, the problem is likely elsewhere. If you have more addons to enable, go back to (2).%0a%0aA: (4) If the error appears, it was likely caused by the last configuration or addon that you enabled. Search the documentation and the cookbook for more recent versions, or contact the addon maintainer, or leave a message on the talk page. If that doesn't work, contact us at [[PITS:PITS|our issue tracking system]]. Developers can find documentation on how to update old addons at [[CustomMarkup]] and [[Functions]].%0a%0aA: (5) Disable again the faulty addon and if you have more addons to enable, go back to (2).%0a%0aA: PmWiki has a friendly and reactive community and we may be able to quickly provide fixes.%0a%0a[[#pmtoken]]%0aQ: After a PmWiki upgrade, there are warnings "Token invalid or missing" and the changes are not saved.%0a%0aA: Some local customization may need to be updated, please see [[Upgrades#pmtoken]].%0a%0a[[#https]]%0aQ: After some upgrades to website, hosting, or browser, some skin styles/colors and possibly local styles, recipes, and embedded pictures, have stopped working.%0a%0aA: In your local configuration, if you have the variables $PubDirUrl or $FarmPubDirUrl defined with the [@http://@] scheme, replace them with [@https://@]. On secure websites, recent browser versions do not load resources from insecure URLs.%0a%0a[[#obsolete]]%0aQ: After a PHP upgrade, some of my markup rules have been disabled, and a tooltip title says (in English) "Markup rule ... is obsolete and has been disabled. See pmwiki.org/Troubleshooting".%0a%0aA: The obsolete markup rule should appear on the tooltip title and should make it easy to identify which custom configuration or addon/recipe caused it. If it is not obvious, follow the steps in the [[#track-errors|first section]]. Developers can find documentation on how to update old addons at [[CustomMarkup]] and [[Functions]].%0a%0a[[#create_function]]%0aQ: My wiki displays warnings "@@Deprecated: Function create_function() is deprecated@@".%0a%0aA: PHP version 7.2 deprecated a function which PmWiki used for markup definitions and pattern replacements. It is recommended to [[upgrades|upgrade]] to the latest PmWiki version and update all addons and skins from the [[Cookbook/]]. Addons in the [[https://www.pmwiki.org/wiki/Category/PHP72|PHP 7.2]] category are reported to be compatible with PHP 7.2. If you need a specific addon that has not yet been updated please contact us. To update your own addons, you probably need to update your calls to Markup(), see the pages [[Custom markup]], [[Functions]] and [[PmWiki:CustomPagelistSortOrder]].%0a%0aA: The recipe [[Cookbook:PccfToPcfOverride]] may provide a temporary solution until you can update all your add-ons.%0a%0aA: Note that PmWiki itself doesn't use that function, but (older) addons can register instructions to be processed at a later point. That's why the warning reports a line in @@pmwiki.php@@, even if it was requested by a local configuration or an addon.%0a%0aA: How to track down the addons that cause the warnings, see the [[#track-errors|first section]].%0a%0aQ: [[#deprecated]] [[#preg_replace]] My wiki displays warnings "@@Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead@@".%0aA: This is caused by a change in PHP version 5.5 for the [[https://www.php.net/preg_replace | preg_replace()]] function. PmWiki no longer relies on the deprecated feature since version 2.2.56 (it is recommended to upgrade to the latest version) but many recipes do. %0a%0aA: Note that PmWiki itself doesn't use that function, but (older) addons can register instructions to be processed at a later point. That's why the warning reports a line in @@pmwiki.php@@, even if it was requested by a local configuration or an addon.%0a%0aA: Recipes and Skins are currently being updated for [[https://www.pmwiki.org/wiki/Category/PHP55|PHP 5.5]]. Check if there are more recent versions published by their maintainers on the [[(Cookbook:)Cookbook]]. If you update your PmWiki and recipes, and still see the warnings, here is how to find out which recipes cause them:%0a%0aA: For PmWiki version 2.2.71 or newer, in @@config.php@@, enable diagnostic tools: \\%0a%25hlt php%25@@$EnableDiag = 1;@@\\%0aThen visit your wiki with the action 'ruleset', for example %25newwin%25[[PmWiki:PmWiki?action=ruleset]]%25%25 or follow a link like %25pmhlt%25[@[[HomePage?action=ruleset]]@]. This page will list all markup rules; those potentially incompatible with PHP 5.5 will be flagged with filenames, line numbers and search patterns triggering the warning.%0a%0aA: If the @@?action=ruleset@@ page shows no flagged rules, it is possible that either your recipes call the %25hlt php%25@@preg_replace()@@ function directly, or they define various search-replace patterns in incompatible ways. In these cases, your warning should display the file name and line number causing problems. Otherwise, to track down the addons that cause the warnings, see the [[#track-errors|first section]].%0a%0aA: Note that many hosting providers allow you to run different versions of PHP. See the documentation of your hosting plan to learn how to enable a PHP version earlier than 5.5.%0a%0aA: Finally, it is possible to suppress these warnings in PHP 5.5, by setting this line at the beginning of @@config.php@@: \\%0a%25hlt php%25@@error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);@@\\%0aThis should be a temporary solution, left only until your recipes are fixed.%0a%0aA: See categories: (:pagelist group=category name=php*,-php,-php5,-php54 fmt=#csvlist:).%0a%0a[[#crypt]]%0aQ: My wiki displays warnings "@@PHP Deprecated: crypt(): Supplied salt is not valid for DES. Possible bug in provided salt format@@" or "@@Uncaught ArgumentCountError: crypt() expects exactly 2 arguments, 1 given@@".%0aA: You probably have configuration settings that worked on older PHP versions. Here is how to hunt and try to fix this.%0a%0aA: In your (farm)@@config.php@@ or other local or cookbook files, any call to %25hlt php%25@@crypt()@@ can be replaced with @@pmcrypt()@@, eg \\%0a%25hlt php%25@@$DefaultPasswords['edit'] = crypt("my_password");@@ # %25red%25DEPRECATED%25%25\\%0a%25hlt php%25@@$DefaultPasswords['edit'] = '''pmcrypt'''("my_password");@@ # %25green%25OK%25%25\\%0a%25hlt php%25@@$DefaultPasswords['edit'] = array('''pmcrypt'''("pass1"), '''pmcrypt'''("pass2"));@@ # %25green%25OK%25%25%0a%0aA: Additionally, if there are locked passwords with a star @@*@@, you should replace those with [@@lock@]: \\%0a%25hlt php%25@@$DefaultPasswords['edit'] = '*';@@ # %25red%25DEPRECATED%25%25\\%0a%25hlt php%25@@$DefaultPasswords['edit'] = '@lock';@@ # %25green%25OK%25%25 (and no pmcrypt)%0a%0aA: The $DefaultPasswords variables usually have keys like 'edit', 'attr', 'read', 'upload', 'publish'.%0a%0aA: Some of your page files may still have the old star @@*@@ locking. Files that in the past shipped with the star lock were @@Site.GroupAttributes@@, @@SiteAdmin.GroupAttributes@@, @@Site.AuthUser@@ and/or @@PmWiki.GroupAttributes@@ in the directories @@wikilib.d@@ and/or @@wiki.d@@. You need to edit them in a text editor and replace any line among these:\\%0a%25hlt php%25@@passwdedit=*@@\\%0a%25hlt php%25@@passwdattr=*@@\\%0a%25hlt php%25@@passwdread=*@@\\%0a%25hlt php%25@@passwdpublish=*@@\\%0a%25hlt php%25@@passwdupload=*@@%0a%0aA:Edit the file and replace the star @@*@@ with the word [@@lock@] on every existing line. ''Do not add these lines if they are not already in the file, and do not change the lines if there is something other than a single star after the = equals sign''. Save the file, upload it back to your wiki and the warnings should disappear. (If you run a wiki farm, you may have such files in several @@wiki.d@@ directories.)%0a%0aQ: [[#invrange]] My wiki displays warnings "@@Compilation failed: invalid range in character class@@".%0a%0aA: A character class range in a regular expression is something in brackets like @@[A-Z]@@. An invalid character class may look like @@[Z-A]@@, where the "Z" character should not be before but after the "A" character. It may not be that obvious, but it would be in brackets with a dash between the wrong characters.%0a%0aA: If you want to match an actual dash (minus) rather than identify a character range, you need to place it first or last thing, like:\\%0a [@[-AZ] or [AZ-]@]%0a%0aA: To track the error, see [[#track-errors|the first question on this page]], and check the variables $GroupPattern, $NamePattern, $MakePageNamePatterns, $ROSPatterns and other locally configured core variables that contain "Pattern" or "Patterns" in the name.%0a%0a[[#blank_sections]]%0aQ: After a PHP upgrade, some of the pages on my wiki are completely blank, empty, some have blank or missing sections, but the sidebar and the action links are visible.%0a%0aA: Sometimes this may be caused by insufficient [[file permissions]] on the server. The PHP process needs "read/write (rw)" access to all files in the directories "@@wiki.d@@" and "@@uploads@@"; "read (r)" access to those in the "@@wikilib.d@@" directory; "list/search (x)" for the directories themselves. Search the documentation of your hosting provider for more information.%0a%0aA: Alternatively, this may be caused by a change in PHP 5.4 which affects the function %25hlt php%25@@htmlspecialchars()@@.%0a%0aA: The easiest temporary fix would be in your @@php.ini@@, or in @@.user.ini@@ to change the @@default_charset@@ directive to an 8-bit charset, for example cp1252:\\%0a%25hlt php%25[@default_charset = "Windows-1252";@]%0a%0aA: Or, this may sometimes work in @@local/config.php@@:\\%0a%25hlt php%25[@ini_set("default_charset", "Windows-1252");@]%0a%0aA: A more permanent fix would be to [[Upgrades|upgrade]] your installation to a more recent PmWiki version, your recipes, and in your own recipes or modules replace all calls to %25hlt php%25@@htmlspecialchars()@@ with @@PHSC()@@, a PmWiki helper function for such cases.%0a%0aA: The "blank" pages come from the fact that in PHP 5.4 the default encoding switched from an 8-bit encoding to variable-bit validated UTF-8, and that an incorrect UTF-8 string will be rejected. If your wiki uses an 8-bit encoding, it is virtually certain that it is not valid UTF-8. Worse, even if you do use UTF-8 some browsers may submit invalid bits. So the [[Functions#PHSC|%25hlt php%25@@PHSC()@@ function]] always pretends that it converts an 8-bit encoding where all bits are allowed.%0a%0a%0aQ: [[#backtrack_limit]] Very long pages with thousands of lines may appear blank after adding a few additional lines. This may be preformatted text, table, or text inside conditional markup, or text in a custom markup directive.%0aA: This may be caused by the PHP limits on how far to look forward, and loop back, when searching for matches of regular expressions. You may want to split the very long page into several pages, or the very long markup into separate sections/blocks, or you can increase the PHP limits by adding this to @@local/config.php@@:\\%0a%25hlt php%25[@@ini_set('pcre.backtrack_limit', 10000000);@]%0a%0aQ: Why am I seeing strange errors after [[Upgrades|upgrading]]?%0aA: Make sure all of the files were updated, in particular @@pmwiki.php@@ and all files in the @@scripts/@@ directory.%0a%0aA: This question sometimes arises when an administrator hasn't%0afollowed the advice, which used to be less prominent, on the%0a[[PmWiki.installation#notes|installation]] and%0a[[PmWiki.initial setup tasks#dontmodify|initial setup tasks]] pages and has renamed%0a''@@pmwiki.php@@'' instead of creating an ''@@index.php@@'' wrapper script.%0aIf you have renamed ''@@pmwiki.php@@'' to ''@@index.php@@'', then the upgrade procedure%0awon't have updated your ''@@index.php@@'' file. Delete the old version and%0acreate a wrapper script so it won't happen again.%0a%0aA: Sometimes an FTP or other copy program will fail to transfer all of the%0afiles properly. One way to check for this is by comparing file sizes.%0a%0aA: Be sure all of the files in the ''@@wikilib.d/@@'' directory%0awere also upgraded. Sometimes it's a good idea to simply delete the ''@@wikilib.d/@@''%0adirectory before upgrading. (Local copies of pages are stored in ''@@wiki.d/@@'' and not ''@@wikilib.d/@@''.)%0a%0aA: Make sure that the [[(PmWiki.)file permissions]] are correct. The official files have a restricted set of permissions that might not match your site's needs.%0a%0aA: If you use a custom pattern for @@$GroupPattern@@ make sure that it includes Site ($SiteGroup) and since PMWiki 2.2 also @@SiteAdmin@@ (@@$SiteAdminGroup@@).%0aOtherwise migration may fail (e.g. missing @@SiteAdmin@@ for PMWiki 2.2 and later) and/or login does not work.\\%0aAdditionally @@Main@@ (@@$DefaultGroup@@) should be included too.%0a%0a[[#flock]]%0aQ: I'm suddenly getting messages like "@@Warning: fopen(wiki.d/.flock): failed to open stream: Permission denied...@@" and "@@Cannot acquire lockfile@@"... what's wrong?%0a%0aA: Something (or someone) has changed the [[PmWiki/FilePermissions | permissions]] on the ''@@wiki.d/.flock@@'' file or the ''@@wiki.d/@@'' directory such that the webserver is no longer able to write the lockfile. The normal solution is to simply delete the ''@@.flock@@'' file from the ''@@wiki.d/@@'' directory -- PmWiki will then create a new one. Also be sure to check the permissions on the ''@@wiki.d/@@'' directory itself. (One can easily check and modify permissions of the ''@@wiki.d/@@'' directory in %25newwin%25[[https://filezilla-project.org/ | FileZilla]] (open-source FTP app) by right-clicking on the file > File attributes)%0a%0a[[#sidebar]]%0aQ: My links in the sidebar seem to be pointing to non-existent pages, even though I know I created the pages. Where are the pages?%0a%0aA: Links in the SideBar normally need to be qualified by a [[WikiGroup]] in order to work properly (use %25pmhlt%25[@[[Group/Page]]@] instead of [@[[Page]]@]).\\%0aAlso: Make sure you type Side'''B'''ar with a capital B.%0a%0a[[#headers]]%0aQ: Why am I seeing "@@PHP Warning: Cannot modify header information - headers already sent by ...@@" messages at the top of my page.%0a%0aA: If this is the first or only error message you're seeing, it's usually an indication that there are blank lines, spaces, or other characters before the %25hlt php%25[@%3c?php@] or after the [@?>@] in a [[local customization(s)]] files such as @@config.php@@. Double-check the file and make sure there is nothing before the initial [@%3c?php@]. It's often easiest and safest to eliminate any closing [@?>@] altogether. %0a%0aA: When you save the file, the encoding/charset should be either @@cp1252/Windows1252@@ or @@UTF-8@@ without Byte Order Mark. [[https://notepad-plus-plus.org/ | NotePad++]] is an editor that can do this.%0a%0aA: When you transfer the files, tell your FTP manager to use text mode transfer, or, if that doesn't help, binary mode transfer.%0a%0a%0aA: If the warning is appearing after some other warning or error message, then resolve the other error and this warning may go away.%0a%0a[[#session_write_close_error]]%0aQ: How do I make a PHP Warning about @@function.session-write-close@@ go away?%0a%0aA: If you are seeing an error similar to this%0a%0a->[@%0aWarning: session_write_close() [function.session-write-close]:%0aopen(/some/filesystem/path/to/a/directory/sess_[...]) failed: No such file%0aor directory (2) in /your/filesystem/path/to/pmwiki.php on line NNN%0a@]%0a%0aPmWiki sometimes does session-tracking using PHP's%0a[[https://www.php.net/manual/en/features.sessions.php | session-handling functions ]].%0aFor session-tracking to work, some information needs to be written%0ain a directory on the server. That directory needs to exist and%0abe writable by the webserver software. For this example, the%0awebserver software is configured to write sessions in this%0adirectory%0a%0a->[@/some/filesystem/path/to/a/directory/@]%0a%0abut the directory doesn't exist. The solution is to do at least one%0aof these:%0a* '''Create the directory''' and make sure it's writable by the webserver software%0a* Provide a session_save_path value that points to a directory that is writable by the server, e.g. in @@config.php@@:%0a%0a->%25hlt php%25[@session_save_path('/home/someuser/tmp/sessions');@] # unix-type OS%0a->%25hlt php%25[@session_save_path('C:/server/tmp/sessions');@] # Windows%0a%0a[[#multiplepwprompts]]%0aQ: Why is PmWiki prompting me multiple times for a password I've already entered?%0a%0aA: This could happen like out of nowhere if your hosting provider upgrades to PHP version 5.3, and you run an older PmWiki release. Recent PmWiki releases fix this problem.%0a%0aA: Alternatively, this may be an indication that the browser isn't accepting cookies, or that PHP's session handling functions on the server aren't properly configured. If the browser is accepting cookies, then try setting %25hlt php%25@@$EnableDiag=1;@@ in ''@@local/config.php@@'', run PmWiki using [@?action=phpinfo@], and verify that sessions are enabled and that the session.save_path has a reasonable value. Note that several versions of PHP under Windows require that a session_save_path be explicitly set (this can be done in the ''@@local/config.php@@'' file). You might also try setting session.auto_start to 1 in your @@php.ini@@.%0a%0aA: See also the question [[#configphp-order|I have to log in twice]] below.%0a%0aQ: I edited ''@@config.php@@'', but when I look at my wiki pages, all I see is "@@Parse error: parse error, unexpected T_VARIABLE in ''somefile'' on line ''number''.@@"%0a%0aA: You've made a mistake in writing the PHP that goes into the ''@@config.php@@'' file. The most common mistake that causes the T_VARIABLE error is forgetting the semi-colon (;) at the end of a line that you added. The line number and file named are where you should look for the mistake.%0a%0a%0aQ: Searches and pagelists stopped working after I upgraded -- no errors are reported, but links to other pages do not appear (or do not appear as they should) -- what gives?%0a%0aA: Be sure all of the files in the ''@@wikilib.d/@@'' directory%0awere also upgraded. In particular, it sounds as if the @@Site.PageListTemplates@@ page is either missing (if no links are displayed) or is an old version (if the links do not appear as they should). Also make sure that read-permissions (attr) are set for the pages @@Site.PageListTemplates@@ and @@Site.Search@@.%0a%0a[[#mod_security]]%0aQ: Some of my posts are coming back with "403 Forbidden", "406 Not Acceptable", or "418 I'm a teapot" errors, or "Internal Server Error". This happens with some posts but not others.%0a%0aA: Your webserver probably has [[https://github.com/SpiderLabs/ModSecurity | mod_security]] enabled. The mod_security "feature" scans all incoming posts for forbidden words or phrases that might indicate someone is trying to hack the system, and if any of them are present then Apache returns the 403 Forbidden or 406 Not Acceptable error. Common phrases that tend to trigger mod_security include "curl ", "wget", "file(", and "system(", although there are many others (depending on the configuration, percent signs, html tags, international characters).%0a%0aSince mod_security intercepts the requests and sends the "forbidden"%0amessage before PmWiki ever gets a chance to run, it's not a bug in PmWiki, and%0athere's little that PmWiki can do about it. Instead, one has to alter the%0awebserver configuration to disable mod_security or reconfigure it to allow%0awhatever word it is forbidding. Some sites may be able to disable mod_security%0aby placing [@SecFilterEngine off@] in a ''@@.htaccess@@'' file.%0a%0aAlternatively, you may try the recipe Cookbook:EncodePost.%0a%0aQ: I get the following message when attempting to upload an image, what do I do?%0a[-@@'''Warning''': move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 1929 is not allowed to access /home/onscolre/public_html/pmwikiuploads/Photos owned by uid 33 in '''/home/onscolre/public_html/pmwiki/scripts/upload.php''' on line '''198'''@@-]%0a%0a@@'''PmWiki can't process your request'''@@%0a%0a[-@@?cannot move uploaded file to /home/onscolre/public_html/pmwikiuploads/Photos/FoundationPupilsIn1958.jpeg@@-]%0a%0a[-@@We are sorry for any inconvenience.@@-]%0a%0aA: Your server is configured with PHP [[https://web.archive.org/web/20201014032613/https://www.php.net/manual/en/features.safe-mode.php|Safe Mode]] enabled (removed as of PHP 5.4.0). Configure your wiki to use a [[PmWiki/UploadsAdmin#sitewideprefix|site-wide uploads prefix]], then create the ''uploads/'' directory manually and set 777 permissions on it (rather than letting PmWiki create the directory).%0a%0a[[#TableRowIndexMax]] [[#divisionbyzero]]%0aQ: I'm starting to see "@@Division by zero error in pmwiki.php...@@" on my site. What's wrong?%0a%0aA: It's a bug in PmWiki that occurs only with the [[tables]] markup and only for versions of PHP >= 4.4.6 or >= 5.2.0. Often it seems to occur "out of nowhere" because the server administrator has upgraded PHP. Try [[upgrad(es)]]ing to a later version of PmWiki to remove the error, or try setting the following in ''@@local/config.php@@'':%0a%0a $TableRowIndexMax = 1;%0a%0a[[#configphp-order]]%0aQ: I have to log in twice [-(two times) (2 times)-]. -or- My password is not being required even though it should. -or- I changed the password but the old password is still active. -or- My @@config.php@@ password is not over-riding my @@farmconfig.php@@ password.%0aA: It could happen if (farm)@@config.php@@, or an included recipe, directly calls the functions %25hlt php%25@@CondAuth()@@, or @@RetrieveAuthPage()@@, @@PageTextVar()@@, @@PageVar()@@ and possibly others, before defining all passwords and before including AuthUser (if required). %0a%0aThe [[PmWiki/LocalCustomizations#configphp-order|order of @@config.php@@]] is very significant.%0a%0a[[#CrashWhenEditing]]%0aQ: When editing an existing page, The "Save" causes a no-response of your server (not a blank page, no response at all, an endless connexion try). To get back the hand, it is necessary to request for another page (by clicking on its link in the menu for instance). And horror!, the ...?action=edit is then inhibited, it becomes impossible to edit any page.%0aA: When the editing of a page is initiated a file names [@.flock@] is created in the [@wiki.d@] repository. As long as this file exists it is impossible to edit any page. This file denotes an edition in progress and is automatically destroyed when leaving successfully an edit action by "Save". In case of a crash of the editing, this file is not destroyed. The remedy is, with an FTP client parameterized to show hidden files, to remove the [@.flock@] file. And all get back OK. This behavior is typically caused by a bug which provokes (directly or indirectly), an endless loop in a recipe concerned by the edited page.%0a%0aQ: I get the error "@@Data Mismatch - Locking FAILED!@@"%0aA: This is probably not a PmWiki error. PmWiki cannot create a lock file due to an underlying file system problem.%0aFor example the disk quota has been exceeded (e.g. by an error log file or file uploads), or there are problems with file system permissions.%0a
-time=1699688617
+text=(:Summary:Advice for troubleshooting an installation, keywords: deprecated, preg_replace, crypt, blank pages, headers, .flock, upgrade, create_function:)%0a(:Audience: administrators :)%0a%0aPmWiki is pretty robust and can automatically adapt to a very wide variety of environments. %0aHowever, sometimes things don't go as we expect, so we're cataloging common errors and their fixes here.%0a%0a!! Troubleshooting Frequently Asked Questions%0a%0a->%25note%25 Note: This page on pmwiki.org is probably not the best place to post questions. Consider [[PmWiki:HowToGetAssistance | seeking assistance]] from the pmwiki-users [[mailing list(s)]], or post your question on the [[PmWiki:Questions]] page.%0a%0a>>faq%3c%3c [[#faq]]%0a%0a[[#track-errors]]%0aQ: How to track errors and know if they come from the PmWiki core or from a local configuration or addon/recipe?%0a%0aA: The PHP programming language has recently deprecated or removed a number of functions that were heavily used in the past by PmWiki and many addons/recipes/skins. The PmWiki core no longer relies on these functions but some addons still do -- here is how to track these.%0a%0aA: The PmWiki architecture allows addons (recipes, skins) and local configuration to register actions to be performed by PmWiki at a later point of the process. That's why the PHP warning may indicate a line in @@pmwiki.php@@, even if this was caused by a recipe. %0a%0aA: It is recommended to get the latest versions of PmWiki and of all your addons -- known bugs would have been fixed. This assumes the errors are fixed in the latest versions.%0a%0aA: (1) First disable or comment out all addons and local configuration (@@config.php@@, @@farmconfig.php@@, @@Group.php@@) and test your wiki. If the warning persists, please notify us ASAP with some information on how to reproduce the bug and on your installation (PHP version). If the error doesn't appear, go to (2).%0a%0aA: (2) Enable one local configuration or one addon and test your wiki to see if the error appears.%0a%0aA: (3) If the error doesn't appear, the problem is likely elsewhere. If you have more addons to enable, go back to (2).%0a%0aA: (4) If the error appears, it was likely caused by the last configuration or addon that you enabled. Search the documentation and the cookbook for more recent versions, or contact the addon maintainer, or leave a message on the talk page. If that doesn't work, contact us at [[PITS:PITS|our issue tracking system]]. Developers can find documentation on how to update old addons at [[CustomMarkup]] and [[Functions]].%0a%0aA: (5) Disable again the faulty addon and if you have more addons to enable, go back to (2).%0a%0aA: PmWiki has a friendly and reactive community and we may be able to quickly provide fixes.%0a%0a[[#pmtoken]]%0aQ: After a PmWiki upgrade, there are warnings "Token invalid or missing" and the changes are not saved.%0a%0aA: Some local customization may need to be updated, please see [[Upgrades#pmtoken]].%0a%0a[[#https]]%0aQ: After some upgrades to website, hosting, or browser, some skin styles/colors and possibly local styles, recipes, and embedded pictures, have stopped working.%0a%0aA: In your local configuration, if you have the variables $PubDirUrl or $FarmPubDirUrl defined with the [@http://@] scheme, replace them with [@https://@]. On secure websites, recent browser versions do not load resources from insecure URLs.%0a%0a[[#obsolete]]%0aQ: After a PHP upgrade, some of my markup rules have been disabled, and a tooltip title says (in English) "Markup rule ... is obsolete and has been disabled. See pmwiki.org/Troubleshooting".%0a%0aA: The obsolete markup rule should appear on the tooltip title and should make it easy to identify which custom configuration or addon/recipe caused it. If it is not obvious, follow the steps in the [[#track-errors|first section]]. Developers can find documentation on how to update old addons at [[CustomMarkup]] and [[Functions]].%0a%0a[[#create_function]]%0aQ: My wiki displays warnings "@@Deprecated: Function create_function() is deprecated@@".%0a%0aA: PHP version 7.2 deprecated a function which PmWiki used for markup definitions and pattern replacements. It is recommended to [[upgrades|upgrade]] to the latest PmWiki version and update all addons and skins from the [[Cookbook/]]. Addons in the [[https://www.pmwiki.org/wiki/Category/PHP72|PHP 7.2]] category are reported to be compatible with PHP 7.2. If you need a specific addon that has not yet been updated please contact us. To update your own addons, you probably need to update your calls to Markup(), see the pages [[Custom markup]], [[Functions]] and [[PmWiki:CustomPagelistSortOrder]].%0a%0aA: The recipe [[Cookbook:PccfToPcfOverride]] may provide a temporary solution until you can update all your add-ons.%0a%0aA: Note that PmWiki itself doesn't use that function, but (older) addons can register instructions to be processed at a later point. That's why the warning reports a line in @@pmwiki.php@@, even if it was requested by a local configuration or an addon.%0a%0aA: How to track down the addons that cause the warnings, see the [[#track-errors|first section]].%0a%0aQ: [[#deprecated]] [[#preg_replace]] My wiki displays warnings "@@Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead@@".%0aA: This is caused by a change in PHP version 5.5 for the [[https://www.php.net/preg_replace | preg_replace()]] function. PmWiki no longer relies on the deprecated feature since version 2.2.56 (it is recommended to upgrade to the latest version) but many recipes do. %0a%0aA: Note that PmWiki itself doesn't use that function, but (older) addons can register instructions to be processed at a later point. That's why the warning reports a line in @@pmwiki.php@@, even if it was requested by a local configuration or an addon.%0a%0aA: Recipes and Skins are currently being updated for [[https://www.pmwiki.org/wiki/Category/PHP55|PHP 5.5]]. Check if there are more recent versions published by their maintainers on the [[(Cookbook:)Cookbook]]. If you update your PmWiki and recipes, and still see the warnings, here is how to find out which recipes cause them:%0a%0aA: For PmWiki version 2.2.71 or newer, in @@config.php@@, enable diagnostic tools: \\%0a%25hlt php%25@@$EnableDiag = 1;@@\\%0aThen visit your wiki with the action 'ruleset', for example %25newwin%25[[PmWiki:PmWiki?action=ruleset]]%25%25 or follow a link like %25pmhlt%25[@[[HomePage?action=ruleset]]@]. This page will list all markup rules; those potentially incompatible with PHP 5.5 will be flagged with filenames, line numbers and search patterns triggering the warning.%0a%0aA: If the @@?action=ruleset@@ page shows no flagged rules, it is possible that either your recipes call the %25hlt php%25@@preg_replace()@@ function directly, or they define various search-replace patterns in incompatible ways. In these cases, your warning should display the file name and line number causing problems. Otherwise, to track down the addons that cause the warnings, see the [[#track-errors|first section]].%0a%0aA: Note that many hosting providers allow you to run different versions of PHP. See the documentation of your hosting plan to learn how to enable a PHP version earlier than 5.5.%0a%0aA: Finally, it is possible to suppress these warnings in PHP 5.5, by setting this line at the beginning of @@config.php@@: \\%0a%25hlt php%25@@error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);@@\\%0aThis should be a temporary solution, left only until your recipes are fixed.%0a%0aA: See categories: (:pagelist group=category name=php*,-php,-php5,-php54 fmt=#csvlist:).%0a%0a[[#crypt]]%0aQ: My wiki displays warnings "@@PHP Deprecated: crypt(): Supplied salt is not valid for DES. Possible bug in provided salt format@@" or "@@Uncaught ArgumentCountError: crypt() expects exactly 2 arguments, 1 given@@".%0aA: You probably have configuration settings that worked on older PHP versions. Here is how to hunt and try to fix this.%0a%0aA: In your (farm)@@config.php@@ or other local or cookbook files, any call to %25hlt php%25@@crypt()@@ can be replaced with @@pmcrypt()@@, eg \\%0a%25hlt php%25@@$DefaultPasswords['edit'] = crypt("my_password");@@ # %25red%25DEPRECATED%25%25\\%0a%25hlt php%25@@$DefaultPasswords['edit'] = '''pmcrypt'''("my_password");@@ # %25green%25OK%25%25\\%0a%25hlt php%25@@$DefaultPasswords['edit'] = array('''pmcrypt'''("pass1"), '''pmcrypt'''("pass2"));@@ # %25green%25OK%25%25%0a%0aA: Additionally, if there are locked passwords with a star @@*@@, you should replace those with [@@lock@]: \\%0a%25hlt php%25@@$DefaultPasswords['edit'] = '*';@@ # %25red%25DEPRECATED%25%25\\%0a%25hlt php%25@@$DefaultPasswords['edit'] = '@lock';@@ # %25green%25OK%25%25 (and no pmcrypt)%0a%0aA: The $DefaultPasswords variables usually have keys like 'edit', 'attr', 'read', 'upload', 'publish'.%0a%0aA: Some of your page files may still have the old star @@*@@ locking. Files that in the past shipped with the star lock were @@Site.GroupAttributes@@, @@SiteAdmin.GroupAttributes@@, @@Site.AuthUser@@ and/or @@PmWiki.GroupAttributes@@ in the directories @@wikilib.d@@ and/or @@wiki.d@@. You need to edit them in a text editor and replace any line among these:\\%0a%25hlt php%25@@passwdedit=*@@\\%0a%25hlt php%25@@passwdattr=*@@\\%0a%25hlt php%25@@passwdread=*@@\\%0a%25hlt php%25@@passwdpublish=*@@\\%0a%25hlt php%25@@passwdupload=*@@%0a%0aA:Edit the file and replace the star @@*@@ with the word [@@lock@] on every existing line. ''Do not add these lines if they are not already in the file, and do not change the lines if there is something other than a single star after the = equals sign''. Save the file, upload it back to your wiki and the warnings should disappear. (If you run a wiki farm, you may have such files in several @@wiki.d@@ directories.)%0a%0aQ: [[#invrange]] My wiki displays warnings "@@Compilation failed: invalid range in character class@@".%0a%0aA: A character class range in a regular expression is something in brackets like @@[A-Z]@@. An invalid character class may look like @@[Z-A]@@, where the "Z" character should not be before but after the "A" character. It may not be that obvious, but it would be in brackets with a dash between the wrong characters.%0a%0aA: If you want to match an actual dash (minus) rather than identify a character range, you need to place it first or last thing, like:\\%0a [@[-AZ] or [AZ-]@]%0a%0aA: To track the error, see [[#track-errors|the first question on this page]], and check the variables $GroupPattern, $NamePattern, $MakePageNamePatterns, $ROSPatterns and other locally configured core variables that contain "Pattern" or "Patterns" in the name.%0a%0a[[#blank_sections]]%0aQ: After a PHP upgrade, some of the pages on my wiki are completely blank, empty, some have blank or missing sections, but the sidebar and the action links are visible.%0a%0aA: Sometimes this may be caused by insufficient [[file permissions]] on the server. The PHP process needs "read/write (rw)" access to all files in the directories "@@wiki.d@@" and "@@uploads@@"; "read (r)" access to those in the "@@wikilib.d@@" directory; "list/search (x)" for the directories themselves. Search the documentation of your hosting provider for more information.%0a%0aA: Alternatively, this may be caused by a change in PHP 5.4 which affects the function %25hlt php%25@@htmlspecialchars()@@.%0a%0aA: The easiest temporary fix would be in your @@php.ini@@, or in @@.user.ini@@ to change the @@default_charset@@ directive to an 8-bit charset, for example cp1252:\\%0a%25hlt php%25[@default_charset = "Windows-1252";@]%0a%0aA: Or, this may sometimes work in @@local/config.php@@:\\%0a%25hlt php%25[@ini_set("default_charset", "Windows-1252");@]%0a%0aA: A more permanent fix would be to [[Upgrades|upgrade]] your installation to a more recent PmWiki version, your recipes, and in your own recipes or modules replace all calls to %25hlt php%25@@htmlspecialchars()@@ with @@PHSC()@@, a PmWiki helper function for such cases.%0a%0aA: The "blank" pages come from the fact that in PHP 5.4 the default encoding switched from an 8-bit encoding to variable-bit validated UTF-8, and that an incorrect UTF-8 string will be rejected. If your wiki uses an 8-bit encoding, it is virtually certain that it is not valid UTF-8. Worse, even if you do use UTF-8 some browsers may submit invalid bits. So the [[Functions#PHSC|%25hlt php%25@@PHSC()@@ function]] always pretends that it converts an 8-bit encoding where all bits are allowed.%0a%0a%0aQ: [[#backtrack_limit]] Very long pages with thousands of lines may appear blank after adding a few additional lines. This may be preformatted text, table, or text inside conditional markup, or text in a custom markup directive.%0aA: This may be caused by the PHP limits on how far to look forward, and loop back, when searching for matches of regular expressions. You may want to split the very long page into several pages, or the very long markup into separate sections/blocks, or you can increase the PHP limits by adding this to @@local/config.php@@:\\%0a%25hlt php%25[@@ini_set('pcre.backtrack_limit', 10000000);@]%0a%0aQ: Why am I seeing strange errors after [[Upgrades|upgrading]]?%0aA: Make sure all of the files were updated, in particular @@pmwiki.php@@ and all files in the @@scripts/@@ directory.%0a%0aA: This question sometimes arises when an administrator hasn't%0afollowed the advice, which used to be less prominent, on the%0a[[PmWiki.installation#notes|installation]] and%0a[[PmWiki.initial setup tasks#dontmodify|initial setup tasks]] pages and has renamed%0a''@@pmwiki.php@@'' instead of creating an ''@@index.php@@'' wrapper script.%0aIf you have renamed ''@@pmwiki.php@@'' to ''@@index.php@@'', then the upgrade procedure%0awon't have updated your ''@@index.php@@'' file. Delete the old version and%0acreate a wrapper script so it won't happen again.%0a%0aA: Sometimes an FTP or other copy program will fail to transfer all of the%0afiles properly. One way to check for this is by comparing file sizes.%0a%0aA: Be sure all of the files in the ''@@wikilib.d/@@'' directory%0awere also upgraded. Sometimes it's a good idea to simply delete the ''@@wikilib.d/@@''%0adirectory before upgrading. (Local copies of pages are stored in ''@@wiki.d/@@'' and not ''@@wikilib.d/@@''.)%0a%0aA: Make sure that the [[(PmWiki.)file permissions]] are correct. The official files have a restricted set of permissions that might not match your site's needs.%0a%0aA: If you use a custom pattern for @@$GroupPattern@@ make sure that it includes Site ($SiteGroup) and since PMWiki 2.2 also @@SiteAdmin@@ (@@$SiteAdminGroup@@).%0aOtherwise migration may fail (e.g. missing @@SiteAdmin@@ for PMWiki 2.2 and later) and/or login does not work.\\%0aAdditionally @@Main@@ (@@$DefaultGroup@@) should be included too.%0a%0a[[#flock]]%0aQ: I'm suddenly getting messages like "@@Warning: fopen(wiki.d/.flock): failed to open stream: Permission denied...@@" and "@@Cannot acquire lockfile@@"... what's wrong?%0a%0aA: Something (or someone) has changed the [[PmWiki/FilePermissions | permissions]] on the ''@@wiki.d/.flock@@'' file or the ''@@wiki.d/@@'' directory such that the webserver is no longer able to write the lockfile. The normal solution is to simply delete the ''@@.flock@@'' file from the ''@@wiki.d/@@'' directory -- PmWiki will then create a new one. Also be sure to check the permissions on the ''@@wiki.d/@@'' directory itself. (One can easily check and modify permissions of the ''@@wiki.d/@@'' directory in %25newwin%25[[https://filezilla-project.org/ | FileZilla]] (open-source FTP app) by right-clicking on the file > File attributes)%0a%0a[[#sidebar]]%0aQ: My links in the sidebar seem to be pointing to non-existent pages, even though I know I created the pages. Where are the pages?%0a%0aA: Links in the SideBar normally need to be qualified by a [[WikiGroup]] in order to work properly (use %25pmhlt%25[@[[Group/Page]]@] instead of [@[[Page]]@]).\\%0aAlso: Make sure you type Side'''B'''ar with a capital B.%0a%0a[[#headers]]%0aQ: Why am I seeing "@@PHP Warning: Cannot modify header information - headers already sent by ...@@" messages at the top of my page.%0a%0aA: If the warning appears after some other warning or error message, then resolve the other error and this warning may go away.%0a%0aA: If this is the first or only error message you're seeing, it's usually an indication that there are blank lines, spaces, or other characters before the %25hlt php%25[@%3c?php@] or after the [@?>@] in a [[local customization(s)]] files such as @@config.php@@. Double-check the file and make sure there is nothing before the initial [@%3c?php@]. It's often easiest and safest to eliminate any closing [@?>@] altogether. %0a%0aA: When you save the file, the encoding/charset should be either @@cp1252/Windows1252@@ or @@UTF-8@@ without Byte Order Mark. [[https://notepad-plus-plus.org/ | NotePad++]] is an editor that can do this.%0a%0aA: When you transfer the files, tell your FTP manager to use text mode transfer, or, if that doesn't help, binary mode transfer.%0a%0a[[#session_write_close_error]]%0aQ: How do I make a PHP Warning about @@function.session-write-close@@ go away?%0a%0aA: If you are seeing an error similar to this%0a%0a->[@%0aWarning: session_write_close() [function.session-write-close]:%0aopen(/some/filesystem/path/to/a/directory/sess_[...]) failed: No such file%0aor directory (2) in /your/filesystem/path/to/pmwiki.php on line NNN%0a@]%0a%0aPmWiki sometimes does session-tracking using PHP's%0a[[https://www.php.net/manual/en/features.sessions.php | session-handling functions ]].%0aFor session-tracking to work, some information needs to be written%0ain a directory on the server. That directory needs to exist and%0abe writable by the webserver software. For this example, the%0awebserver software is configured to write sessions in this%0adirectory%0a%0a->[@/some/filesystem/path/to/a/directory/@]%0a%0abut the directory doesn't exist. The solution is to do at least one%0aof these:%0a* '''Create the directory''' and make sure it's writable by the webserver software%0a* Provide a session_save_path value that points to a directory that is writable by the server, e.g. in @@config.php@@:%0a%0a->%25hlt php%25[@session_save_path('/home/someuser/tmp/sessions');@] # unix-type OS%0a->%25hlt php%25[@session_save_path('C:/server/tmp/sessions');@] # Windows%0a%0a[[#multiplepwprompts]]%0aQ: Why is PmWiki prompting me multiple times for a password I've already entered?%0a%0aA: This could happen like out of nowhere if your hosting provider upgrades to PHP version 5.3, and you run an older PmWiki release. Recent PmWiki releases fix this problem.%0a%0aA: Alternatively, this may be an indication that the browser isn't accepting cookies, or that PHP's session handling functions on the server aren't properly configured. If the browser is accepting cookies, then try setting %25hlt php%25@@$EnableDiag=1;@@ in ''@@local/config.php@@'', run PmWiki using [@?action=phpinfo@], and verify that sessions are enabled and that the session.save_path has a reasonable value. Note that several versions of PHP under Windows require that a session_save_path be explicitly set (this can be done in the ''@@local/config.php@@'' file). You might also try setting session.auto_start to 1 in your @@php.ini@@.%0a%0aA: See also the question [[#configphp-order|I have to log in twice]] below.%0a%0aQ: I edited ''@@config.php@@'', but when I look at my wiki pages, all I see is "@@Parse error: parse error, unexpected T_VARIABLE in ''somefile'' on line ''number''.@@"%0a%0aA: You've made a mistake in writing the PHP that goes into the ''@@config.php@@'' file. The most common mistake that causes the T_VARIABLE error is forgetting the semi-colon (;) at the end of a line that you added. The line number and file named are where you should look for the mistake.%0a%0a%0aQ: Searches and pagelists stopped working after I upgraded -- no errors are reported, but links to other pages do not appear (or do not appear as they should) -- what gives?%0a%0aA: Be sure all of the files in the ''@@wikilib.d/@@'' directory%0awere also upgraded. In particular, it sounds as if the @@Site.PageListTemplates@@ page is either missing (if no links are displayed) or is an old version (if the links do not appear as they should). Also make sure that read-permissions (attr) are set for the pages @@Site.PageListTemplates@@ and @@Site.Search@@.%0a%0a[[#mod_security]]%0aQ: Some of my posts are coming back with "403 Forbidden", "406 Not Acceptable", or "418 I'm a teapot" errors, or "Internal Server Error". This happens with some posts but not others.%0a%0aA: Your webserver probably has [[https://github.com/SpiderLabs/ModSecurity | mod_security]] enabled. The mod_security "feature" scans all incoming posts for forbidden words or phrases that might indicate someone is trying to hack the system, and if any of them are present then Apache returns the 403 Forbidden or 406 Not Acceptable error. Common phrases that tend to trigger mod_security include "curl ", "wget", "file(", and "system(", although there are many others (depending on the configuration, percent signs, html tags, international characters).%0a%0aSince mod_security intercepts the requests and sends the "forbidden"%0amessage before PmWiki ever gets a chance to run, it's not a bug in PmWiki, and%0athere's little that PmWiki can do about it. Instead, one has to alter the%0awebserver configuration to disable mod_security or reconfigure it to allow%0awhatever word it is forbidding. Some sites may be able to disable mod_security%0aby placing [@SecFilterEngine off@] in a ''@@.htaccess@@'' file.%0a%0aAlternatively, you may try the recipe Cookbook:EncodePost.%0a%0aQ: I get the following message when attempting to upload an image, what do I do?%0a[-@@'''Warning''': move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 1929 is not allowed to access /home/onscolre/public_html/pmwikiuploads/Photos owned by uid 33 in '''/home/onscolre/public_html/pmwiki/scripts/upload.php''' on line '''198'''@@-]%0a%0a@@'''PmWiki can't process your request'''@@%0a%0a[-@@?cannot move uploaded file to /home/onscolre/public_html/pmwikiuploads/Photos/FoundationPupilsIn1958.jpeg@@-]%0a%0a[-@@We are sorry for any inconvenience.@@-]%0a%0aA: Your server is configured with PHP [[https://web.archive.org/web/20201014032613/https://www.php.net/manual/en/features.safe-mode.php|Safe Mode]] enabled (removed as of PHP 5.4.0). Configure your wiki to use a [[PmWiki/UploadsAdmin#sitewideprefix|site-wide uploads prefix]], then create the ''uploads/'' directory manually and set 777 permissions on it (rather than letting PmWiki create the directory).%0a%0a[[#TableRowIndexMax]] [[#divisionbyzero]]%0aQ: I'm starting to see "@@Division by zero error in pmwiki.php...@@" on my site. What's wrong?%0a%0aA: It's a bug in PmWiki that occurs only with the [[tables]] markup and only for versions of PHP >= 4.4.6 or >= 5.2.0. Often it seems to occur "out of nowhere" because the server administrator has upgraded PHP. Try [[upgrad(es)]]ing to a later version of PmWiki to remove the error, or try setting the following in ''@@local/config.php@@'':%0a%0a $TableRowIndexMax = 1;%0a%0a[[#configphp-order]]%0aQ: I have to log in twice [-(two times) (2 times)-]. -or- My password is not being required even though it should. -or- I changed the password but the old password is still active. -or- My @@config.php@@ password is not over-riding my @@farmconfig.php@@ password.%0aA: It could happen if (farm)@@config.php@@, or an included recipe, directly calls the functions %25hlt php%25@@CondAuth()@@, or @@RetrieveAuthPage()@@, @@PageTextVar()@@, @@PageVar()@@ and possibly others, before defining all passwords and before including AuthUser (if required). %0a%0aThe [[PmWiki/LocalCustomizations#configphp-order|order of @@config.php@@]] is very significant.%0a%0a[[#CrashWhenEditing]]%0aQ: When editing an existing page, The "Save" causes a no-response of your server (not a blank page, no response at all, an endless connexion try). To get back the hand, it is necessary to request for another page (by clicking on its link in the menu for instance). And horror!, the ...?action=edit is then inhibited, it becomes impossible to edit any page.%0aA: When the editing of a page is initiated a file names [@.flock@] is created in the [@wiki.d@] repository. As long as this file exists it is impossible to edit any page. This file denotes an edition in progress and is automatically destroyed when leaving successfully an edit action by "Save". In case of a crash of the editing, this file is not destroyed. The remedy is, with an FTP client parameterized to show hidden files, to remove the [@.flock@] file. And all get back OK. This behavior is typically caused by a bug which provokes (directly or indirectly), an endless loop in a recipe concerned by the edited page.%0a%0aQ: I get the error "@@Data Mismatch - Locking FAILED!@@"%0aA: This is probably not a PmWiki error. PmWiki cannot create a lock file due to an underlying file system problem.%0aFor example the disk quota has been exceeded (e.g. by an error log file or file uploads), or there are problems with file system permissions.%0a
+time=1714628288