2017-11-07 15 views
0

나는 자신의 플러그인을 작성했습니다. mediamanager를 제외하고 모든 것이 잘 작동합니다.dokuwiki의 플러그인으로 인해 wiki가 이미지를 차단합니다.

mediamanager를 열면 미리보기 이미지를 볼 수 없습니다. 새로운 사진을 업로드하려고하면 아파치가 충돌합니다. 당신이

/lib/plugins/lfs/action.php 

에서이 문제를 놓고 mediamanager을 열고 업로드하면 새 사진이 위키

:

어떤 주위 실험 후, 나는이 코드는 에러의 원인이 파악

누군가 시험해 볼 수 있습니까? 누군가 내 실수를 보는가? 감사

<?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, 
     ); 

    } 
} 
?> 

UPDATE 1 :

사용 서버 : (로컬) Win10에서 XAMPP 3.2.2 PHP : 7.1.10 아파치 : 2.4.28.0 WIN32

오늘 아파치 업로드 한 사진이나 사진 자체의 미리보기 이미지를로드하려고 시도한 후에 충돌이 발생하지 않았습니다.

하지만 여전히 작동하지 않습니다. 여기

사진 다음 lib 디렉토리/플러그인/LFS/ Media Manager with action.php in place

Direct Link to the image with action.php in place

그리고 아래 장소에 action.php 함께, 단지 LFS 폴더 밖으로 action.php 이동 및 삭제하고 다시 업로드 logo3.png :

Works without action.php

업데이트 2 :

아니요 EasyPHP로 테스트했습니다. 여전히 같은 결과입니다.

UPDATE 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 
+0

정확하게 "아파치가 충돌을 일으키는"것을 정확히 의미합니까? PHP 코드는 절대로 PHP 프로세스 (또는 mod_php)를 충돌시킬 수 없어야합니다. 그럴 때 PHP 인터프리터에서 문제가 있음을 의미합니다. 최근 PHP 릴리스가 실행되고 있는지 확인하고 싶을 수도 있습니다. –

+0

안녕하세요, Andreas, 의견을 주셔서 감사합니다. 나는 너보다 나를 도울 수 없다고 생각한다. 나는 원래의 글을 편집하고 그림을 추가했다. 아파치는 오늘 추락하지 않았다. 그러나 이미지는 여전히 접근 할 수 없습니다. 어제 충돌은 fetch.php 스크립트를 통해 이미지에 액세스하려고하자마자 아파치가 예기치 않게 종료되었음을 의미합니다. 오류 메시지없이. PHP 7.1.10을 실행하는 메신저를 볼 수 있습니다. 나는이 스크립트를 다른 DokuWiki instalaltion에 넣으면 SAM의 행동이되어야한다고 생각합니다 ... 감사합니다 –

+0

이 문제를 해결하는 방법을 알고있는 사람은 누구입니까? –

답변

0

!

절대 안됩니다! 코드 파일에 idents 유무 :

| 
| <?php.... 
| 

하지

| 
|<?php... 
| 

가보다 동일합니다!

일부 공백이 브라우저로 전송됩니다. 따라서 "헤더 이미 보낸 오류!"

젠장! 그런 바보 같은 실수는 며칠이나 몇 주 동안 개발을 지연시킨다.