#45914 [Com]: ini_set() Does Not Work When Using Registry-Based "Per Directory Values"
| From: | php at psdie dot com | Date: | Mon, 08 Feb 2010 14:43:10 +0000 |
| Subject: | #45914 [Com]: ini_set() Does Not Work When Using Registry-Based "Per Directory Values" | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-147328@lists.php.net to get a copy of this message | ||
ID: 45914
Comment by: php at psdie dot com
Reported By: w dot ashcroft at redfoxuk dot com
Status: Assigned
Bug Type: PHP options/info functions
Operating System: win32 only
PHP Version: 5.2CVS-2008-08-25
Assigned To: pajoye
New Comment:
This issue also means that we're unable to override the "error_log"
value via ini_set() - it seems to work temporarily, then reverts to the
default and can no longer be overridden.
The simple test case is:
<?
ini_set('error_log', $_SERVER['DOCUMENT_ROOT'] .'\\_test.log');
echo('log_errors='. ini_get('log_errors') ."
?>
The above outputs the correct log filename initially, but then seems to
stop working after a period of time (10 hours or so), then refuses to
work from that point onward.
This bug was reported back in Aug 98 - is a fix or workaround
available? I know that my host is unable to upgrade past v5.2.12 at
present because of lack of Zend/ionCube Decoders support.
Many thanks, Ben
Previous Comments:
------------------------------------------------------------------------
[2008-10-24 15:55:12] jani@php.net
Assigned to the Windows port maintainer.
------------------------------------------------------------------------
[2008-08-25 23:09:00] w dot ashcroft at redfoxuk dot com
I can confirm the issue still exists in the current CVS snapshot.
------------------------------------------------------------------------
[2008-08-25 20:40:09] jani@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows (zip):
http://snaps.php.net/win32/php5.2-win32-latest.zip
For Windows (installer):
http://snaps.php.net/win32/php5.2-win32-installer-latest.msi
------------------------------------------------------------------------
[2008-08-25 19:32:02] w dot ashcroft at redfoxuk dot com
Description:
------------
It seems then when using Per Directory Values in the Windows Registry,
these values can then not be changed with ini_set() - for example we set
the sendmail_from value for each individual website using the
registry-based Per Directory Values, but the website owners should then
be able to set their own from address in their scripts using ini_set().
As I understand it, the in-script ini_set() should be the last possible
place a value can be changed (at runtime); not the registry.
Removing the registry entry gives the expected result of:
notset@notset.com
webmaster@example.com
Reproduce code:
---------------
php.ini
sendmail_from = notset@notset.com
HKLM\SOFTWARE\PHP\Per Directory Values\[DirPath]
sendmail_from = noreply@example.com
<?php
echo ini_get("sendmail_from") . "<br>";
ini_set("sendmail_from", "webmaster@example.com");
echo ini_get("sendmail_from");
?>
Expected result:
----------------
noreply@example.com
webmaster@example.com
Actual result:
--------------
noreply@example.com
noreply@example.com
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=45914&edit=1