From:             Bjorn dot Wiberg at its dot uu dot se
Operating system: IBM AIX 5.2.0.0 ML5
PHP version:      5.0.5
PHP Bug Type:     Apache2 related
Bug description:  php_admin_value does not lock include_path

Description:
------------
When include_path is set using php_admin_value in httpd.conf, it is still
possible to override it in PHP scripts.

Shouldn't php_admin_value lock the value regardless of where the attempt
to change it is done? (With the exception that PHP configuration
directives for virtual hosts should be able to override any PHP
configurations done in the main server section of httpd.conf.)

The documentation states that include_path is of type PHP_INI_ALL and can
be changed from anywhere (http://www.php.net/manual/en/ini.php#ini.list),
but also states that values set with php_admin_value directives cannot be
overriden e.g. by virtualhost directives
(http://se2.php.net/configuration.changes) -- which isn't true --
overriding php_admin_value include_path of the main server with another
php_admin_value include_path in virtual host configurations works just
fine!

Best regards,
Björn

Reproduce code:
---------------
httpd.conf configuration of mod_php5:

  php_admin_value include_path ".:/apache/php/lib/php"

Example PHP script:

<HTML>

  <HEAD>
    <TITLE></TITLE>
  </HEAD>

  <BODY>

    <?php
      echo('Include path is: ' . ini_get('include_path') . '<BR>');
      $result = ini_set('include_path',
'.:/apache/php/lib/php:/apache/htdocs/bwiberg/php');

      if ($result === FALSE) {
        echo('ini_set returned FALSE<BR>');
      } else if (empty($result)) {
        echo('ini_set returned an empty string<BR>');
      } else {
        echo('ini_set returned ' . $result . ', include path is now: ' .
ini_get('include_path') . '<BR>');
      }
    ?>

  </BODY>
</HTML>


Expected result:
----------------
Include path is: .:/apache/php/lib/php
ini_set returned FALSE
Include path is now: .:/apache/php/lib/php

..or possibly, as someone pointed out at
http://www.php.net/manual/en/function.ini-set.php#19874:

Include path is: .:/apache/php/lib/php
ini_set returned an empty string
Include path is now: .:/apache/php/lib/php

Actual result:
--------------
 Include path is: .:/apache/php/lib/php
ini_set returned .:/apache/php/lib/php
Include path is now: .:/apache/php/lib/php:/apache/htdocs/bwiberg/php


-- 
Edit bug report at http://bugs.php.net/?id=35261&edit=1
-- 
Try a CVS snapshot (php4):   http://bugs.php.net/fix.php?id=35261&r=trysnapshot4
Try a CVS snapshot (php5.0): 
http://bugs.php.net/fix.php?id=35261&r=trysnapshot50
Try a CVS snapshot (php5.1): 
http://bugs.php.net/fix.php?id=35261&r=trysnapshot51
Fixed in CVS:                http://bugs.php.net/fix.php?id=35261&r=fixedcvs
Fixed in release:            http://bugs.php.net/fix.php?id=35261&r=alreadyfixed
Need backtrace:              http://bugs.php.net/fix.php?id=35261&r=needtrace
Need Reproduce Script:       http://bugs.php.net/fix.php?id=35261&r=needscript
Try newer version:           http://bugs.php.net/fix.php?id=35261&r=oldversion
Not developer issue:         http://bugs.php.net/fix.php?id=35261&r=support
Expected behavior:           http://bugs.php.net/fix.php?id=35261&r=notwrong
Not enough info:             
http://bugs.php.net/fix.php?id=35261&r=notenoughinfo
Submitted twice:             
http://bugs.php.net/fix.php?id=35261&r=submittedtwice
register_globals:            http://bugs.php.net/fix.php?id=35261&r=globals
PHP 3 support discontinued:  http://bugs.php.net/fix.php?id=35261&r=php3
Daylight Savings:            http://bugs.php.net/fix.php?id=35261&r=dst
IIS Stability:               http://bugs.php.net/fix.php?id=35261&r=isapi
Install GNU Sed:             http://bugs.php.net/fix.php?id=35261&r=gnused
Floating point limitations:  http://bugs.php.net/fix.php?id=35261&r=float
No Zend Extensions:          http://bugs.php.net/fix.php?id=35261&r=nozend
MySQL Configuration Error:   http://bugs.php.net/fix.php?id=35261&r=mysqlcfg

Reply via email to