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

전체회원 회원정보 엑셀 저장 소스 문의 채택완료

까만도둑 2년 전 조회 1,961

안녕하세요!

 

팁게시판에 올라온 소스를 적용했는데 실패해서 질문 드립니다.

 

박긍정님의 "전체회원 회원정보 엑셀 저장 소스" (https://sir.kr/g5_tip/10150 )를 적용했는데 아래와 같은 결과값을 보여줍니다.

해당 파일은 http://도메인/adm/member_excel.php에 있습니다.

 

어디를 수정하면 될지 고수님들께 문의 드립니다.
팁에 나와 있는 내용 그대로 적용을 했습니다.

 

</strong></p>

<p><?php 

include_once("./_common.php"); 

include_once(G5_LIB_PATH.'/PHPExcel.php');</p>

<p>if (!$is_admin =="super")

  alert_close("최고 관리자 영역 입니다.");</p>

<p>function column_char($i) { return chr( 65 + $i ); }</p>

<p>$headers = array('번호', 'ID', '이름', '닉네임', '레벨', '포인트', '가입일', 'Email', '홈페이지', '성별', '생일', '전화', '휴대폰', '메일링', '정보공개', '최근로그인', '주소');

$widths  = array(18, 15, 15, 15, 15, 15, 15, 50, 20, 20, 20, 20, 20, 20, 20, 20, 100);

$header_bgcolor = 'FFABCDEF';

$last_char = column_char(count($headers) - 1);</p>

<p>

$sql    = " select * from g5_member where mb_leave_date = '' order by mb_datetime desc ";

$result = sql_query($sql);

for($i=1; $row=sql_fetch_array($result); $i++) {</p>

<p>   if ($row['mb_sex'] =="M") { $mb_sex ="남자"; } else if ($row['mb_sex'] =="F"){ $mb_sex ="여자"; } 

   if ($row['mb_mailling'] =="1") { $mb_mailling ="받음"; } else if ($row['mb_mailling'] =="0"){ $mb_mailling ="안받음"; } 

   if ($row['mb_open'] =="1") { $mb_open  ="공개"; } else if ($row['mb_open'] =="0"){ $mb_open ="비공개"; } 

    $rows[] = 

             array(

               $i,

               $row[mb_id],

               $row[mb_name],

               $row[mb_nick],

               $row[mb_level],

               $row[mb_point],

               $row[mb_datetime],

               $row[mb_email],

               $row[mb_homepage],

               $mb_sex,

               $row[mb_birth],

               $row[mb_tel],

               $row[mb_hp],

               $mb_mailling,

               $mb_open,

               $row[mb_today_login],

               print_address($row['mb_addr1'], $row['mb_addr2'], $row['mb_addr3'], $row['mb_zip1'])

             );

}</p>

<p>$data = array_merge(array($headers), $rows);</p>

<p>$excel = new PHPExcel();

$excel->setActiveSheetIndex(0)->getStyle( "A1:${last_char}1" )->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB($header_bgcolor);

$excel->setActiveSheetIndex(0)->getStyle( "A:$last_char" )->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER)->setWrapText(true);

foreach($widths as $i => $w) $excel->setActiveSheetIndex(0)->getColumnDimension( column_char($i) )->setWidth($w);

$excel->getActiveSheet()->fromArray($data,NULL,'A1');</p>

<p>header("Content-Type: application/octet-stream");

header("Content-Disposition: attachment; filename=\"members-".date("ymd", time()).".xls\"");

header("Cache-Control: max-age=0");</p>

<p>$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5');

$writer->save('php://output');

?></p>

<p><strong>

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

답변 2개

채택된 답변
+20 포인트
플라이
2년 전

error_reporting(E_ALL);

ini_set("display_errors", 1);

 

에러를 표시해서 원인을 체크해 보셔야 할듯 합니다.

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

답변에 대한 댓글 3개

까만도둑
2년 전
이렇게 했는데 에러 표시가 안나옵니다.
제가 뭘 잘못했을까요?

[code]
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
?>

<?php
include_once("./_common.php");
include_once(G5_LIB_PATH.'/PHPExcel.php');

if (!$is_admin =="super")
alert_close("최고 관리자 영역 입니다.");

function column_char($i) { return chr( 65 + $i ); }

$headers = array('번호', 'ID', '이름', '닉네임', '레벨', '포인트', '가입일', 'Email', '홈페이지', '성별', '생일', '전화', '휴대폰', '메일링', '정보공개', '최근로그인', '주소');
$widths = array(18, 15, 15, 15, 15, 15, 15, 50, 20, 20, 20, 20, 20, 20, 20, 20, 100);
$header_bgcolor = 'FFABCDEF';
$last_char = column_char(count($headers) - 1);


$sql = " select * from g5_member where mb_leave_date = '' order by mb_datetime desc ";
$result = sql_query($sql);
for($i=1; $row=sql_fetch_array($result); $i++) {

if ($row['mb_sex'] =="M") { $mb_sex ="남자"; } else if ($row['mb_sex'] =="F"){ $mb_sex ="여자"; }
if ($row['mb_mailling'] =="1") { $mb_mailling ="받음"; } else if ($row['mb_mailling'] =="0"){ $mb_mailling ="안받음"; }
if ($row['mb_open'] =="1") { $mb_open ="공개"; } else if ($row['mb_open'] =="0"){ $mb_open ="비공개"; }
$rows[] =
array(
$i,
$row[mb_id],
$row[mb_name],
$row[mb_nick],
$row[mb_level],
$row[mb_point],
$row[mb_datetime],
$row[mb_email],
$row[mb_homepage],
$mb_sex,
$row[mb_birth],
$row[mb_tel],
$row[mb_hp],
$mb_mailling,
$mb_open,
$row[mb_today_login],
print_address($row['mb_addr1'], $row['mb_addr2'], $row['mb_addr3'], $row['mb_zip1'])
);
}

$data = array_merge(array($headers), $rows);

$excel = new PHPExcel();
$excel->setActiveSheetIndex(0)->getStyle( "A1:${last_char}1" )->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB($header_bgcolor);
$excel->setActiveSheetIndex(0)->getStyle( "A:$last_char" )->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER)->setWrapText(true);
foreach($widths as $i => $w) $excel->setActiveSheetIndex(0)->getColumnDimension( column_char($i) )->setWidth($w);
$excel->getActiveSheet()->fromArray($data,NULL,'A1');

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"members-".date("ymd", time()).".xls\"");
header("Cache-Control: max-age=0");

$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5');
$writer->save('php://output');
?>[/code]
플라이
2년 전
아래에 엑셀 표기 해더부분을 빼시고 확인해 보세요
아니면 소스 일부분 지우면서 체크해 보세요
엑스엠엘
2년 전
https://sir.kr/qa/405998?&vpage=1#answer_405999
에러 표시 참고하세요.

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

common.php

아래와 같이 주석 처리하고.....

 

<?php

/*******************************************************************************

** 공통 변수, 상수, 코드

*******************************************************************************/

//error_reporting( E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING );

error_reporting(E_ALL);

ini_set("display_errors", 1);

 

.htaccess

아래와 같이 했습니다.

 

</p>

<p>#### 그누보드5 rewrite BEGIN #####

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^ - [L]

RewriteRule ^shop/list-([0-9a-z]+)$  shop/list.php?ca_id=$1&rewrite=1  [QSA,L]

RewriteRule ^shop/type-([0-9a-z]+)$  shop/listtype.php?type=$1&rewrite=1  [QSA,L]

RewriteRule ^shop/([0-9a-zA-Z_]+)$  shop/item.php?it_id=$1&rewrite=1  [QSA,L]

RewriteRule ^shop/([^/]+)/$  shop/item.php?it_seo_title=$1&rewrite=1  [QSA,L]

RewriteRule ^content/([0-9a-zA-Z_]+)$  bbs/content.php?co_id=$1&rewrite=1  [QSA,L]

RewriteRule ^content/([^/]+)/$  bbs/content.php?co_seo_title=$1&rewrite=1      [QSA,L]

RewriteRule ^rss/([0-9a-zA-Z_]+)$  bbs/rss.php?bo_table=$1        [QSA,L]

RewriteRule ^([0-9a-zA-Z_]+)$  bbs/board.php?bo_table=$1&rewrite=1      [QSA,L]

RewriteRule ^([0-9a-zA-Z_]+)/([^/]+)/$ bbs/board.php?bo_table=$1&wr_seo_title=$2&rewrite=1      [QSA,L]

RewriteRule ^([0-9a-zA-Z_]+)/write$  bbs/write.php?bo_table=$1&rewrite=1    [QSA,L]

RewriteRule ^([0-9a-zA-Z_]+)/([0-9]+)$  bbs/board.php?bo_table=$1&wr_id=$2&rewrite=1  [QSA,L]

RewriteRule ^group/([0-9a-zA-Z_]+)$  bbs/group.php?gr_id=$1&group_table     [QSA,L]

php_flag display_startup_errors on

php_flag display_errors on

php_flag html_errors on

</IfModule>

#### 그누보드5 rewrite END #####

 

이렇게 했는데 에러 출력이 안 뜨네요.

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

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

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

로그인