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

Daniel Morissette dmorissette at mapgears.com
Thu Aug 14 10:14:03 EDT 2008


Michael,

Can you please try setting the same DATA line directly in the mapfile 
instead of via $layerObj->set() and confirm that you get the same error?

The $layerObj->set() method uses a dynamic buffer allocation, so there 
is no reason for it to bail on buffers larger than a specific size. I 
suspect the problem may be in MapServer's Oracle Spatial driver code 
that may be using a static buffer to build the SQL statement.

I see that there is already ticket #2694 that seems to be about the same 
thing: http://trac.osgeo.org/mapserver/ticket/2694

Daniel

Michael Härtel wrote:
> 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
> 
> 
>       
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users


-- 
Daniel Morissette
http://www.mapgears.com/


More information about the mapserver-users mailing list