회원사진 업로드
본문
마이페이지에 회원사진 등록하게할려고하는 소스인데 회원가입할때 등록된 사진을 변경하기위해 마이페이지 edit에 새로운 사진을 등록하게할려고하는데 처음 등록된 사진그림이 나오고 다른 사진으로 변경하게할려는데 sumbit을 하면 date/member/회원폴더안에 jpg로 처음 등록했고 png로 다시 올렸는데 회원 사진 삭제하고 대체된사진이 안들어오고 폴더안에 두개의 파일이 나타납니다 삭제를하고 바뀐 사진으로 업로드하게할려면 어떻게 해야하나요?
<?php
// 회원 사진 경로
$mb_icon_path = G5_DATA_PATH.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif';
if(!file_exists($mb_icon_path)){
$mb_icon_path = G5_DATA_PATH.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.jpg';
if(!file_exists($mb_icon_path)){
$mb_icon_path = G5_DATA_PATH.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.png';
if(!file_exists($mb_icon_path)){
$mb_icon_path = "";
}
}
}
$expander = substr($mb_icon_path, -3);
$mb_icon_url = G5_DATA_URL.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.'.$expander;
?>
<form name="fregisterform" id="fregisterform" action="<?php echo $register_action_url ?>" onsubmit="return fregisterform_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
<div class="m01">
<tr>
<th scope="row"><label for="reg_mb_icon">Image</label></th>
<td>
<span class="frm_info">
<?php echo $config['cf_member_icon_width'] ?> <?php echo $config['cf_member_icon_height'] ?>
<?php echo number_format($config['cf_member_icon_size']) ?>
</span>
<div id="divFake">
<input id="reg_mb_icon" name="mb_icon" type="file" class="frm_input" style="font-size: 80px; position: absolute;right:0px;top:0px; opacity:0; filter: alpha(opacity=0);cursor: pointer;"/>
<? if (file_exists($mb_icon_path)){?>
<img src="<?=$mb_icon_url;?>">
<?}else{?>
<img src="/board/mobile/skin/board/mypage/img/photo.gif"style="width: 150px; height :150px; alt=찾아보기"align="center "/>
<?}?>
</div>
<? if (file_exists($mb_icon_path)) { ?>
<input type="hidden" name="del_mb_icon" value="1" id="del_mb_icon">
<?php } ?>
</td>
</th>
</tr>
</div>
<input type="submit" value="<?php echo $w==''?'Edit':'정보수정'; ?>" id="btn_submit" class="btn_submit" accesskey="s">
</form>
<?
// 회원 아이콘
$mb_dir = G5_DATA_PATH.'/member/'.substr($member['mb_id'],0,2);
// 아이콘 삭제
if (isset($_POST['del_mb_icon'])) {
@unlink($mb_icon_path);
}
$msg = "";
// 아이콘 업로드
$mb_icon = '';
if (isset($_FILES['mb_icon']) && is_uploaded_file($_FILES['mb_icon']['tmp_name'])) {
if (preg_match("/(\.gif|png|jpg?)$/i", $_FILES['mb_icon']['name'])) {
// 아이콘 용량이 설정값보다 이하만 업로드 가능
if ($_FILES['mb_icon']['size'] <= $config['cf_member_icon_size']) {
$explode_name = explode('.',$_FILES['mb_icon']['name']);
$dest_path = $mb_dir.'/'.$member['mb_id'].'.'.$explode_name[1];
@mkdir($mb_dir, G5_DIR_PERMISSION);
@chmod($mb_dir, G5_DIR_PERMISSION);
move_uploaded_file($_FILES['mb_icon']['tmp_name'], $dest_path);
chmod($dest_path, G5_FILE_PERMISSION);
if (file_exists($dest_path)) {
//=================================================================\
// 090714
// gif 파일에 악성코드를 심어 업로드 하는 경우를 방지
// 에러메세지는 출력하지 않는다.
//-----------------------------------------------------------------
$size = getimagesize($dest_path);
//if ($size[2] != 1) // gif 파일이 아니면 올라간 이미지를 삭제한다.
// @unlink($dest_path);
//else
// 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
if ($size[0] > $config['cf_member_icon_width'] || $size[1] > $config['cf_member_icon_height'])
@unlink($dest_path);
//=================================================================\
}
} else {
$msg .= '회원아이콘을 '.number_format($config['cf_member_icon_size']).'바이트 이하로 업로드 해주십시오.';
}
} else {
$msg .= $_FILES['mb_icon']['name'].'은(는) gif 파일이 아닙니다.';
}
}
?>
답변 3
위 소스는 화일명이 무엇이며 어디서 실행 되는 것인가요?
사진 등록 소스가 폼 아래쪽에 나오는 것이 이상해 보이긴 하지만
위 소스만으로 보았을 때 60행에 추가 해주면 될 것 같아보입니다
@unlink($mb_icon_path
);
몇일전 제가 구현했던 내용과 동일하네요.
그누는 기본적으로 gif파일만 업로드 되요.
gif 이외의 jpg, png 파일을 업로드하고 싶으신거죠.
방법.
회원정보가입스킨에 보면게사진을 자바스크립트로 gif만 업로가능하게 한부분을 jpg, png도 업로드가능하게 수정해주세요.
이제 bbs 디렉토리에서 회원정보 수정실행 파일에서
jpg, png 파일도 업로드가능하게 수정요.
기존 gif이외에 jpg, png 도 가능하게 추가.
또한, gif 파일이외의 파일은 삭제하게한 코드에 jpg, png 도 추가해주세요.
지금 제가 인천가는 중이라 스마트폰으로 작성해서 코드를 못어드려요^^
그누는 기본적으로 gif파일만 업로드 되요.
gif 이외의 jpg, png 파일을 업로드하고 싶으신거죠.
방법.
회원정보가입스킨에 보면게사진을 자바스크립트로 gif만 업로가능하게 한부분을 jpg, png도 업로드가능하게 수정해주세요.
이제 bbs 디렉토리에서 회원정보 수정실행 파일에서
jpg, png 파일도 업로드가능하게 수정요.
기존 gif이외에 jpg, png 도 가능하게 추가.
또한, gif 파일이외의 파일은 삭제하게한 코드에 jpg, png 도 추가해주세요.
지금 제가 인천가는 중이라 스마트폰으로 작성해서 코드를 못어드려요^^
이부분이,,취약점 있는거 같아요
아미나에서도 그래요,,,\변경시
변경안되게 보이는데
막상 전으로 가기해서 봄 변경되 있구요,,
답변을 작성하시기 전에 로그인 해주세요.