첨부파일오류 하나는 되고 하나는 안되는 이유가..

첨부파일오류 하나는 되고 하나는 안되는 이유가..

QA

첨부파일오류 하나는 되고 하나는 안되는 이유가..

본문

sub0401.php , sub0401_send.php는 제품문의고 

sub0402.php , sub0402_send.php는 a/s문의입니다
전체적으로 비슷한데 조금씩 목록 몇개만 달라서 바꿨는데

sub0401(제품문의)는 파일 전송이 잘되는데

sub0402(as문의)는 첨부파일 : 없음으로 뜹니다ㅠㅠ이유가뭘까요

제가 생각하기에.. 보는데 필요한 부분만 잘라서 올립니다
sub0401입니다

<fieldset>
          <form name="contactform" action="/home/sub0401_send.php" method="post" class="fields" enctype="multipart/form-data">
<li id="file-upload">
                  <label class="lbl" for="file">첨부파일(도면)</label>
                  <div class="desc">
                    <input type="file" class="dxee-input full" name="attachment" id="file">
                  </div>
                </li>
</form>
        </fieldset>

 

sub0401_send입니다


 
if(isset($_POST['email'])) {
  // 파일 업로드 처리
  $file = $_FILES['attachment'];
  $tmpName = $file['tmp_name'];
  $filename = basename($file['name']);
  $target_dir = G5_DATA_PATH . "/mail/"; // 파일 업로드 디렉토리
  $target_file = $target_dir . $filename; // 업로드할 파일 경로
  // Rename file if it already exists
  $i = 1;
  while (file_exists($target_file)) {
      $filename = pathinfo($filename, PATHINFO_FILENAME) . '_' . $i . '.' . pathinfo($filename, PATHINFO_EXTENSION);
      $target_file = $target_dir . $filename;
      $i++;
  }
  // 디렉토리 생성
  if (!is_dir($target_dir)) {
    ($target_dir, 0707);
    @chmod($target_dir, 0707);
  }
  move_uploaded_file($tmpName, $target_file);
if(!isset($_POST['class']) ||
      !isset($_POST['company']) || //다중체크
      !isset($_POST['name']) ||
      !isset($_POST['tel']) ||
      !isset($_POST['email']) ||
      !isset($_POST['product']) ||
      !isset($_POST['subproduct']) ||
      !isset($_POST['quantity']) ||
      !isset($_POST['content'])) {
      died('죄송합니다.\n제출하신 양식에  문제가 있습니다.\n양식을 다시 확인해주세요.');
  }
  $class = $_POST['class'];
  $company = $_POST['company']; // required
  $name = $_POST['name']; // required
  $tel = $_POST['tel']; // required
  $email = $_POST['email']; // required
  $product = $_POST['product']; // required
  $subproduct = $_POST['subproduct']; // required
  $quantity = $_POST['quantity'];
  $content = $_POST['content'];
  // $file_name = $file['name'];
  $file_url = G5_DATA_URL . "/mail/" . $filename; // 파일 경로
  $email_to = "*** 개인정보보호를 위한 이메일주소 노출방지 ***";
  $email_subject = "[_제품문의]".$title;
  $email_subject = '=?UTF-8?B?'.base64_encode($email_subject).'?=';
  function clean_string($string) {
    $bad = array("content-type","bcc:","to:","cc:","href");
    return str_replace($bad,"",$string);
  }
  $email_message .= "분류 : ".clean_string($class)."<br><br>"; //다중체크
  $email_message .= "기업명 : ".clean_string($company)."<br><br>";
  $email_message .= "성함 : ".clean_string($name)."<br><br>";
    $email_message .= "핸드폰번호 : ".clean_string($tel)."<br><br>";
  $email_message .= "이메일 주소 : ".clean_string($email)."<br><br>";
  $email_message .= "제품 : ".clean_string($product)."<br><br>";
  $email_message .= "제품 종류 : ".clean_string($subproduct)."<br><br>";
  $email_message .= "수량 : ".clean_string($quantity)."<br><br>";
  $email_message .= "내용 : ".clean_string(nl2br($content))."<br><br>";

  if(!empty($filename) && file_exists($target_file)) {
      $email_message .= "첨부파일 : <a target='_blank' href='" . $file_url . "' download>".$filename."</a><br><br>";
  } else {
      $email_message .= "첨부파일 : 없음<br><br>";
  }


이 아래로는

sub0402_와 sub0402_send입니다

 


<li id="file-upload">
                <label class="lbl" for="file">첨부파일(사진)<span class="txt_red">*</span></label>
                <div class="desc">
                  <input type="file" class="dxee-input full" name="attachment" id="file" required>
                </div>
              </li>
 
 
  if(!isset($_POST['company']) || //다중체크
      !isset($_POST['name']) ||
      !isset($_POST['tel']) ||
      !isset($_POST['email']) ||
      !isset($_POST['address']) ||
      !isset($_POST['product']) ||
      !isset($_POST['subproduct']) ||
      !isset($_POST['fix']) ||
      !isset($_POST['content'])) {
      died('죄송합니다.\n제출하신 양식에  문제가 있습니다.\n양식을 다시 확인해주세요.');
  }
  $company = $_POST['company']; // required
  $name = $_POST['name']; // required
  $tel = $_POST['tel']; // required
  $email = $_POST['email']; // required
  $email = $_POST['address']; // required
  $product = $_POST['product']; // required
  $subproduct = $_POST['subproduct']; // required
  $fix = implode(", ", $_POST['fix']);// fix 배열을 문자열로 변환
  $content = $_POST['content'];
  // $file_name = $file['name'];
  $file_url = G5_DATA_URL . "/mail/" . $filename; // 파일 경로
  $email_to = "*** 개인정보보호를 위한 이메일주소 노출방지 ***";
  $email_subject = "[_제품문의]".$title;
  $email_subject = '=?UTF-8?B?'.base64_encode($email_subject).'?=';
  function clean_string($string) {
    $bad = array("content-type","bcc:","to:","cc:","href");
    return str_replace($bad,"",$string);
  }
  $email_message .= "기업명 : ".clean_string($company)."<br><br>";//다중체크
  $email_message .= "성함 : ".clean_string($name)."<br><br>";
    $email_message .= "핸드폰번호 : ".clean_string($tel)."<br><br>";
  $email_message .= "이메일 주소 : ".clean_string($email)."<br><br>";
  $email_message .= "주소 : ".clean_string($address)."<br><br>";
  $email_message .= "제품 : ".clean_string($product)."<br><br>";
  $email_message .= "제품 종류 : ".clean_string($subproduct)."<br><br>";
  $email_message .= "고장 내용 : ".clean_string($fix)."<br><br>";
  $email_message .= "내용 : ".clean_string(nl2br($content))."<br><br>";

  if(!empty($filename) && file_exists($target_file)) {
      $email_message .= "첨부파일 : <a target='_blank' href='" . $file_url . "' download>".$filename."</a><br><br>";
  } else {
      $email_message .= "첨부파일 : 없음<br><br>";
  }

 

겹치면 안되는 파일명이나 그런게 있는건지ㅠㅠ

어디가 문제인지 알려주세요ㅠㅠ

이 질문에 댓글 쓰기 :

답변 2

sub0402_send 에는 아래 부분이 없네요



  // 파일 업로드 처리
  $file = $_FILES['attachment'];
  $tmpName = $file['tmp_name'];
  $filename = basename($file['name']);
  $target_dir = G5_DATA_PATH . "/mail/"; // 파일 업로드 디렉토리
  $target_file = $target_dir . $filename; // 업로드할 파일 경로
  // Rename file if it already exists
  $i = 1;
  while (file_exists($target_file)) {
      $filename = pathinfo($filename, PATHINFO_FILENAME) . '_' . $i . '.' . pathinfo($filename, PATHINFO_EXTENSION);
      $target_file = $target_dir . $filename;
      $i++;
  }
  // 디렉토리 생성
  if (!is_dir($target_dir)) {
    ($target_dir, 0707);
    @chmod($target_dir, 0707);
  }
  move_uploaded_file($tmpName, $target_file);

https://mara.tistory.com/473

이 글 참조해서 설정을 늘려보세요

PHP_VALUE max_input_vars 50000

기본상태가 1000이었습니다
늘렸는데 max_input_vars local value는 5000으로 바뀌고 master value는 그대로입니다

그누보드를 사용중인데 max_input_vars 값이 작을경우 자동으로 경고창 안내가 나오는 거 아닌가요..? 그런 경고창은 안떠서요

그래도 여전히 첨부파일 없음으로 뜨네요
이렇게 설정해뒀었는데 잘모르겠지만 뭔가 코드오류일것같은데..
sub0401_send와 비교해봐도 똑같습니다

  if(!empty($filename) && file_exists($target_file)) {
      $email_message .= "첨부파일 : <a target='_blank' href='" . $file_url . "' download>".$filename."</a><br><br>";
  } else {
      $email_message .= "첨부파일 : 없음<br><br>";
  }

답변을 작성하시기 전에 로그인 해주세요.
전체 402
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT