Bug #10307 Updated: PHP refusing to get temporary file name from an HTTP PUT request.

From: Date: Tue, 11 Jun 2002 20:23:28 +0000
Subject: Bug #10307 Updated: PHP refusing to get temporary file name from an HTTP PUT request.
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-10158@lists.php.net to get a copy of this message
ID: 10307 Updated by: ja@certiflexdimension.com Reported By: excalibur@hub.org Status: Open Bug Type: HTTP related Operating System: freebsd 4.2 PHP Version: 4.0.4pl1 New Comment: I can replicate the same issue with the sample code in the manual. copy($PHP_UPLOADED_FILE_NAME,$DOCUMENT_ROOT.$REQUEST_URI); I'm running Apache 1.3.24 with PHP 4.2.0, on RedHat 7.1... I'm guessing this either got ignored, or the variable got removed. The header that is returned just says: Unable to open '' for reading: No such file or directory in <script name> on line <line no>. Previous Comments: ------------------------------------------------------------------------ [2002-02-11 18:33:45] steve.venable@lmco.com Not sure if problem is documentation or PHP bug. Excalibur's example to dump all variables duplicates my results, PHP doesn't provide temporary filename for PUT data. Documentation says "$PHP_PUT_FILENAME" and example uses "$PHP_UPLOADED_FILE_NAME" neither of which are defined. It does work with CGI script as data to 'stdin' but how do you read this in PHP? Platform is Solaris 8 with PHP 4.1 in Apache 1.3.22 ------------------------------------------------------------------------ [2001-05-23 10:04:04] excalibur@hub.org This is a copy of all the versions we tried, none of them worked in the slightest. <?php // copy($PHP_PUT_FILENAME,$DOCUMENT_ROOT.$REQUEST_URI); $fp = fopen("/home/vhosts/farelist.com/www/update/log.txt","w+"); if(!copy ($PHP_PUT_FILENAME, "/home/vhosts/farelist.com/www/update/test.txt")) { fwrite($fp, "\n\ncopy failed\n\n"); } else { fwrite($fp, "\n\ncopy successful\n\n"); } $temp="PHP_PUT_FILENAME: $PHP_PUT_FILENAME\n"; $vars = get_defined_vars(); foreach ($vars as $test => $value) { if (is_array($value)) { foreach ($value as $subtest => $subvalue) { $temp .= "$subtest: $subvalue\n"; } } else { $temp .= "$test: $value\n"; } } fwrite($fp, $temp); $temp="DOCUMENT_ROOT: $DOCUMENT_ROOT\n"; fwrite($fp, $temp); $temp="REQUEST_URI: $REQUEST_URI\n"; fwrite($fp, $temp); fclose($fp); ?> ------------------------------------------------------------------------ [2001-05-19 12:14:51] jan@php.net perhaps you can add a sample script for other to reproduce the misbehaviour. ------------------------------------------------------------------------ [2001-04-12 13:17:57] excalibur@hub.org I am using PHP 4.04pl1 on a FreeBSD 4.2 based system with Apache 1.3.19. I have a page that is "accepting" HTTP PUT requests and is supposed to save the file in a designated area, however PHP is not picking up the temporary filename while the script runs. All other variables required are set, but not $PHP_PUT_FILENAME. I have tried all recommendations in the docs, mailing list and IRC channels. None have worked. I do notice that the protocol level is HTTP 1.0 PUT not HTTP 1.1 PUT, I have not been able to determine if that is the issue. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=10307&edit=1

« previous php.bugs (#10158) next »