[pmwiki-users] Perplexing Page Exist problem...
commentgg at hotmail.com
Tue Aug 22 21:40:22 CDT 2006
You must have been living in a cave. PageExists relies on PHP's file_exists(), which in turn relies on a cache of the state of the underlying file system.
You might want to relax that mind-muscle :)
Detail: So you write a page and PHP doesn't update the cache. When you then inform yourself through a PageExists(), the state is read from the cache and you'll get false.
http://www.php.net/manual/en/function.file-exists.php says this:
Note: The results of this function are cached. See clearstatcache() for more details.
"Note: This function caches information about specific filenames, so you only need to call clearstatcache() if you are performing multiple operations on the same filename and require the information about that particular file to not be cached."
"Affected functions include stat(), lstat(), file_exists(), is_writable(), is_readable(), is_executable(), is_file(), is_dir(), is_link(), filectime(), fileatime(), filemtime(), fileinode(), filegroup(), fileowner(), filesize(), filetype(), and fileperms()."
On 8/22/06, The Editor <editor at fast.st> wrote:
I am working out one strange twist in the FAST Data project. Maybe
someone can help me figure it out.
I'll be releasing v0.99 just as soon as this is done. It includes an
enumerator (for numbered forum threads, or issue tracking, etc), an
option to hide field values, and an append feature perfect for comment
boxes, etc, plus always a few other fixes and stuff. It's working
great--almost. And this release will include the last of the
capabilities on my to do list.
The problem is I have two switches, one called SaveData and one called
AppendData. Both work fine by themselves, and if the datapage exists,
both work fine together. But, if both switches are called on a form
and the datapage does not exist, whichever one comes second overrides
Both switches are very similar. Both check to see if the datapage
exists, both parse various data fields and then both saves/appends it,
creating the datapage if it doesn't yet exist.
When whichever switch is second is called (It doesn't matter which is
first or second), it acts as if the page still does not exists, though
the first switch clearly created it . Anyway, that conditional
failure causes the data saved by the first switch to be overwritten.
Why might the PageExists() function be failing? Is it an indexing
problem or does this function actually go out and check for the
existence of a page? I am using PageIndexUpdate("$datapage"); at the
end of both switches, so the page should be reindexed, but perhaps the
two switches are happening too fast--and there's not time to get it
indexed. Is there some way to work around this?
I included the two switches below if it helps, but I'm pretty sure I
have the problem narrowed down to the critical issue. Thanks again
Search from any Web page with powerful protection. Get the FREE Windows Live Toolbar Today!
More information about the pmwiki-users