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

회원사진 업로드 채택완료

zkdlf 8년 전 조회 2,456

마이페이지에 회원사진 등록하게할려고하는 소스인데 회원가입할때 등록된 사진을 변경하기위해 마이페이지 edit에 새로운 사진을 등록하게할려고하는데 처음 등록된 사진그림이 나오고 다른 사진으로 변경하게할려는데 sumbit을 하면 date/member/회원폴더안에 jpg로 처음 등록했고 png로 다시 올렸는데 회원 사진 삭제하고 대체된사진이 안들어오고 폴더안에 두개의 파일이 나타납니다 삭제를하고 바뀐 사진으로 업로드하게할려면 어떻게 해야하나요?

</p><p><?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;</p><p>
?>
<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"></p><p> </form></p><p> </p><p><?</p><p>
// 회원 아이콘
$mb_dir = G5_DATA_PATH.'/member/'.substr($member['mb_id'],0,2);</p><p>// 아이콘 삭제
if (isset($_POST['del_mb_icon'])) {
  @unlink($mb_icon_path);
}</p><p>$msg = "";</p><p>// 아이콘 업로드
$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']).'바이트 이하로 업로드 해주십시오.';
        }</p><p>    } else {
        $msg .= $_FILES['mb_icon']['name'].'은(는) gif 파일이 아닙니다.';
    }
}</p><p>?>

<!--?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;


?-->
 </p><form name="fregisterform" id="fregisterform" onsubmit="return fregisterform_submit(this);" action="<?php echo $register_action_url ?>" enctype="multipart/form-data" method="post" autocomplete="off">
<div class="m01">
        
		
        
댓글을 작성하려면 로그인이 필요합니다.

답변 3개

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

위 소스는 화일명이 무엇이며 어디서 실행 되는 것인가요?

사진 등록 소스가 폼 아래쪽에 나오는 것이 이상해 보이긴 하지만

위 소스만으로 보았을 때 60행에 추가 해주면 될 것 같아보입니다

@unlink($mb_icon_path);

 

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

답변에 대한 댓글 1개

z
zkdlf
8년 전
아 이건 mypage라는 폴더에있는 list.skin.php파일에서 구현한겁니다

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

k
7년 전

이부분이,,취약점 있는거 같아요

아미나에서도 그래요,,,\변경시

변경안되게 보이는데

막상 전으로 가기해서 봄 변경되 있구요,,

 

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

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

몇일전 제가 구현했던 내용과 동일하네요.<br />
<br />
그누는 기본적으로 gif파일만 업로드 되요.<br />
<br />
gif 이외의 jpg, png 파일을 업로드하고 싶으신거죠.<br />
<br />
<br />
방법.<br />
회원정보가입스킨에 보면게사진을 자바스크립트로 gif만 업로가능하게 한부분을 jpg, png도 업로드가능하게 수정해주세요.<br />
<br />
이제 bbs 디렉토리에서 회원정보 수정실행 파일에서<br />
jpg, png 파일도 업로드가능하게 수정요.<br />
기존 gif이외에 jpg, png 도 가능하게 추가.<br />
또한, gif 파일이외의&amp;nbsp; 파일은 삭제하게한 코드에 jpg, png 도 추가해주세요.<br />
<br />
지금 제가 인천가는 중이라 스마트폰으로 작성해서 코드를 못어드려요^^
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

z
zkdlf
8년 전
^^ 아니요 우선 gif jpg png구현은 다했어요 회원가입할때 사진 업로드시 gif jpg png이건 다되구요
그리고 data/member/각 회원아이디 폴더생성/ 안에 이미지 까지 되요 문제는 회원가입후 마이페이지라는 곳에서 이밎 변경을하거나 이미지 업로드안된회원이 이미지를 가입 후 업로드할때 구현한건데 이미 화원 이미지 등록한 아이디로 새로운 이미지로 변경할려는데 전에 이미지가 삭제가안되고 새로생기고 새로생긴 이미지는 출력이 안되고 전에있던이미지만 나와요^^

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

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

로그인