[mapserver-users] PHP Mapscript $layerObj->set("data", $dataString) doesn't work with long Strings (2036 characters)

Michael Härtel haerta at yahoo.com
Thu Aug 14 04:46:43 EDT 2008


Dear List!

It seems that I found a bug concerning PHP Mapscript or MapScript in general. The result is a "Premature end of script headers: php-cgi.exe" and a "Internal Server error 500"

In our web application I dynamically change the "DATA" attribute of one layer to retrieve the correct objects out of the Oracle 10g database. This works great as long the data String is not longer than 2036 characters.

In php I set the DATA string with "$layerObj->set("data" , $dataString);". A var_dump($dataString) shows that it is 2037 characters long. But debugging at the database side showed that only 1524 characters are included in the select statement. So a total of 513 (Not 512?) characters are cut off. A $dataString containing 2036 characters work fine.

Because the DATA string is only a part of the total SQL string that is submitted to the database (when navigating a map, a " WHERE SDO_FILTER" clause is added) the total SQL string for retrieving the objects (that are burnt into the WMS GETMAP image) gets about 2215 characters long which works fine with sqlplus.

It seems that the "$layerObj->set("data" , $dataString);" line doesn't work for strings longer than 2036 characters.

Can someone confirm this?

Thanks for any reply,

Michael
---
I use "ms4w_2.2.7" zip that includes mapserver 5.0.2. The mapscript.dll 225.280 bytes and is from february, 5th 2008


      


More information about the mapserver-users mailing list