While documenting I just wrote for a client, I noted that there were several 
server variables (in the form of php.ini configuration settings) that might 
come into play that were generally the responsibility of the web master of 
the server, and thus beyond my control.

These were memory_limit, max_input_time, and max_execution_time.

According to http://www.php.net/function.ini-set , any item with the value 
"PHP_INI_ALL" in the "changeable" column should be abe to be set in any of 
the described methods in PHP. (Configuration file, .htaccess file, or through 
ini_set()/ini_alter().) 

One of the user contributed notes seems to contradict this information saying 
that "directives with PHP_INI_PERDIR or PHP_INI_ALL" may only be set in 
.htaccss files. (And I presume the php.ini file as well.) Both memory_limit 
and max_execution_time are listed as PHP_INI_ALL, but max_input_time isn't 
even listed on the page.

These discrepencies need to be remedied obviously, but it gets stranger still 
for me. Just to verify that these are not changeable in my script, I added a 
few calls to ini_set() to do some testing. Here is the relevant snippet:

$output=ini_set("max_input_time","120");
if ($output!=false) {
        $output=ini_get("max_input_time");
        echo "<!-- new input time: $output -->\n";
} else
        echo "<!-- problem setting max input time -->\n";

$output=ini_set("max_execution_time","120");
if ($output!=false) {
        $output=ini_get("max_execution_time");
        echo "<!-- new execution time: $output -->\n";
} else
        echo "<!-- problem setting max execution time -->\n";

$output=ini_set("memory_limit","12M");
if ($output!=false) {
        $output=ini_get("memory_limit");
        echo "<!-- new memory limit: $output -->\n";
} else
        echo "<!-- problem setting memory limit -->\n";


And here are the results from the page source:

<!-- problem setting max input time -->
<!-- new execution time: 120 -->
<!-- problem setting memory limit -->


So what this tells me is that it is possible to change the execution time 
from with-in the page, but it is not possible to change the input time or the 
memory limit. This wouldn't bother me except that both memory_limit and 
max_execution_time are supposed to be changeable in the same places. 
max_input_time might be as well, but I didn't see any documentation on it. So 
what gives?

On a little further testing, I wasn't even able to get a return value for 
memory_limit with ini_get()... Am I seeing some bizarre behavior that might 
be specific to my OpenBSD/Apache server? (In short, will this work properly 
on the Red Hat Linux/Apache installation that this script will be placed on?) 
Or is this a known bug in PHP 4.3.1? (As I seem to have no problem with a few 
other ini_get() calls.) Or is this behavior just as strange to all of you?

Thanks,
Raymond
-- 
Raymond C. Rodgers
http://bbnk.dhs.org/~rrodgers/
http://www.j-a-n.net/


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to