ID:               48177
 User updated by:  skds1433 at hotmail dot com
 Reported By:      skds1433 at hotmail dot com
 Status:           Bogus
 Bug Type:         Unknown/Other Function
 Operating System: Windows Vista
 PHP Version:      5.2.9
 New Comment:

Thank you for the explanation, that makes a lot of sense now that you
mention it. Sorry for wasting your time.


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

[2009-05-07 10:38:39] matt...@php.net

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

eval() doesn't return anything but NULL unless a return statement is
used in the eval'd code (wouldn't work in this case with inline HTML
anyway, which gets echo'd immediately). You'd need to 1) echo "<pre>";
before the eval() call, 2) use eval('return "testing 123, a string, not
HTML...";'), or 3) use output buffering, etc.

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

[2009-05-07 10:22:38] skds1433 at hotmail dot com

Changed category, from 'Output Control'. Not really sure what this
applies to.

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

[2009-05-07 10:13:29] skds1433 at hotmail dot com

Description:
------------
For debugging purposes of a template system, I am trying to wrap the
output of an eval inside pre HTML tags. Oddly, the tags are simply being
appended.

PHP version: 5.2.9-2
Apache: 2.2.11

Reproduce code:
---------------
<?php
$buffer = 'testing 1 2 3, test test test test.
0123456789012345678901234567890123456789
012345678901234567890123456789
0123456789012345678901234567890123456789(<?php if
(isset($global[\'testing1\'])): ?>testing1<?php if
(isset($global[\'testing2\'])): ?> "testing2 extended"<?php if
(isset($global[\'testing3\'])): ?> "testing3 extended"<?php endif;
?><?php endif; ?><?php endif; ?>)0123456789
012345678901234567890123456789

<?php if (isset($global[\'loop1\']) && is_array($global[\'loop1\'])):
for($i=0;$i<count($global[\'loop1\']);$i++):
?><?=$global[\'loop1\'][\'var1\']?> <?=$global[\'loop1\'][\'var2\']?>
<?php if ($global[\'loop1\'][\'showvar3\']):
?><?=$global[\'loop1\'][\'var3\']?><?php endif; ?><?php endfor; endif;
?>
<?php if (isset($global[\'testing4\'])): ?>testing4<?php if
(isset($global[\'testing5\'])): ?> testing5<?php if
(isset($global[\'testing6\'])): ?> <this is file1><?php endif; ?><?php
endif; ?><?php endif; ?>';

$buffer = eval("?>".$buffer);
echo "<pre>".$buffer."</pre>";
?>

Expected result:
----------------
<pre>testing 1 2 3, test test test test.
0123456789012345678901234567890123456789
012345678901234567890123456789
0123456789012345678901234567890123456789()0123456789
012345678901234567890123456789

</pre>

Actual result:
--------------
testing 1 2 3, test test test test.
0123456789012345678901234567890123456789
012345678901234567890123456789
0123456789012345678901234567890123456789()0123456789
012345678901234567890123456789

<pre></pre>


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


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

Reply via email to