Bug #10307 Updated: PHP refusing to get temporary file name from an HTTP PUT request.
| From: | ja at certiflexdimension dot com | 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