Kboard에 PHP파일로 글쓰기 작성


<?php
echo "start";

include "/wp-content/plugins/kboard/class/KBContent.class.php";
echo "point1";

$data = array();
$data['board_id'] = '1';
$data['parent_uid'] = '0';
$data['member_uid'] = '1';
$data['member_display'] = '글쓴이';
$data['title'] = '제목';
$data['content'] = '내용';
$data['date'] = '';
$data['update'] = '';
$data['view'] = 0;
$data['comment'] = 0;
$data['like'] = 0;
$data['unlike'] = 0;
$data['vote'] = 0;
$data['category1'] = '';
$data['category2'] = '';
$data['secret'] = '';
$data['notice'] = '';
$data['search'] = '1';
$data['thumbnail_file'] = '';
$data['thumbnail_name'] = '';
$data['status'] = '';
$data['password'] = '';
echo "point2";

$content = new KBContent();
echo "point3";

$content->insertContent($data);
echo "end";
?>

다음과 같이 PHP 코드를 작성해서 사이트에 FTP를 이용해서 옴겨놓고 실행시키니

point2까지는 출력이 되는데

 

그뒤에 point3, end는 출력되지않고 게시판에 글도 작성되지않았습니다.

 

어떠한 문제때문에 작성이 안되는지를 모르겠습니다. ㅠ_ㅠ

게시판은 1개밖에 만들지않아서 게시판 아이디도 맞는거같은데.... 

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    KBoard 플러그인 게시글 등록 시 워드프레스 기능으로

    데이터베이스(DB)에 정보를 입력하고 있습니다.

    별도로 파일을 만드셨다면 wp-load.php 파일을 포함시켜서

    워드프레스의 기능(함수 등)을 정상적으로 사용할 수 있어야 합니다.

     

    아래 코드와 같이 특정 파일에서 wp-load.php 파일을 포함시키면

    워드프레스의 기능(함수 등)을 사용할 수 있습니다.

    <?php
    require_once 'wp-load.php';
    ?>

    고맙습니다.

  • <?php
    require_once 'wp-load.php';
    require_once "KBContent.class.php";
    $data = array();
    $data['board_id'] = '1';
    $data['parent_uid'] = '0';
    $data['member_uid'] = '1';
    $data['member_display'] = '글쓴이';
    $data['title'] = '제목';
    $data['content'] = '내용';
    $data['date'] = '20191128';
    $data['update'] = '';
    $data['view'] = 0;
    $data['comment'] = 0;
    $data['like'] = 0;
    $data['unlike'] = 0;
    $data['vote'] = 0;
    $data['category1'] = '';
    $data['category2'] = '';
    $data['secret'] = '';
    $data['notice'] = '';
    $data['search'] = '1';
    $data['thumbnail_file'] = '';
    $data['thumbnail_name'] = '';
    $data['status'] = '';
    $data['password'] = '';

    $content = new KBContent();
    $content->insertContent($data);

    ?>

     

    답변감사합니다. 말씀하신대로 'wp-load.php'  require 해주니까 다른부분은 잘 진행되는데

    'KBContent.class.php'를 require 하는부분에서 자꾸 에러가 뜹니다.

    사이트가 기술적 어려움에 처해있습니다. 라는 문구가뜨면서 저부분을 넘어가지가 않네요 

    'KBContent.class.php' <-- 이 php파일을 인클루드 또는 리콰이어 하지않으면 글작성이 안되는거같은데.. 

    여기서 막히니까 너무 막막합니다 .,.ㅠ

  • 안녕하세요.

    디버그 모드를 활성화하시면 에러 메시지를 확인해보실 수 있습니다.

    워드프레스 에러 확인하기 - 디버그 모드 활성화 방법

     

    올려주신 코드를 보니 파일 경로의 문제로 보입니다.

    직접 추가하신 코드는 wp-load.php와 같은 디렉토리에 추가하셨기 때문에

    require_once 'wp-load.php'; 코드는 정상적으로 동작하는 듯합니다.

     

    올려주신 코드 중

    아래의 코드를 찾아서

    require_once "KBContent.class.php";

    아래의 코드로 교체해보시겠어요?

    require_once ABSPATH . 'wp-content/plugins/kboard/class/KBContent.class.php';

    고맙습니다.

  • 답변감사합니다. 말씀하신대로 require 문제같은데 

    require ABSPATH . 'wp-load.php';
    require ABSPATH . 'wp-content/plugins/kboard/class/KBContent.class.php';

    둘다 절대경로를 이용해서 위치가 틀리지않게 적용했고 실제로 저위치에 파일이 있는것도 확인했는데

    제대로 require이 되고 있지않는거같습니다. 테스트를위해서 snippets 플러그인을 이용해서 테스트해봤는데 해당플러그인에서는 require을 하지않고 php소스만으로도

    정상적으로 글이 잘써졌습니다. (아마 이미 다른부분에서 참조가되서 그런거겠죠?)

    그런데 이상하게 [사이트주소/custom_kbwirte.php] 이런식으로 실행시켰을때는 require 부분에서 fatal 에러가 나고있습니다. (require빼도 안됩니다)

    혹시 권한문제나, 또다른 php파일을 require 해야되는부분이 있는건가요?

  • 올려주신 내용만으로는 저희 쪽에서 원인을 파악하기 어렵습니다.

    워드프레스 디버그 모드를 활성화해서 에러 메시지가 표시되는지 확인해보시겠어요?

    워드프레스 에러 확인하기 - 디버그 모드 활성화 방법

     

    PHP 자체 에러 메시지를 표시하는 건

    아래의 PHP 코드를 상단에 추가하시면 가능합니다.

    error_reporting(E_ALL);
    ini_set("display_errors", 1);

    고맙습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기