Re: Call to undefined function problem
| From: | Doug Farmer | Date: | Tue, 11 Sep 2001 04:53:51 +0000 |
| Subject: | Re: Call to undefined function problem | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-66849@lists.php.net to get a copy of this message | ||
Further information:
The page is navigated to via a previous page using a "Location: /test.php"
header. The problem occurs when I first navigate to the page. If I then
do a refresh from the browser, the problem disappears.
I also did further testing where I put the following type of code between
the requires (a unique number for each statement):
if (function_exists("setNoCacheHeaders"))
{
echo "exists 1<br>";
}
else
{
echo "does not exist 1<br>";
}
In the broken scenario, the function never exists. In the working scenario
it is
always there.
I also neglected to say that I was switching from php3.0.14 to php4.0.6.
"Doug Farmer" <daf@peakpeak.com> wrote in message
news:20010911035003.96626.qmail@pb1.pair.com...
>
> I'm doing the following:
>
> ---- test.php -----
> <?php
> require("functions.php");
> require("...."); // several other requires here
>
> setNoCacheHeaders(); // this is line 16
>
> // other stuff here
> ?>
>
> ------ functions.php -----
> <?php
>
> if (!define("__FUNCTIONS__") )
> {
> define( "__FUNCTIONS__", 1, 1 );
>
> // a bunch of other defines here
> echo "here 1<br>";
> function setNoCacheHeaders( ) {
> static $headersNotSet = TRUE;
>
> if ( $headersNotSet ) {
> header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in
the
> past
> header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "
> GMT"); //
> always modified
> header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
> header("Pragma: no-cache"); // HTTP/1.0
> $headersNotSet = FALSE;
> }
> }
> echo "here 2<br>";
>
> // a few more functions here
>
> }
>
> --------------------------------
>
> My output is
> here 1
> here 2
>
> Fatal error: Call to undefined function: setnocacheheaders() in
> $DOCUMENT_ROOT/test.php on line 16
>
> Can someone explain? I found something similar in the archives but no
> answer was given. This exact code worked under php3. The only changes in
> the files were files ending in php3 were changed to end php. I also had 2
> classes that I was using that had initializers in the variable
declaration.
> I moved the initialization to constructors.
>
> Note that on some clients the request goes through w/o errors. This is
> intermittent but consistent on a per client basis.
>
> - doug
>
>
>
>