ID:               34752
 User updated by:  trash at jennyfm dot net
 Reported By:      trash at jennyfm dot net
-Status:           Feedback
+Status:           Open
 Bug Type:         Scripting Engine problem
 Operating System: linux 2.6.13
 PHP Version:      5.0.5
 New Comment:

The main script is here (with wrong result in php 5.0.5):
wp1011644.wp021.webpack.hosteurope.de/muellercms/test.php
source:
wp1011644.wp021.webpack.hosteurope.de/muellercms/test.php_
wp1011644.wp021.webpack.hosteurope.de/muellercms/include/function_template5.inc.php_
wp1011644.wp021.webpack.hosteurope.de/muellercms/include/function_templateext5.inc.php_
template file (not relevant):
wp1011644.wp021.webpack.hosteurope.de/muellercms/templates/test.tpl_

The error seems to be in function_templateext5::_initTemplate after the
foreach print_r($this->bl) returns overwritten result. In php 5.0.4 the
result looks like:
Array
(
    [testsub] => PDTemplateExt Object
        (   [removeEmptyBlocks] => 1
            [delimiterStart:protected] => {
            [delimiterEnd:protected] => }
            [t:protected] => )..........
test
buii 
before the foreach the $test->bl seems to be ok in both versions(5.0.4
and 5.0.5). Same problem i have with while (list ($key, $value) = each
($this->bl)), in 5.0.4 it works and in 5.0.5 not. Server config is here
wp1011644.wp021.webpack.hosteurope.de/phpinfo.php


Previous Comments:
------------------------------------------------------------------------

[2005-10-06 11:11:26] [EMAIL PROTECTED]

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc.

If possible, make the script source available online and provide
an URL to it here. Try to avoid embedding huge scripts into the report.



------------------------------------------------------------------------

[2005-10-06 10:58:10] trash at jennyfm dot net

Description:
------------
foreach seam to overwrite values in array ..... 
it works fine in 5.0.4 but in 5.0.5 not.
don't know why...

Reproduce code:
---------------
full class source here: http://kuerbis.org/template/show_source.php
class Template extends KTemplate {
...........
  protected function _initTemplate()
        {
            parent::_initTemplate();
            if (isset($this->bl) && is_array($this->bl))
            {
            print_r($this->bl);
            //before foreach bl is ok in 5.0.4 and 5.0.5
                foreach ($this->bl as $key => $value)
                {
                    $this->blc[$key] = true;
                }
            //after foreach bl is overwritten in 5.0.5, in 5.0.4 it
works
            print_r($this->bl);
            }
        }
......
}

Expected result:
----------------
in php 5.0.4 i get (after the foreach)
.......
Array
(
    [mainmenu] => KTemplateExt Object
        (
            [removeEmptyBlocks] => 1
            [delimiterStart:protected] => {
            [delimiterEnd:protected] => }
            [t:protected] =>                
                        {menu_title}

            [pl:protected] => 
            [bl:protected] => 
            [templatefile:protected] => 
            [className:protected] => KTemplateExt
            [params] => 
        )

)
.... and so on

Actual result:
--------------
in php 5.0.5 i get (after the foreach)

(
    [menublock] => Array
        (
            [menublock] => 1
            [not_logged_in] => 1
            [logged_in] => 1
        )

    [not_logged_in] => 1
    [logged_in] => 1
)

.... and so on


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=34752&edit=1

Reply via email to