채택완료

form action 관련해서 문의드려요~!

2017-06-20 (화) 03:25:15 4,582

https://sir.kr/g5_tip/2158?sfl=wr_subject%7C%7Cwr_content&stx=%EC%82%AC%EC%A7%84 

질문이 제대로 전달이안되어 삭제후 다시질문드려요!

아래의 코드는 위 링크 팁자료실에서 가져온 함수구요

질문] ​제가 알기로는 해당 함수의 경우에는 1번 input에서 2번함수로 넘어가는걸로 알고있어서

1번에 form를 넣어 action = register_form_update.tail.skin.php으로 넘겨주니 하얀화면만 나오고있는데요..! 혹시 어떤게 잘못된거죠?

 

회원가입 및 정보수정 부분에서 변경하는게 아닌 일반 index에서 변경처리가능하게 하려면

action 부분에 다른함수를 넣어야하는건가요?



1번

 

Copy
<input type="file" name="mb_profile_img" id="reg_mb_profile_img"><?php$file_check = file_exists(G5_DATA_PATH."/member/profile_img/".$member['mb_id'].".jpg");if (!$file_check) { ?><div class="file-exists">이미 프로필 이미지가 등록되어 있습니다. 새 이미지를 등록하면 이전 이미지를 덮어씁니다.<br>이전 이미지를 삭제만 하려면 아래 <strong>프로필 이미지 삭제</strong>에 체크하세요.<br><label class="image_del"><input type="checkbox" name="mb_profile_img_del" id="mb_profile_img_del" value="1"> 프로필 이미지 삭제</label></div><?php } ?><span class="help-block">프로필 이미지의 비율은 가로세로 1:1이고, 비율이 맞지 않을 경우에는 조정합니다.<br>아래 메뉴에서 이미지를 어떻게 조정할 지 선택하세요.</span><label><input type="radio" name="mb_profile_img_crop" id="reg_mb_profile_img_crop1" value="1" checked>왼쪽이나 위쪽 기준으로 이미지 자름</label><label><input type="radio" name="mb_profile_img_crop" id="reg_mb_profile_img_crop2" value="2" checked>오른쪽이나 아래쪽 기준으로 이미지 자름</label><label><input type="radio" name="mb_profile_img_crop" id="reg_mb_profile_img_crop3" value="3" checked>중앙 기준으로 이미지 자름</label> <label><input type="radio" name="mb_profile_img_crop" id="reg_mb_profile_img_crop4" value="4" checked>빈 부분에 레터박스 채워넣음</label>

 

 

2번

Copy
<?php//----------------------------------------------------------// 프로필 이미지 파일 업로드 시작//----------------------------------------------------------$mb_profile_img = '';if (isset($_FILES['mb_profile_img']) && is_uploaded_file($_FILES['mb_profile_img']['tmp_name'])) {	$mb_profile_img_ext = array_pop(explode(".", strtolower($_FILES['mb_profile_img']['name'])));	if(@ereg($mb_profile_img_ext, "gif|jpg|jpeg|png")) {        // 아이콘 용량이 1 MB 이하만 업로드 가능 (용량을 조정하고 싶으면 아래 수치 조정)        if ($_FILES['mb_profile_img']['size'] <= (1 * 1024 * 1024)) {            $dest_path_raw = G5_DATA_PATH."/member/profile_img/".$mb_id."_raw.".$mb_profile_img_ext;            move_uploaded_file($_FILES['mb_profile_img']['tmp_name'], $dest_path_raw);            $dest_path = G5_DATA_PATH."/member/profile_img/".$mb_id.".jpg";			$size = getimagesize($dest_path_raw);			if ($size[2] == 1 || $size[2] == 2 || $size[2] == 3) { // 이미지 파일이 진짜인지 판별				if($size[0] < 60 || $size[1] < 60) { // 이미지 사이즈가 너무 작을 경우					$msg .= '이미지 크기가 너무 작습니다. 가로세로 60픽셀 이상의 이미지를 올려주세요.';				} else {					if(file_exists($dest_path)) { // 이미 파일이 있을 경우(즉 수정일 경우) 먼저 파일을 삭제						@unlink($dest_path);					}					// 이미지 불러와서 판 깔기(...)					if($size[2] == 2) {						$image_call = imagecreatefromjpeg($dest_path_raw);					} elseif($size[2] == 1) {						$image_call = imagecreatefromgif($dest_path_raw);					} elseif($size[2] == 3) {						$image_call = imagecreatefrompng($dest_path_raw);					}					// 업로드된 이미지 시작점 및 크기 설정 (크롭)					// 기본값들					$basic_img_w = 60;					$basic_img_h = 60;					$src_img_x = 0;					$src_img_y = 0;					$src_img_w = $size[0];					$src_img_h = $size[1];					$des_img_x = 0;					$des_img_y = 0;					$des_img_w = $basic_img_w;					$des_img_h = $basic_img_h; 					if($size[0] > $size[1]) { // 가로가 길 경우						$src_img_w = $size[1];						switch($mb_profile_img_crop) {							case 1:								break;							case 2:								$src_img_x = $size[0] - $size[1];								break;							case 3:								$src_img_x = (int)(($size[0] - $size[1]) / 2);								break;							case 4:								$src_img_w = $size[0];								$des_img_h = (int)($basic_img_w * ($size[1] / $size[0]));								$des_img_y = (int)(($basic_img_h - $des_img_h) / 2);								break;						}					} elseif($size[0] < $size[1]) { // 세로가 길 경우						$src_img_h = $size[0];						switch($mb_profile_img_crop) {							case 1:								break;							case 2:								$src_img_y = $size[1] - $size[0];								break;							case 3:								$src_img_x = (int)(($size[1] - $size[0]) / 2);								break;							case 4:								$src_img_h = $size[1];								$des_img_w = (int)($basic_img_h * ($size[0] / $size[1]));								$des_img_x = (int)(($basic_img_w - $des_img_w) / 2);								break;						}					}					// 트루컬러 이미지 캔버스 준비					$image_canvas = imagecreatetruecolor($basic_img_w,$basic_img_h);					// 이미지 리사이즈					imagecopyresampled($image_canvas, $image_call, $des_img_x, $des_img_y, $src_img_x, $src_img_y, $des_img_w, $des_img_h, $src_img_w, $src_img_h);					// 이미지 저장					imagejpeg($image_canvas, $dest_path, 80);					// 메모리에서 작업내용 삭제					imagedestroy($image_call);					imagedestroy($image_canvas);					// 원본 이미지 삭제					@unlink($dest_path_raw);				}            } else {	// gif,jpg,png 파일이 아니면 올라간 이미지를 삭제한다.				@unlink($dest_path_raw);			}        } else {            $msg .= '프로필 이미지를 1 MB 이하로 업로드 해주십시오.';        }    } else {        $msg .= $_FILES['$mb_profile_img']['name'].'은(는) 이미지 파일이 아닙니다.';    }} if($mb_profile_img_del == 1) { // 파일 삭제에 체크가 들어온 경우	$dest_path = G5_DATA_PATH."/member/profile_img/".$mb_id.".jpg";	@unlink($dest_path);}//----------------------------------------------------------// 프로필 이미지 파일 업로드 끝//----------------------------------------------------------
|

답변 1개

채택된 답변
+20 포인트

제가 볼때 이해를 잘 못하신 듯 하네요.

member 스킨의 register_form.skin.php에 다음 사항을 추가합니다. <form>~</form> 태그 사이에 적당한 곳에 끼워넣으세요 =>  이 말은 skin/member/basic/폴더에 보면 register_form.skin.php 파일이 있는데 

이걸 열어 <form>태그와 </form>태그 사이에 내용을 넣으라는 소리고,

action = register_form_update.tail.skin.php 이렇게 해서는 절대 안되고 그냥 그렇게 처리만 하시고 

그냥 놔두면 $register_action_url 변수에 저장된 경로로 폼값들이 전달이 되어 처리될 것입니다.


이걸 처리하는 파일은 bbs/register_form_update.php 파일입니다.


그래도 에러가 발생할건데요

ereg함수가 PHP에서 더 이상 지원되지 않는 함수이니 preg_matche함수로 수정 적용하셔야 할 겁니다.

 

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