ID: 45032 Updated by: [EMAIL PROTECTED] Reported By: partner55470745 at aravensoft dot com -Status: Open +Status: Bogus Bug Type: Unknown/Other Function Operating System: Debian Linux 4.0 PHP Version: 5.2.6 New Comment:
. Previous Comments: ------------------------------------------------------------------------ [2008-05-18 13:19:41] partner55470745 at aravensoft dot com Hello, I cannot use the latest snapshot because I only have a production server running the stable Debian. I have no test server, sorry. However, I didn't know that PHP did not accept a constant string as a parameter passed by reference. That is probably the cause. The only bug I see is any lack of warning/error during the execution. And I used error reporting level (E_ALL). ------------------------------------------------------------------------ [2008-05-18 13:05:50] [EMAIL PROTECTED] 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 This last script yields: "Fatal error: Only variables can be passed by reference" ------------------------------------------------------------------------ [2008-05-18 12:57:33] partner55470745 at aravensoft dot com Well the script itself is included in another script using require(). All files are pure .php scripts (no HTML) executed via browser (not CLI). MySQL is used in other parts of the scripts, but is not involved here. PHP Version 5.2.0-8+etch11 This is a shortened but functional version of my reproduce code: <?php function logevent (&$logfile, &$logevent) { $f=fopen($logfile, 'a'); if($f) { fputs($f, $logevent); fclose($f); return true; } return false; } logevent ('/var/logs/somelog.log','somelogevent'); ?> ------------------------------------------------------------------------ [2008-05-18 11:50:47] [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 the script requires a database to demonstrate the issue, please make sure it creates all necessary tables, stored procedures etc. Please avoid embedding huge scripts into the report. I can't reproduce. ------------------------------------------------------------------------ [2008-05-18 11:16:20] partner55470745 at aravensoft dot com Description: ------------ If an input function argument is passed as a reference (as opposed to as a value) and it is used as an argument to fopen(), parsing and/or execution of the script freezes without ANY warning or error whatsoever. Reproduce code: --------------- // This does NOT work (although it shoud) function log_an_event (&$logfile, &$event) { $f=fopen($logfile, 'a'); // ... } // This is a workaround for the above (first arg not passed as reference) function log_an_event ($logfile, &$event) { $f=fopen($logfile, 'a'); // ... } Expected result: ---------------- Non-freezing execution. Actual result: -------------- Execution of the script freezes/exits without ANY warning or error whatsoever. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=45032&edit=1