php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #45914 ini_set() Does Not Work When Using Registry-Based "Per Directory Values"
Submitted: 2008-08-25 19:32 UTC Modified: 2008-10-24 15:55 UTC
Votes:7
Avg. Score:4.0 ± 1.4
Reproduced:4 of 4 (100.0%)
Same Version:2 (50.0%)
Same OS:4 (100.0%)
From: w dot ashcroft at redfoxuk dot com Assigned: pajoye
Status: Assigned Package: PHP options/info functions
PHP Version: 5.2CVS-2008-08-25 OS: win32 only
Private report: No CVE-ID:
Have you experienced this issue?
Rate the importance of this bug to you:

 [2008-08-25 19:32 UTC] 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

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2008-08-25 23:09 UTC] w dot ashcroft at redfoxuk dot com
I can confirm the issue still exists in the current CVS snapshot.
 [2008-10-24 15:55 UTC] jani@php.net
Assigned to the Windows port maintainer.
 [2010-02-08 14:43 UTC] php at psdie dot com
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
 
PHP Copyright © 2001-2017 The PHP Group
All rights reserved.
Last updated: Tue Aug 29 15:01:52 2017 UTC