ID: 19746 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Closed +Status: Critical Bug Type: Filesystem function related Operating System: Redhat 7.3 i386 PHP Version: 4CVS-2002-10-03 New Comment:
The intial fix did not quite as well as I had hoped. The problem is still there and is being worked upon. Previous Comments: ------------------------------------------------------------------------ [2002-10-04 18:10:08] [EMAIL PROTECTED] This still does not work in snapshot: php4-200210041500 Interestingly enough, the previous snapshot from 1200 hours worked better as it accepted STDIN up to the length of the buffer specified in the program but still did not recognize any EOL prior to reaching that buffer, now its back to the original behavior. If this behavior continues after a couple more SNAPS I will reopen this report. ------------------------------------------------------------------------ [2002-10-04 13:53:26] [EMAIL PROTECTED] This bug has been fixed in CVS. In case this was a PHP problem, snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. In case this was a documentation problem, the fix will show up soon at http://www.php.net/manual/. In case this was a PHP.net website problem, the change will show up on the PHP.net site and on the mirror sites in short time. Thank you for the report, and for helping us make PHP better. ------------------------------------------------------------------------ [2002-10-04 12:11:05] [EMAIL PROTECTED] Marking this as critical, since the behaviour of this bug demonstrates a complete breakage of reading from stdin. The current CVS buffers the read/gets calls, which causes script such as this sit on read() until the default buffer (8192 bytes) is read in. ------------------------------------------------------------------------ [2002-10-03 19:17:00] [EMAIL PROTECTED] In trying to take user input from Shell in the last two CVS snapshots using the SAPI-CLI, the following program [and many variations thereof] hang on STDIN [basically it takes unlimited input as if its not recognizing EOL]. This is under an Pentium-2, Redhat 7.3 with the latest glibc library off Redhat's update site. <?php function getInput($length) { $fr = fopen("php://stdin", "r"); $input = fgets($fr, $length); $input = rtrim($input); fclose($fr); return $input; } echo "Enter some text (10 char max): "; $text = getInput(10); echo "You entered: $text\n"; ?> This program works fine on an older php CGI style binary but does not work under the current snapshot. Have also tried the manual suggestion of using the new constant STDIN and that causes the same behavior - hence my suspicion this is a bug. Here is the modules compiled in [root@league league]# php -m [PHP Modules] xml tokenizer standard sockets session posix pcre pcntl overload mysql mbstring gd ctype zlib [Zend Modules] ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=19746&edit=1