ID: 45540 Updated by: [EMAIL PROTECTED] Reported By: jdespatis at yahoo dot fr -Status: Open +Status: Closed Bug Type: Streams related Operating System: Linux Kubuntu PHP Version: 5.2.6 New Comment:
This bug has been fixed in CVS. 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/. Thank you for the report, and for helping us make PHP better. The server replies with a Location header, the HTTP wrapper automatically redirect, and that second request was effectively invalid (the request was sent as POST without Content-Length and post data). Previous Comments: ------------------------------------------------------------------------ [2008-07-27 08:37:26] jdespatis at yahoo dot fr Well, i can give you a self-contained reproducing script: http://www.despatis.com/php/stream.phps But, it's impossible for me to avoid the use of POST, because this bug occurs on a http connection.. To run the bug, you just do in the command line (so using php cli): $ php stream.php I get the following result, you'll need a sniffer to see that data sent to http server is completely weird token : AIwbFASbZooZXBAePnl4eayE1cZvRWbvOtzQTC-vRR-lkp1r3ijZ7AxoSIzuslTVmufPznylay34ryUPdLRMGh61cidHS29Z7NkKqLVYr2JdNY4iKN0qoVB2MSaV2rmumH_ZJTo3gp7Or0IJlaiMiNEs2R5aNllOYg Array ( [type] => 2 [message] => file_get_contents(http://uploads.gdata.youtube.com/feeds/api/users/bigbluezen/uploads): failed to open stream: HTTP request failed! HTTP/1.0 411 Length Required [file] => /home/enzo/projects/lacartoonerie/download/modules/stream.php [line] => 101 ) ------------------------------------------------------------------------ [2008-07-20 11:10:00] [EMAIL PROTECTED] Ok. Now can you provide a proper self-contained reproducing script. One that starts with <?php, ends with ?> and can be run on the command line. ie. no POST required.. ------------------------------------------------------------------------ [2008-07-18 16:45:03] jdespatis at yahoo dot fr [EMAIL PROTECTED]:~$ cat php-5.2.6/config.nice #! /bin/sh # # Created by configure './configure' \ '--enable-sockets' \ '--enable-soap' \ '--with-mysql' \ '--enable-mbstring' \ '--enable-ftp' \ '--with-zlib' \ '--with-openssl' \ '--prefix=/home/enzo/divers/php_compil/' \ '--exec-prefix=/home/enzo/divers/php_compil/' \ '--disable-short-tags' \ "$@" ------------------------------------------------------------------------ [2008-07-18 16:05:44] [EMAIL PROTECTED] For the second time: What was the configure line you used to build PHP? ------------------------------------------------------------------------ [2008-07-18 12:23:17] jdespatis at yahoo dot fr And to help to diagnose the problem i can perfectly make this script work if I code the stream by my own for example, I replace stream_context_create by some code using fsockopen, all works perfectly ... (i really think stream_context_create leaves some \r \n in some special case ...) $context = stream_context_create($opts); $buff = @file_get_contents("http://uploads.gdata.youtube.com/feeds/api/users/$username/uploads", false, $context); by $fp = fsockopen("uploads.gdata.youtube.com", 80, $errno, $errstr, 30); if (!$fp) { return "Youtube unreachable $errstr ($errno)"; } $out = "POST /feeds/api/users/$username/uploads HTTP/1.0\r\n"; $out .= "Host: uploads.gdata.youtube.com\r\n"; $out .= "Content-Length: " . strlen($opts["http"]["content"] ."\r\n"; $out .= "Connection: Close\r\n"; $out .= $opts["http"]["header"]; $out .= "\r\n"; $out .= $opts["http"]["content"]; fwrite($fp, $out); $buff = ""; while (!feof($fp)) { $buff .= fgets($fp, 4096); } fclose($fp); ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/45540 -- Edit this bug report at http://bugs.php.net/?id=45540&edit=1