dokuwiki中的插件会导致wiki阻止图像

时间:2017-11-07 12:56:44

标签: php apache plugins dokuwiki

我写了一个自己的插件。 除了媒体经理以外,一切正常。

如果我打开mediamanager,我看不到任何缩略图。 如果我尝试上传一些新图片,apache会崩溃。

经过一些实验,我发现这段代码会导致错误:

如果你把它放在

下面
/lib/plugins/lfs/action.php

打开mediamanager并将新图片上传到wiki:

有人可以测试一下吗?有人看到我的错误吗? 感谢

<?php
/**
 * Example Action Plugin: Inserts a button into the toolbar
 *
 */
if (!defined('DOKU_INC')) die();

class action_plugin_lfs extends DokuWiki_Action_Plugin {
    // Register the eventhandlers
    function register(Doku_Event_Handler $controller) {
        $controller->register_hook('TOOLBAR_DEFINE', 'AFTER', $this, 'insert_button', array ());
    }

    public function insert_button(Doku_Event $event, $param) {

        $event->data[] = array (
            'type'   => 'mediapopup',
            'title'  => 'Link zu Dateien auf dem Netzlaufwerk',
            'icon'   => '../../plugins/lfs/buttonlink.png',
            'url'    => '../lib/plugins/lfs/browser.php?useless=',
            'name'   => 'winsharelink',
            'options'=> 'width=750,height=500,left=20,top=20,scrollbars=yes,resizable=yes',
            'block'  => false,
        );

    }
} 
?>

更新1:

二手服务器:Win10(本地)下的xampp 3.2.2 PHP:7.1.10 Apache:2.4.28.0 WIN32

在我尝试加载上传图片或图片本身的缩略图后,今天apache没有崩溃。

但它仍然无效。

这里有一张图片 WITH action.php,位于lib / plugins / lfs /下 Media Manager with action.php in place

Direct Link to the image with action.php in place

然后,只是将action.php移出lfs文件夹并删除并重新上载logo3.png:

Works without action.php

更新2:

不,我用EasyPHP进行了测试。结果仍然相同。

更新3:

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/dokuwiki/lib/plugins/lfs/action.php:1) in /var/www/html/dokuwiki/inc/actions.php on line 210

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/dokuwiki/lib/plugins/lfs/action.php:1) in /var/www/html/dokuwiki/lib/tpl/dokuwiki/main.php on line 12

1 个答案:

答案 0 :(得分:0)

问题解决了!!!

你永远不应该!!!!在代码文件中包含ident:

|
|  <?php....
|

不同
|
|<?php...
|

是!!!

有一些空间被发送到浏览器。因此出现&#34;标头已发送错误!&#34;

该死!这样一个愚蠢的错误延迟了很多天和几周的开发......