테스트 사이트 - 개발 중인 베타 버전입니다

syntax error 에 대한 조언 부탁드립니다. 채택완료

곤주 1년 전 조회 11,918

랜덤하게 게시판이나 php 페이지를 불러오는 코드를 적용해 보고 있습니다.

(팁자료실에 있는 미니미a님이 올려주신 자료를 참고했습니다)

 

아래 코드에서 5번째 줄인 $hardcoded_exclusions = ['']; 에서 syntax 에러가 발생합니다.

 

예전에 syntax error를 겪어본 경험을 떠올려 보면,

아마도 php 버전에서 문제가 있지 않을까 싶은데... (php 버전이 낮습니다)

 

이 부분을 어떻게 수정해야 버전과 관련된 에러를 잡을 수 있을지 조언 부탁드립니다.

 

</p>

<p><?php

include_once("_common.php"); // 개별 페이지 접근을 위해 추가

 $exclude_clause = '';

 // $hardcoded_exclusions = ['notice', 'free'];

 $hardcoded_exclusions = [''];

 if (!empty($exclude_boards)) {

        $exclude_boards = array_merge($exclude_boards, $hardcoded_exclusions);

    } else {

        $exclude_boards = $hardcoded_exclusions;

    }

    $exclude_boards_string = "'" . implode("', '", $exclude_boards) . "'";

    $exclude_clause = " WHERE `bo_table` NOT IN ({$exclude_boards_string})";

 

    // 제외할 게시판을 제외한 모든 게시판 정보를 가져옵니다.

    $sql = "SELECT * FROM `g5_board`" . $exclude_clause;

    $result = sql_query($sql); // 쿼리 실행

    $all_boards_info = [];  // 모든 게시판 정보를 저장할 배열

 

    while ($board = sql_fetch_array($result)) {

        $bo_table = $board['bo_table'];  // 게시판 테이블명을 가져옵니다.

        $bo_subject = $board['bo_subject'];  // 게시판 제목을 가져옵니다.

        $all_boards_info[] = array(

            'bo_subject' => $bo_subject,

            'bo_table' => $bo_table,

            'type' => 'board'

        );

    }</p>

<p>    // 일반 페이지 추가 (path 에 주소 / title 에 페이지 이름(화면상에 보여질))</p>

<p>    $additional_pages = [

        ['path' => 'test1/index.php', 'title' => 'Test Page 1'],

        ['path' => 'test3/test.php', 'title' => 'Test Page 3']

    ];</p>

<p>    foreach ($additional_pages as $page) {

        $all_boards_info[] = array(

            'bo_subject' => $page['title'],

            'bo_table' => $page['path'],

            'type' => 'page'

        );

    }</p>

<p>    if (!empty($all_boards_info)) {

        $random_key = array_rand($all_boards_info);

        $random_board = $all_boards_info[$random_key];

        if ($random_board['type'] === 'board') {

            $redirect_url = "/bbs/board.php?bo_table=" . $random_board['bo_table'];

        } else {

            $redirect_url = "/" . $random_board['bo_table'];

        }

        // 더 빠르게 이동하려면 3000을 1000으로 변경시 1초가 됩니다 1000 당 1초

        echo "<script>setTimeout(function() { window.location.href = '{$redirect_url}'; }, 3000);</script>";

        echo $random_board['bo_subject'] . " (" . $random_board['bo_table'] . ") 으로 3초 후 이동합니다.
";

    }</p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
1년 전

$all_boards_info  = array() 로 한번 해보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

곤주
1년 전
답변 감사합니다.

chat gpt로 모든 코드 복사해서 넣고
php 버전 낮아도 적용되도록 수정해 달라고 하니까,
말씀하신 것처럼 수정해 주네요.

그렇게 적용하니까 작동이 됩니다;;;

댓글을 작성하려면 로그인이 필요합니다.

검색해 봤습니다.

https://nine01223.tistory.com/153

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

곤주
1년 전
답변 감사드립니다.

그누5 Q&A에서 답변 중 [ ] 는 php5.4 이상에서만 사용 가능하다는 답변을 보고
()로 수정했었습니다.

수정하니까... 이 부분은 넘어가는데,

위와 같이 수정한 이후에는
17번째 줄 $all_boards_info = []; 에서 syntax 에러가 발생하여
이 부분도 ()로 수정하였으나, 여기서는 오류 해결이 되지 않았습니다.

그래서 ()로 수정하는 것은 해결 방안이 아니라고 판단했는데,
알려주신 링크로 들어가서 보니까 맞는 것 같네요.

php 버전이 낮으니까 힘드네요 ㅜㅠ

혹시 $all_boards_info = []; 부분에서는 ()로 수정해도 syntax 에러가 발생하는데
이 부분은 왜 그런지 여쭈어봐도 될까요.
곤주
1년 전
$all_boards_info = [];을 $all_boards_info = (); 이렇게 수정하면,
syntax error, unexpected ')' 이렇게 뜨네요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인