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

From: Date: Fri, 14 Jun 2002 14:28:24 +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-10455@lists.php.net to get a copy of this message
ID: 10307 Updated by: shiflett@php.net Reported By: excalibur@hub.org Status: Open Bug Type: HTTP related Operating System: freebsd 4.2 PHP Version: 4.0.4pl1 New Comment: Can any of you who are having this problem please provide an example of the HTML form you are supporting with the PHP code you've provided? Meaning, what is the markup and/or PHP code for the page that generates the file upload? I think I have an idea on this. Previous Comments: ------------------------------------------------------------------------ [2002-06-11 16:23:28] ja@certiflexdimension.com 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>. ------------------------------------------------------------------------ [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 (#10455) next »