From:             jacknorton101 at hotmail dot com
Operating system: RedHat Linux 9
PHP version:      4.3.3
PHP Bug Type:     *General Issues
Bug description:  $_POST variables not set when using enctype="multipart/form-data"

Description:
------------
The following code works in my local development environment (Win ME,
Apache 1.3.2, PHP 4.3.2) but not on my host (RedHat 9, Apache 2.0.4, PHP
4.3.3).
None of the form inputs defined after the <input type="file" size="40"
name="userfile"> line are set in $_POST (all of those appearing before
are). Therefore $_POST['submitimage'] does not get set.
If I take out enctype="multipart/form-data", or replace it with
"multipart/mixed" the $_POST variables are set, but the file is not
available.
The following php.ini directives are identical in both the local and host
environments:
File_Uploads = On
Upload_Max_Filesize = 2M
Upload_Tmp_Dir = (default)
Post_Max_Size = 8M
In my local environment Register_Globals is Off, and the host environment
has them on.

I have searched previous bug reports, and though I have seen similar
problems, they all seem to be closed and rectified some time (over a year)
ago, but my host is on release 4.3.3 - i.e. later than my dev
environment.

Thanks in anticipation, Jack.

Reproduce code:
---------------
....
if(!isset($_POST['submitimage']))
  {....
<form action="<?=$_SERVER['PHP_SELF']?>" enctype="multipart/form-data"
method="post"> 
<input type="text" maxlength="60" size="40" name="caption">
<input type="file" size="40" name="userfile">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000"> 
<input type="submit" name="submitimage" value="Submit">
<input type="reset" value="Reset">
<input type="button" onClick="window.close();" name="noaction" value="No
Action">
</form>
....
<?php
  }
elseif('Submit'==$_POST['submitimage'])
  { //process file ....


Expected result:
----------------
I would expect the $_POST variables to be set, for example
$_POST['submitimage'] should be set and allow the elseif clause to
execute.

Actual result:
--------------
Only the $_POST variables defined in lines above the line:
<input type="file" size="40" name="userfile"> get set. The ones below,
including $_POST['submitimage'] do not get set.

-- 
Edit bug report at http://bugs.php.net/?id=26004&edit=1
-- 
Try a CVS snapshot (php4):  http://bugs.php.net/fix.php?id=26004&r=trysnapshot4
Try a CVS snapshot (php5):  http://bugs.php.net/fix.php?id=26004&r=trysnapshot5
Fixed in CVS:               http://bugs.php.net/fix.php?id=26004&r=fixedcvs
Fixed in release:           http://bugs.php.net/fix.php?id=26004&r=alreadyfixed
Need backtrace:             http://bugs.php.net/fix.php?id=26004&r=needtrace
Try newer version:          http://bugs.php.net/fix.php?id=26004&r=oldversion
Not developer issue:        http://bugs.php.net/fix.php?id=26004&r=support
Expected behavior:          http://bugs.php.net/fix.php?id=26004&r=notwrong
Not enough info:            http://bugs.php.net/fix.php?id=26004&r=notenoughinfo
Submitted twice:            http://bugs.php.net/fix.php?id=26004&r=submittedtwice
register_globals:           http://bugs.php.net/fix.php?id=26004&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=26004&r=php3
Daylight Savings:           http://bugs.php.net/fix.php?id=26004&r=dst
IIS Stability:              http://bugs.php.net/fix.php?id=26004&r=isapi
Install GNU Sed:            http://bugs.php.net/fix.php?id=26004&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=26004&r=float

Reply via email to