ID:               45283
 Comment by:       php at info-svc dot com
 Reported By:      php at info-svc dot com
 Status:           Open
 Bug Type:         Scripting Engine problem
 Operating System: *
 PHP Version:      5.2.6
 New Comment:

On the other hand, if register_globals is broken then extract($_FILES,
EXTR_SKIP); is working as intended, skipping keys already registered.  I
can understand it's either a bug or a documentation problem, but
something isn't right here.


Previous Comments:
------------------------------------------------------------------------

[2008-11-05 11:15:22] [EMAIL PROTECTED]

Results of extract() shouldn't depend on register_globals.

------------------------------------------------------------------------

[2008-07-02 12:26:50] [EMAIL PROTECTED]

It's documentation issue. Plus you really should NOT be using
register_globals=On. And using extract() on $_FILES...well..that's very
flaky idea to begin with. Just don't do it. :)

------------------------------------------------------------------------

[2008-06-19 04:59:15] php at info-svc dot com

I confirmed this behavior with PHP 5.2.6 running on IIS and Windows
2003 SP2.

Test case output with register_globals Off

array(5) {
  ["name"]=>
  string(14) "samplefile.txt"
  ["type"]=>
  string(10) "text/plain"
  ["tmp_name"]=>
  string(25) "C:\WINDOWS\Temp\php57.tmp"
  ["error"]=>
  int(0)
  ["size"]=>
  int(459)
}
string(25) "C:\WINDOWS\Temp\php57.tmp"

Test case output with register_globals On

string(25) "C:\WINDOWS\Temp\php58.tmp"
string(1) "C"

So I'm convinced that register_globals is involved here.  There is
something horribly wrong with this feature or its documentation.

------------------------------------------------------------------------

[2008-06-16 18:09:31] php at info-svc dot com

Adding to the confusion, I thought perhaps the unexpected behavior
could be caused by the register_globals configuration.  However,
according to documentation ...

http://www.php.net/manual/en/faq.misc.php#faq.misc.registerglobals

... extract($_FILES, EXTR_SKIP); is the correct way to emulate
register_globals On.  I dumped all of the other superglobals and
confirmed the only one containing a 'themefile' index was $_FILES.  Both
var_dump($_POST); and var_dump($_GET); returned "array(0) {}"

------------------------------------------------------------------------

[2008-06-16 17:39:59] php at info-svc dot com

Note about the "Reproduce code", for best results use
<form method="POST" enctype="multipart/form-data">

------------------------------------------------------------------------

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/45283

-- 
Edit this bug report at http://bugs.php.net/?id=45283&edit=1

Reply via email to