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

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

sliverzero 1년 전 조회 2,033

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

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

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

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

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

</p>

<p><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></p>

<p></form>

        </fieldset></p>

<p>

 

sub0401_send입니다

 </p>

<p>if(isset($_POST['email'])) {</p>

<p>  // 파일 업로드 처리

  $file = $_FILES['attachment'];

  $tmpName = $file['tmp_name'];

  $filename = basename($file['name']);

  $target_dir = G5_DATA_PATH . "/mail/"; // 파일 업로드 디렉토리

  $target_file = $target_dir . $filename; // 업로드할 파일 경로</p>

<p>  // 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++;

  }</p>

<p>  // 디렉토리 생성

  if (!is_dir($target_dir)) {

    @mkdir($target_dir, 0707);

    @chmod($target_dir, 0707);

  }</p>

<p>  move_uploaded_file($tmpName, $target_file);</p>

<p>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양식을 다시 확인해주세요.');

  }</p>

<p>  $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; // 파일 경로</p>

<p>  $email_to = "silver@designtalktalk.com";</p>

<p>  $email_subject = "[_제품문의]".$title;

  $email_subject = '=?UTF-8?B?'.base64_encode($email_subject).'?=';</p>

<p>  function clean_string($string) {

    $bad = array("content-type","bcc:","to:","cc:","href");

    return str_replace($bad,"",$string);

  }</p>

<p>  $email_message .= "분류 : ".clean_string($class)."

"; //다중체크

  $email_message .= "기업명 : ".clean_string($company)."

";

  $email_message .= "성함 : ".clean_string($name)."

";

    $email_message .= "핸드폰번호 : ".clean_string($tel)."

";

  $email_message .= "이메일 주소 : ".clean_string($email)."

";

  $email_message .= "제품 : ".clean_string($product)."

";

  $email_message .= "제품 종류 : ".clean_string($subproduct)."

";

  $email_message .= "수량 : ".clean_string($quantity)."

";

  $email_message .= "내용 : ".clean_string(nl2br($content))."

";</p>

<p>

  if(!empty($filename) && file_exists($target_file)) {

      $email_message .= "첨부파일 : <a target='_blank' href='" . $file_url . "' download>".$filename."</a>

";

  } else {

      $email_message .= "첨부파일 : 없음

";

  }</p>

<p>


이 아래로는

sub0402_와 sub0402_send입니다

 

</p>

<p><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></p>

<p> </p>

<p> </p>

<p>  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양식을 다시 확인해주세요.');

  }</p>

<p>  $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; // 파일 경로</p>

<p>  $email_to = "silver@designtalktalk.com";</p>

<p>  $email_subject = "[_제품문의]".$title;

  $email_subject = '=?UTF-8?B?'.base64_encode($email_subject).'?=';</p>

<p>  function clean_string($string) {

    $bad = array("content-type","bcc:","to:","cc:","href");

    return str_replace($bad,"",$string);

  }</p>

<p>  $email_message .= "기업명 : ".clean_string($company)."

";//다중체크

  $email_message .= "성함 : ".clean_string($name)."

";

    $email_message .= "핸드폰번호 : ".clean_string($tel)."

";

  $email_message .= "이메일 주소 : ".clean_string($email)."

";

  $email_message .= "주소 : ".clean_string($address)."

";

  $email_message .= "제품 : ".clean_string($product)."

";

  $email_message .= "제품 종류 : ".clean_string($subproduct)."

";

  $email_message .= "고장 내용 : ".clean_string($fix)."

";

  $email_message .= "내용 : ".clean_string(nl2br($content))."

";</p>

<p>

  if(!empty($filename) && file_exists($target_file)) {

      $email_message .= "첨부파일 : <a target='_blank' href='" . $file_url . "' download>".$filename."</a>

";

  } else {

      $email_message .= "첨부파일 : 없음

";

  }</p>

<p>

 

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

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

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

답변 2개

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

sub0402_send 에는 아래 부분이 없네요

</p>

<pre>
<code>  // 파일 업로드 처리
  $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)) {
    @mkdir($target_dir, 0707);
    @chmod($target_dir, 0707);
  }
  move_uploaded_file($tmpName, $target_file);</code></pre>

<p>

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

답변에 대한 댓글 1개

s
sliverzero
1년 전
이 부분은 동일하여 생략하였습니다ㅠㅠ 원래 파일에는 있습니다!

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

e
1년 전

https://mara.tistory.com/473

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

PHP_VALUE max_input_vars 50000

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

답변에 대한 댓글 1개

s
sliverzero
1년 전
기본상태가 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>";
}

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

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

로그인