服务器不允许长GET参数

时间:2012-03-12 20:58:17

标签: php get tinymce

我在使用长GET参数的TinyMCE插件时遇到问题。在我的开发服务器上,该插件工作得很好。但是,在生产服务器上,将忽略该参数。

插件是SMImage,它使用如下参数:

40a6ff4a9832c3e3f8e2fed4d50dc8c6cc42409476b487da936f60cf315f57ccc39c7629d4146097ade572cdf409083257eb2d6edbff7b46556efafd07d4802521d17e14d1021baeac712f8ee83be1f768f14f849e58edb37c8fcd9a8e61e5235a1bb885b0dd1c5b85a2642f22fba99d304a6f988795e1c2b088b8f80e7acc69bc0cea7f763320a6611bd24bc924e0e1bda887990f560cbbd9e1608545fd69859a1808286a263d4754b8b1f6a713c9bdaaa015649b92db2701b005bd91e6827ff4bde6b48bcb0e5ca509f568684c51a803dbc7f896cdfdbcd0cfafc202e20d68f45cdfe86b033f36ff05a0f52cc6381231682d20d3038fc4fe7aba0916c614e89ff2b64c6b6bae0b548f

这有点长,但不应该是一个大问题(当然除了IE)。

在生产服务器下,甚至没有定义$ _GET ['get'],因为它被PHP忽略了。

是否有可以更改的服务器设置?在PHP下,什么定义了最大长度?

我可以使用POST,但我不太确定如何更改插件的这一部分:

    var get = 'id=1' + '&dir_root=' + ed.getParam('plugin_smimage_directory', '') + '&server=' + ed.getParam('plugin_smimage_server', '') + '&thumbnail_size=' + ed.getParam('plugin_smimage_thumbnail_size', '') + '&show_thumbnail=' + ed.getParam('plugin_smimage_show_thumbnail', '') + '&jpg_quality=' + ed.getParam('plugin_smimage_jpg_quality', '') + '&orderby=' + ed.getParam('plugin_smimage_orderby', '') + '&show_upload=' + ed.getParam('plugin_smimage_show_upload', '') + '&show_image_menu=' + ed.getParam('plugin_smimage_show_image_menu', '') + '&show_folder_menu=' + ed.getParam('plugin_smimage_show_folder_menu', '') + '&show_newfolder=' + ed.getParam('plugin_smimage_show_newfolder', '') + '&thumbnails_perpage=' + ed.getParam('plugin_smimage_thumbnails_perpage', '') + '&upload_filesize=' + ed.getParam('plugin_smimage_upload_filesize', '') + '&check_session_variable=' + ed.getParam('plugin_smimage_check_session_variable', '') + '&document_root=' + ed.getParam('plugin_smimage_document_root', '');
    ed.windowManager.open({
      file: url + '/index.php?get=' + SMImage_BinToHex(SMImage_RC4(get)),
      width: ed.getParam('plugin_smimage_width', '800'),
      height: ed.getParam('plugin_smimage_height', '500'),
      inline: 1
    },
    {
      plugin_url: url
    })

1 个答案:

答案 0 :(得分:0)

不确定这是不是一个好主意,但你可以尝试使用cookie作为传递这种参数的解决方法。在JS中,在打开此窗口之前,请执行类似

的操作
document.cookie = 'SMImage_param=' + SMImage_BinToHex(SMImage_RC4(get))

然后在没有参数的情况下调用index.php。在服务器端使用

$_COOKIE['SMImage_param']

获取此参数值。

当然,只有当你调用的PHP在同一个域上时它才会起作用(但我几乎可以肯定你的TinyMCE插件就在那里)。