Edit report at https://bugs.php.net/bug.php?id=26004&edit=1
ID: 26004 Comment by: seyhun_cavus at hotmail dot com Reported by: jacknorton101 at hotmail dot com Summary: $_POST variables not set when using enctype="multipart/form-data" Status: No Feedback Type: Bug Package: *General Issues Operating System: RedHat Linux 9 PHP Version: 4.3.3 Block user comment: N Private report: N New Comment: Here is the fix: Check the message of gimi. [2010-02-03 16:17 UTC] gimi dot alb at gmail dot com, Also you should check (into begin of your script) "post_max_size, upload_max_filesize, memory_limit" values to work correctly and safely! For Example: http://www.php.net/manual/en/features.file-upload.php#73762 YOU SHOULD CHECK: ================================== ini_get('post_max_size'); ini_get('upload_max_filesize'); ini_get('memory_limit'); ================================== Regards. Seyhun Cavus. Previous Comments: ------------------------------------------------------------------------ [2011-03-28 02:15:52] mzbirka at centrum dot cz Just for the record, in my case similar behavior was observed and the cause was restrictions in the suhosin - hardened debian distribution, suhosin.post.max_name_length specifically. ------------------------------------------------------------------------ [2010-02-13 12:57:31] sudeshkmr at yahoo dot com I faced the same problem and nothing worked. I have tested on Apache 2.2, PHP 5.3 on Windows Vista. I also tested on Ubuntu (Karmic) with Apache 2.2 and PHP 5.3. I also tested with nGinX 0.8 and PHP 5.3. Then I found a workaround. The action="" parameter should not be the script page itself on which you have file upload form. For example, you have a page index.php with the upload form. <form action="upload.php" enctype="multipart/form-data" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="200000"> <input type="file" size="40" name="upload"> <input type="submit" value="Upload"> </form> The action="upload.php" <-------- This page has to be different than the file upload form page, and it works on all configurations of PHP! Do not use <php?=$_SERVER['PHP_SELF']?> for the action parameter. ------------------------------------------------------------------------ [2010-02-03 16:17:33] gimi dot alb at gmail dot com, Some Apache hosts have problem parsing variables from .htaccess files. They do not throw any error, but they just unset the variables. I had the problem with the POST variable not being set, when I migrated to a new host. After hours of debugging, I found out that these variables: #php_value upload_max_filesize 50M #php_value post_max_size 55M #php_value memory_limit 384M were causing the webserver to set the memory limit to 256K and POST variable not working. So I commented them out and insted used php.ini to set the variables. It worked fine after that. ------------------------------------------------------------------------ [2009-09-10 10:53:46] just at helping dot com IT IS NOT a BUG. GET and post methods will work as normal requests but if you use the form enctype multipart then you got to handle the request as multipart. In java I use the oreilly MultipartRequest to parse the data and it works wonderfully. You migh thave to find a way to get it in PHP or you can write yourself a multipartrequest class based on oreilly's one. ------------------------------------------------------------------------ [2009-07-01 16:22:26] shaharjourno at hotmail dot com Hi I had the same bug i found a solution please check your Post_max_SIZE. there are some problems with some sizes. I managed to create this problem and then solved Here is a link with some examples http://forums.devnetwork.net/viewtopic.php?f=31&t=94754 Hopefully it will help . ------------------------------------------------------------------------ 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 https://bugs.php.net/bug.php?id=26004 -- Edit this bug report at https://bugs.php.net/bug.php?id=26004&edit=1