I have found that IIS does not handle large query strings gracefully when passed from PHP. In addition to truncating them to around 1024 kb, I have seen IIS actually add data from other server variables to the end of the truncated data.
This occurred on Windows 2000 server running IIS 5.0 and PHP 4.3.8. The problem did not occur when handled by Apache, even on another Windows server. It also was not present when run locally on the version of IIS included with Windows XP Pro with PHP 4.3.8 installed. This problem does not occur when passing either of the URLs to an ASP page, so I'm not sure if this means it is a problem with PHP passing data to IIS or just with how IIS handles PHP requests.
Note: I realize passing this much data is best accomplished using the POST method, which would avoid this problem all together. I'm merely detailing a problem that I came across.
Here is the query string that I was using. Note that the committee_id array should contain a total of 54 elements. In IIS, only 45 elements are available.
?frmSubmit=true&committee_id%5B%5D=31&committee_id%5B%5D=28&committee_id%5B%5D=7&committee_id%5B%5D=1&committee_id%5B%5D=30&committee_id%5B%5D=26&committee_id%5B%5D=27&committee_id%5B%5D=13&committee_id%5B%5D=58&committee_id%5B%5D=55&committee_id%5B%5D=59&committee_id%5B%5D=54&committee_id%5B%5D=57&committee_id%5B%5D=56&committee_id%5B%5D=3&committee_id%5B%5D=6&committee_id%5B%5D=8&committee_id%5B%5D=10&committee_id%5B%5D=11&committee_id%5B%5D=2&committee_id%5B%5D=9&committee_id%5B%5D=34&committee_id%5B%5D=35&committee_id%5B%5D=36&committee_id%5B%5D=44&committee_id%5B%5D=37&committee_id%5B%5D=43&committee_id%5B%5D=39&committee_id%5B%5D=5&committee_id%5B%5D=40&committee_id%5B%5D=41&committee_id%5B%5D=38&committee_id%5B%5D=42&committee_id%5B%5D=33&committee_id%5B%5D=24&committee_id%5B%5D=14&committee_id%5B%5D=19&committee_id%5B%5D=20&committee_id%5B%5D=4&committee_id%5B%5D=22&committee_id%5B%5D=21&committee_id%5B%5D=25&committee_id%5B%5D=15&committee_id%5B%5D=45&committee_id%5B%5D=50&committee_id%5B%5D=48&committee_id%5B%5D=49&committee_id%5B%5D=53&committee_id%5B%5D=17&committee_id%5B%5D=18&committee_id%5B%5D=52&committee_id%5B%5D=51&committee_id%5B%5D=46&committee_id%5B%5D=47&with_selected=ViewLogItems
Some results as seen by echoing the $_SERVER['QUERY_STRING'] variable in PHP:
Data just truncated half-way through the 46th element of the committee_id array:
?frmSubmit=true&committee_id%5B%5D=31&...&committee_id[]=25&committee_id[]=15&committee_id[]=45&committee_id[]=50&committee_id%5
Query string data truncated at the same spot but data from the HTTP_ACCEPT server variable is added (in bold)
?frmSubmit=true&committee_id%5B%5D=31&...&committee_id[]=25&committee_id[]=15&committee_id[]=45&committee_id[]=50&committee_id%5ge/png,*/*;q=0.5
Query string data truncated at the same spot but data from the SCRIPT_NAME server variable is added (in bold)
?frmSubmit=true&committee_id%5B%5D=31&...&committee_id[]=25&committee_id[]=15&committee_id[]=45&committee_id[]=50&committee_id%5g/Applications/TMHlogsdev/committee_details.php
Query string data truncated at the same spot but data from the HTTP_ACCEPT server variable is added (in bold)
?frmSubmit=true&committee_id%5B%5D=31&...&committee_id[]=25&committee_id[]=15&committee_id[]=45&committee_id[]=50&committee_id%5simprod.lifespan.org HTTP_REFERER:http://websimprod.lifespan.org/is/servicemaster/logout.php HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) HTTP_COOKIE:SITESERVER=ID=efcdd8223b7a2486358b8a0dae8a52bf; PHPSESSID=06c05a0c88aee5e3c5172624af3d4cc5 HTTP_ACCEPT_ENCODING:gzip, deflate
I also tried the following URL to see if it was just an issue with passing arrays, but similar results were encountered:
?frmSubmit=true&committee_31313131=31&committee_28282828=28&committee_77777777=7&committee_11111112=1&committee_30303030=30&committee_26262626=26&committee_27272727=27&committee_13131313=13&committee_58585858=58&committee_55555555=55&committee_59595959=59&committee_54545454=54&committee_57575757=57&committee_56565656=56&committee_33333334=3&committee_66666666=6&committee_88888888=8&committee_10101010=10&committee_11111111=11&committee_22222223=2&committee_99999999=9&committee_34343434=34&committee_35353535=35&committee_36363636=36&committee_44444444=44&committee_37373737=37&committee_43434343=43&committee_39393939=39&committee_55555556=5&committee_40404040=40&committee_41414141=41&committee_38383838=38&committee_42424242=42&committee_33333333=33&committee_24242424=24&committee_14141414=14&committee_19191919=19&committee_20202020=20&committee_44444445=4&committee_22222222=22&committee_21212121=21&committee_25252525=25&committee_15151515=15&committee_45454545=45&committee_50505050=50&committee_48484848=48&committee_49494949=49&committee_53535353=53&committee_17171717=17&committee_18181818=18&committee_52525252=52&committee_51515151=51&committee_46464646=46&committee_47474747=47&with_selected=ViewLogItems