//비밀번호 암호화 함수 get_encrypt_string();
//프로젝트 복사해서 쓸때 로그인 안될시 data폴더 권한 707로 변경
관리자 페이지 스킨 설정 경로 adm/bbs/_common.php
자동로그인 유지
common.php 에서
$tmp_mb_id = substr(preg_replace("/[^a-zA-Z0-9_]*/", "", $tmp_mb_id), 0, 20); 삭제
$_SERVER['SERVER_SOFTWARE'] . $_SERVER['HTTP_USER_AGENT'] 삭제
!= strtolower($config['cf_admin']) 삭제
login_ckeck.php
if ($auto_login || 1) { 변경1추가
. $_SERVER['HTTP_USER_AGENT'] 삭제
. $_SERVER['SERVER_SOFTWARE'] . $_SERVER['HTTP_USER_AGENT'] 삭제
admin.lib.php 최고관리자 자동 로그인 일때
. $_SERVER['HTTP_USER_AGENT'] //삭제
$admin_key = md5($member['mb_datetime'] . get_real_client_ip() ); 밑에소스 주석
index.php 인덱스를 탈때
if ($member["mb_level"] > 1){
//무조건자동로그인
$key = md5($_SERVER['SERVER_ADDR'] . $member['mb_password']);
set_cookie('ck_mb_id', $member['mb_id'], 86400 * 31);
set_cookie('ck_auto', $key, 86400 * 31);
}
회원가입시 사진 넣기
bbs/register_form_update.php
<?php
// 첨부파일 경로
$mb_dir = G5_DATA_PATH.'/member/'.$mb_id;
// 파일 삭제 체크시
$filename2 = $member['mb_10'];
if (isset($_POST['del_mb_10'])) {
@unlink($mb_dir.'/'.iconv("UTF-8","EUC-KR",$filename2));
$sql = " update {$g5['member_table']} set mb_10 ='' where mb_id='$mb_id'" ;
sql_query($sql);
}
// 파일 업로드
$msg = "";
$mb_10 = '';
if (isset($_FILES['mb_10']) && is_uploaded_file($_FILES['mb_10']['tmp_name'])) {
if (preg_match("/(\.gif|jpg|png|jpeg)$/i", $_FILES['mb_10']['name'])) {
// 파일 용량이 설정값보다 이하만 업로드 가능
if ($_FILES['mb_10']['size'] <= $config['cf_member_icon_size']) {
@mkdir($mb_dir, G5_DIR_PERMISSION);
@chmod($mb_dir, G5_DIR_PERMISSION);
$dest_path = $mb_dir.'/'.$_FILES['mb_10']['name'];
// 수정시 기존파일 삭제
$filename2 = $member['mb_10'];
@unlink($mb_dir.'/'.iconv("UTF-8","EUC-KR",$filename2));
$sql = " up0 {$g5['member_table']} set mb_10 ='' where mb_id='$mb_id'" ;
sql_query($sql);
// 파일업로드
move_uploaded_file($_FILES['mb_10']['tmp_name'], iconv("UTF-8","EUC-KR",$dest_path));
chmod(iconv("UTF-8","EUC-KR",$dest_path), G5_FILE_PERMISSION);
// 파일명 여분필드에 업데이트
$filename = $_FILES['mb_10']['name'];
$sql = " update {$g5['member_table']} set mb_10 ='$filename' where mb_id='$mb_id'" ;
sql_query($sql);
} else {
$msg .= '첨부이미지를 5M 이하로 업로드 해주십시오.';
}
} else {
$msg .= $_FILES['mb_10']['name'].'은(는) 이미지파일이 아닙니다.';
}
} ?>
register_form.skin.php
<li>
<label for="reg_mb_10">이미지</label><<span class="frm_info" style="font-size:11px">5M 이하의 이미지파일만 등록 가능 합니다. </span>
<input type="file" name="mb_10" id="reg_mb_10" class="frm_input">
<?php
// 첨부파일 경로
$mb_10_path = G5_DATA_PATH.'/member/'.$member['mb_id'].'/'.$member['mb_10'];
$mb_10_url = G5_DATA_URL.'/member/'.$member['mb_id'].'/'.$member['mb_10'];
if ($w == 'u' && file_exists($mb_10_path)) { ?>
<br><a href="<?=$mb_10_url ?>" target="_target"><font color="red">이미지</font></a>
<input type="checkbox" name="del_mb_10" value="1" id="del_mb_10">
<label for="del_mb_10">삭제</label>
<?php } ?>
</li>
mypage.php 파일명은 달라도 상관없음
$mb_10_path = '/data/member/'.$member['mb_id'].'/'.$member['mb_10'];
<p><img src="<?php echo $mb_10_path;?>" alt="프로필사진"></p>
adm/member_from.php , member_from_update.php관리자페이지에서 회원추가
이미지 파일 용량 줄이기
plugin에 php-image-resize-master을 넣고 //php 5.3 이상
board skin폴더에 write_update.head.skin.php 파일을 만들어서
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
echo
include G5_PLUGIN_PATH."/php-image-resize-master/lib/ImageResize.php";//플러그인 경로를 확인하세요
$width = 900; // 너비 px
$height = 900; // 높이 px (포토샵에서 지원하는 최대 높이값)
$quality = 90; // 선명도 %
use \Gumlet\ImageResize;
for ($i=0; $i<count($_FILES['bf_file']['name']); $i++) {
//이미지 내용 확인
$tmp_file = $_FILES['bf_file']['tmp_name'][$i];
$filename = $_FILES['bf_file']['name'][$i];
//이미지 확장자 검사
if($filename && preg_match("/\.({$config['cf_image_extension']})$/i", $filename)){
// image type 검사
$timg = @getimagesize($tmp_file);
if ($timg['2'] < 1 || $timg['2'] > 16){
continue;
}
//이미지 변경
$image = new ImageResize($tmp_file);
$image->resizeToBestFit($width, $height);
$image->save($tmp_file, null, $quality);
$_FILES['bf_file']['size'][$i]=filesize($tmp_file);
unset($image);
}
}
?>
이미지 썸네일
<?php
include_once('../common.php');
include_once(G5_LIB_PATH."/thumbnail.lib.php");
$filename = 'test2.gif';
$filepath = G5_DATA_PATH."/member_image/test2";
$filepath0 = G5_URL."/data/member_image/test2";
$thumb_width = 180;
$thumb_height = 120;
$thfl = $filepath0.'/'.thumbnail($filename, $filepath, $filepath, $thumb_width, $thumb_height, false, true);//false를 true로 바꾸면 새로 생성
?>
<img src="<?=$thfl?>" alt="">
관리자 페이지 회원권한 이름 바꾸기
//admin.lib.php에서 수정
function get_member_level_select($name, $start_id=0, $end_id=10, $selected="", $event="")
{
global $g5;
$userName;
$str = "\n<select id=\"{$name}\" name=\"{$name}\"";
if ($event) $str .= " $event";
$str .= ">\n";
for ($i=$start_id; $i<=$end_id; $i++) {
if ($i>3 && $i<11)
continue;
$str .= '<option value="'.$i.'"';
switch ($i)
{
case 1 : $userName = "비회원"; break;
case 2 : $userName = "일반회원"; break;
case 3 : $userName = "상점주인"; break;
case 4 : $userName = "4"; break;
case 5 : $userName = "5"; break;
case 6 : $userName = "6"; break;
case 7 : $userName = "7"; break;
case 8 : $userName = "8"; break;
case 9 : $userName = "9"; break;
case 10 : $userName = "관리자"; break;
default : $userName = ""; break;
}
if ($i == $selected)
$str .= ' selected="selected"';
$str .= ">{$userName}</option>\n";
}
$str .= "</select>\n";
return $str;
}
html에서 커스트마이징 페이징 만들기
<?php
$sql_common = " from g5_member ";
$sql_search = '';
if($stx){
if($sfl == 'all'){
if($sfl2 !='all'){
$sql_search = "and mb_3 like '{$sfl2}%'";
}
}else{
$sql_search = "and mb_2 = '{$sfl}' ";
if($sfl2!='all'){
$sql_search .= "and mb_3 like '{$sfl2}%'";
}
}
}
$where0 = "where mb_password != '' ";
// 테이블의 전체 레코드수만 얻음
$sql = " select count(*) as cnt " . $sql_common.$where0.$sql_search;
$row = sql_fetch($sql);
$total_count = $row['cnt'];
$rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = "select * $sql_common {$where0} {$sql_search} order by mb_no desc limit $from_record, $rows ";
$result = sql_query($sql);
?>
//출력내용
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&page="); ?><!-- //페이징출력 -->
댓글 첨부파일
view_comment.skin
<input type="file" name='com_file' id='com_file' >
write_comment_update.php
if($_FILES['com_file']['name']){//댓글 첨부파일
$file_name = $member['mb_id'].$comment_id.".png";
$file_tmp = $_FILES['com_file']['tmp_name'];
$path = G5_DATA_PATH."/file/com01/comment/";//서버에 저장될 경로
$res = move_uploaded_file($file_tmp,$path.$file_name);//파일을 실제로 서버에 업로드 하는 php 함수
if($res){ //댓글파일
sql_query("update $write_table set wr_9 = '{$file_name}' where wr_id = '{$comment_id}'");
}
}
<?php
if($list[$i]['wr_9']){
$filename = $list[$i]['wr_9'];
$filepath = G5_DATA_PATH."/file/com01/comment";
$filepath0 = G5_URL."/data/file/com01/comment";
$thumb_width = 100;
$thumb_height = 80;
$thfl = $filepath0.'/'.thumbnail($filename, $filepath, $filepath, $thumb_width, $thumb_height, false);
?>
<img src="<?=$thfl?>" alt="댓글이미지">
<? } ?>
쪽지에 첨부파일
memo_form.skin.php
<input type="file" name='com_file' id='com_file'>
memo_form_update.php
if($_FILES['com_file']['name']){//쪽지 첨부파일
$file_name = $member['mb_id'].$me_id.".png";
$file_tmp = $_FILES['com_file']['tmp_name'];
$path = G5_DATA_PATH."/memo/";//서버에 저장될 경로
$res = move_uploaded_file($file_tmp,$path.$file_name);//파일을 실제로 서버에 업로드 하는 php 함수
if($res){ //쪽지파일 filename컬럼생성
sql_query("update g5_memo set filename = '{$file_name}' where me_id = '{$me_id}'");
}
}
memo_view_skin.php
<?php
$filename = $memo['filename'];
$filepath = G5_DATA_PATH."/memo";
$filepath0 = G5_URL."/data/memo";
$thumb_width = 180;
$thumb_height = 120;
$thfl = $filepath0.'/'.thumbnail($filename, $filepath, $filepath, $thumb_width, $thumb_height, false);
?>
<img src="<?=$thfl?>" alt="" style='margin-left:20px;'>
//날짜
<?php include_once(G5_PLUGIN_PATH.'/jquery-ui/datepicker.php'); ?>
<script>
$(function(){
$("#datepicker_from, #datepicker_to").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "yy-mm-dd",
showButtonPanel: true,
yearRange: "c-99:c+99",
maxDate: "+365d"
});
});
</script>
안드로이드에서 첨부파일 다운 안될경우
common.lib.php
get_file에서 $file[$no]['href'] 밑에 첨부
$dw = sql_fetch("select bf_source, bf_file from g5_board_file where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no='$no' ");
$file[$no]['bffile'] = "/data/file/$bo_table/$dw[bf_file]";
$file[$no]['bfsource'] = "$dw[bf_source]";\
view.skin.php 첨부파일 //가변파일
<a href="<?php echo $view['file'][$i]['bffile']; ?>" download="<?php echo $view['file'][$i]['bfsource']; ?>" >
사진돌리기
//view.skin.php
$filename[$i] = $view['file'][$i]['file'];
$filepath[$i] = G5_DATA_PATH.'/file/'.$bo_table;
$filepath0[$i] = G5_URL.'/data/file/'.$bo_table;
$thumb_width = $view['file'][$i]['width'];
$thumb_height = $view['file'][$i]['heigth'];
if (readExif($filepath[$i]."/".$filename[$i])){
$tmp = $thumb_height;
$thumb_height = $thumb_width;
$thumb_width = $tmp;
}
else {
if($view['file'][$i]['width'] < $view['file'][$i]['height']){
$thumb_width = 330;
$thumb_height = 440;
}else{
$thumb_width = 440;
$thumb_height = 330;
}
}
$thfl[$i] = $filepath0[$i].'/'.thumbnail($filename[$i], $filepath[$i], $filepath[$i], $thumb_width, $thumb_height, false, true);
echo '<img src="'.$thfl[$i].'" />';
//thumbnail.lib.php
function readExif($source_file){
$src = @imagecreatefromjpeg($source_file);
if(function_exists('exif_read_data')) {
// exif 정보를 기준으로 회전각도 구함
$exif = @exif_read_data($source_file);
if(!empty($exif['Orientation'])) {
switch($exif['Orientation']) {
case 8:
return true;
break;
case 3:
return false;
break;
case 6:
return true;
break;
}
}
}
return false;
}
사진 돌려서 저장하기
//writeupdate부분에서 위에
// 업로드가 안된다면 에러메세지 출력하고 죽어버립니다.
//$error_code = move_uploaded_file($tmp_file, $dest_file) or die($_FILES['bf_file']['error'][$i]);
//주석처리하고 덮어씌우기
//사진 돌려서 저장하기
//세로저장
$exifData = exif_read_data($tmp_file);
if($exifData['Orientation'] == 6) {
// 시계방향으로 90도 돌려줘야 정상인데 270도 돌려야 정상적으로 출력됨
$degree = 270;
}
else if($exifData['Orientation'] == 8) {
// 반시계방향으로 90도 돌려줘야 정상
$degree = 90;
}
else if($exifData['Orientation'] == 3) {
$degree = 180;
}
if($degree) {
if($exifData[FileType] == 1) {
$source = imagecreatefromgif($tmp_file);
$source = imagerotate ($source , $degree, 0);
imagegif($source, $dest_file);
}
else if($exifData[FileType] == 2) {
$source = imagecreatefromjpeg($tmp_file);
$source = imagerotate ($source , $degree, 0);
imagejpeg($source, $dest_file);
}
else if($exifData[FileType] == 3) {
$source = imagecreatefrompng($tmp_file);
$source = imagerotate ($source , $degree, 0);
imagepng($source, $dest_file);
}
imagedestroy($source);
}
else {
// 업로드가 안된다면 에러메세지 출력하고 죽어버립니다.
$error_code = move_uploaded_file($tmp_file, $dest_file) or die($_FILES['bf_file']['error'][$i]);
}
// 세로사진 처리 끝
'IT > ETC' 카테고리의 다른 글
JQuery - JQuery(제이쿼리) 노트 정리 #2 (0) | 2020.03.21 |
---|---|
JQuery - JQuery(제이쿼리) 정리 , 선택자 , 기본 이벤트 (0) | 2020.03.20 |
그누보드 , 영카트 정리 #2 (0) | 2020.03.19 |
그누보드 , 영카트 정리 #1 (0) | 2020.03.19 |
그누보드 , 영카트 정리 #0 (0) | 2020.03.19 |