글쓰기폼 2개일때 하나에서 올바른 사용 방법으로 해결방법 부탁드립니다.

글쓰기폼 2개일때 하나에서 올바른 사용 방법으로 해결방법 부탁드립니다.

QA

글쓰기폼 2개일때 하나에서 올바른 사용 방법으로 해결방법 부탁드립니다.

본문

안녕하세요

메인에 상담신청 폼을 2개 넣으려고 합니다

 

아래 방식으로 불러오고 있는대

하나는 잘되는대 하나가 "올바른 방법으로 이용해 주세요" 이렇게 

메세지가 뜹니다 

 

한페이지에 폼을 두개 사용 하는 방법은 없을까요

 

게시판 스킨을  oline.php사용했구요.

<? include_once("customer1.php"); ?>

<? include_once("customer2.php"); ?> 이런식으로 불러오고 있습니다.

 

소스는 이렇습니다.

customer1.php


<?
$g5_path = ".."; // 그누보드가 있는 상대경로를 적어줌
?>
<script language="javascript">
var char_min = parseInt(<?=$write_min?>); 
var char_max = parseInt(<?=$write_max?>); 
</script>
<style type="text/css">
.form-box .form-con{display:inline-block; width:100%; margin-bottom:16px; box-sizing:border-box;}
    
    .form-box .form-con .in_box{width: 100%;height: 48px;padding: 0 20px 0 20px;border: 1px solid #f6f6f6;background-color: #f6f6f6;color: #494949;line-height: 48px;outline: 0;}
    
.form-box .form-con ul li{display:table;width:100%;margin-bottom:16px;}
.form-box .form-con ul li .fl-name{float:left;width:15%;font-size: 14px;line-height:50px; vertical-align:middle;}
.form-box .form-con ul li .fr-con{float:left;width:80%;}
.form-box .form-con ul li .fr-con .text-box{diaplay:table;width:100%;}
.form-box .form-con ul li .fr-con .text-box input{width:34%;float:left;margin-left:1%;}
    
    
    
    
.form-box .form-con ul li .fr-con .text-box select{width:30%;float:left;}
.form-box .form-con ul li .fr-con textarea{height:164px;resize:none;}
.form-box .form-con .provision{display:table;width:100%;margin-top:20px; vertical-align: middle}
.form-box .form-con .provision label{cursor:pointer;font-weight:300;}
.form-box .form-con .provision label input{width:20px;height:20px;}
.form-box .form-con .provision label span{margin-left:5px;vertical-align: middle}
.form-box .form-con .provision a{padding:0 15px;height:35px;line-height:35px;font-size:12px;background:#999;color:#fff;display:inline-block;margin-left:10px;}
.form-box .receive-btn{margin-top:5px; float: right}
.form-box .receive-btn input{width: 176px;height:44px;font-size:16px;letter-spacing: -2px;background: #1773e9;border: none;color: #fff;cursor: pointer;margin-right: 30px}
    
    
    
@media (max-width: 600px){
    .form-box .receive-btn input{padding:10px 0;}
    .form-box .receive-btn{margin-top:5px; float: left}
    
    .form-box .form-con ul li .fl-name{float:left;width:20%;font-size: 14px;line-height:50px; vertical-align:middle;}
.form-box .form-con ul li .fr-con{float:left;width:80%;}
    
    .form-box .form-con .provision a{padding:0 10px;height:35px;line-height:35px;font-size:12px;background:#999;color:#fff;display:inline-block;margin-left:0px;}
}
</style>
<script type="text/javascript">
function checkFrm(obj) {
if(obj.wr_6.checked == false) {
  alert('개인정보 활동동의에 체크해주세요.');
  obj.wr_4.focus();
  return false;
    
 }
}
</script>
<div class="form-box" >
  <form name=frm method=post action="<?=$g5['path']?>/bbs/write_update.php" onsubmit="return checkFrm(this);">
        <input type="hidden" name="token" value=<?php echo get_write_token('incom') ?>> 
        <input type=hidden name=bo_table value="incom">
        <input type=hidden name="wr_1" value="">
        <input type=hidden name="wr_2" value="">
        <input type=hidden name="wr_3" value="">
        <input type=hidden name="wr_name" value="관리자">
        <input type=hidden name="wr_subject" value="님 상담신청">
        <input type=hidden name="wr_content" value="내용">
        <input type=hidden name="ca_name" value="상담신청">
        
    
        
        
        
        <div class="form-con">
            <ul>
                <li>
                    <span class="fl-name">이름</span>
                    <span class="fr-con">
                        <input class="in_box" type="text" name="wr_1" placeholder="이름을 입력하세요" required itemname="이름"/>
                    </span>
                </li>
                
                <li>
                    <span class="fl-name">희망차종</span>
                    <span class="fr-con">
                        <input class="in_box" type="text" name="wr_2" placeholder="ex) 뉴그렌져" required itemname="차종"/>
                    </span>
                </li>
                
                
                
                <li>
                    <span class="fl-name">연라처</span>
                    <span class="fr-con">
                        <input class="in_box" type="text" name="wr_3" placeholder="ex) *** 개인정보보호를 위한 휴대폰번호 노출방지 ***" required itemname="차종"/>
                    </span>
                </li>
                
                
                
                
            
            </ul>
            
            
            
            <div class="provision">
                <label for="provision-check">
                    <input id="provision-check" type="checkbox" name="wr_4" value="4" <?=$write[wr_4]?>/ >
                    <span>개인정보처리방침 동의</span>
                </label>
                <a href="#person_request2" class="open_modal">개인정보처리방침</a>
            </div>
            
            
        
            
        </div>
        <div class="receive-btn">
            
            <input name="image" type="submit" value="상담신청 하기" alt="상담신청 하기">
        </div>        
  </form>
</div>
<!--//-->
 

 

customer2.php


<?
$g5_path = ".."; // 그누보드가 있는 상대경로를 적어줌
?>
<script language="javascript">
var char_min = parseInt(<?=$write_min?>); 
var char_max = parseInt(<?=$write_max?>); 
</script>
<style type="text/css">
.form-box .form-con{display:inline-block; width:100%; margin-bottom:16px; box-sizing:border-box;}
    
    .form-box .form-con .in_box{width: 100%;height: 48px;padding: 0 20px 0 20px;border: 1px solid #f6f6f6;background-color: #f6f6f6;color: #494949;line-height: 48px;outline: 0;}
    
.form-box .form-con ul li{display:table;width:100%;margin-bottom:16px;}
.form-box .form-con ul li .fl-name{float:left;width:15%;font-size: 14px;line-height:50px; vertical-align:middle;}
.form-box .form-con ul li .fr-con{float:left;width:80%;}
.form-box .form-con ul li .fr-con .text-box{diaplay:table;width:100%;}
.form-box .form-con ul li .fr-con .text-box input{width:34%;float:left;margin-left:1%;}
    
    
    
    
.form-box .form-con ul li .fr-con .text-box select{width:30%;float:left;}
.form-box .form-con ul li .fr-con textarea{height:164px;resize:none;}
.form-box .form-con .provision{display:table;width:100%;margin-top:20px; vertical-align: middle}
.form-box .form-con .provision label{cursor:pointer;font-weight:300;}
.form-box .form-con .provision label input{width:20px;height:20px;}
.form-box .form-con .provision label span{margin-left:5px;vertical-align: middle}
.form-box .form-con .provision a{padding:0 15px;height:35px;line-height:35px;font-size:12px;background:#999;color:#fff;display:inline-block;margin-left:10px;}
.form-box .receive-btn{margin-top:5px; float: right}
.form-box .receive-btn input{width: 176px;height:44px;font-size:16px;letter-spacing: -2px;background: #1773e9;border: none;color: #fff;cursor: pointer;margin-right: 30px}
    
    
    
@media (max-width: 600px){
    .form-box .receive-btn input{padding:10px 0;}
    .form-box .receive-btn{margin-top:5px; float: left}
    
    .form-box .form-con ul li .fl-name{float:left;width:20%;font-size: 14px;line-height:50px; vertical-align:middle;}
.form-box .form-con ul li .fr-con{float:left;width:80%;}
    
    .form-box .form-con .provision a{padding:0 10px;height:35px;line-height:35px;font-size:12px;background:#999;color:#fff;display:inline-block;margin-left:10px;}
}
</style>
<script type="text/javascript">
function checkFrm2(obj) {
if(obj.wr_4.checked == false) {
  alert('개인정보 활동동의에 체크해주세요.');
  obj.wr_4.focus();
  return false;
    
 }
}
</script>
<div class="form-box" >
  <form name=frm2 method=post action="<?=$g5['path']?>/bbs/write_update.php" onsubmit="return checkFrm2(this);">
        <input type="hidden" name="token" value=<?php echo get_write_token('incom') ?>> 
        <input type=hidden name=bo_table value="incom">
        <input type=hidden name="wr_1" value="">
        <input type=hidden name="wr_2" value="">
        <input type=hidden name="wr_3" value="">
        <input type=hidden name="wr_name" value="관리자">
        <input type=hidden name="wr_subject" value="님 상담신청">
        <input type=hidden name="wr_content" value="내용">
        <input type=hidden name="ca_name" value="상담신청">
        
    
        
        
        
        <div class="form-con">
            <ul>
                <li>
                    <span class="fl-name">이름</span>
                    <span class="fr-con">
                        <input class="in_box" type="text" name="wr_1" placeholder="이름을 입력하세요" required itemname="이름"/>
                    </span>
                </li>
                
                <li>
                    <span class="fl-name">희망차종</span>
                    <span class="fr-con">
                        <input class="in_box" type="text" name="wr_2" placeholder="ex) 뉴그렌져" required itemname="차종"/>
                    </span>
                </li>
                
                
                
                <li>
                    <span class="fl-name">연라처</span>
                    <span class="fr-con">
                        <input class="in_box" type="text" name="wr_3" placeholder="ex) *** 개인정보보호를 위한 휴대폰번호 노출방지 ***" required itemname="차종"/>
                    </span>
                </li>
                
                
                
                
            
            </ul>
            
            
            
            <div class="provision">
                <label for="provision-check">
                    <input id="provision-check" type="checkbox" name="wr_4" value="4" <?=$write[wr_4]?>/ >
                    
                </label>
                <span>개인정보처리방침 동의</span>
                <a href="#person_request2" class="open_modal">개인정보처리방침</a>
            </div>
            
            
        
            
        </div>
        <div class="receive-btn">
            
            <input name="image" type="submit" value="상담신청 하기" alt="상담신청 하기">
        </div>        
  </form>
</div>
<!--//-->
 
 

 

아래와 같이 form name도 변경했는대 

올바른 방법으로 이용 하세요로 나옮니다

방법이 없을까요 

한번 검토 부탁드립니다

 

<form name=frm method=post action="<?=$g5['path']?>/bbs/write_update.php" onsubmit="return checkFrm(this);">

->

<form name=frm2 method=post action="<?=$g5['path']?>/bbs/write_update.php" onsubmit="return checkFrm2(this);">

이 질문에 댓글 쓰기 :

답변 2

아 이건 토큰 문제군요

<?php $token = get_write_token('incom'); ?>

<? include_once("customer1.php"); ?>

<? include_once("customer2.php"); ?>

인클루드 파일 위에 토큰생성을 한 변수에 담으시고

각 form에 <input type="hidden" name="token" value=<?php echo $token ?>>

이런식으로 변경해보세요

각 폼마다 get_write_token해버리니 incom에 대한 토큰이 각각 생성되버리면 가장 최근 생성된 토큰값만 작동합니다
그렇기에 한 변수에 담아서 생성은 단한번만 해주고 각 폼에 뿌려주면 어차피 두개 동시에 서브밋 되는것이 아니라면 정상작동될것입니다

Policia님 염치없지만 한번더 봐주실수 있을까요
이번에는 슬라이드부분이 올바른으로 떠서요


오른쪽 슬라이드 부분
  <?php $token = get_write_token('incom'); ?>
<?php include_once("../../../customer2.php"); ?>
      <?php include_once("customer2.php"); ?>


tail 부분
<?php $token = get_write_token('incom'); ?> 
<?php include_once("../../../customer1.php"); ?>
<?php include_once("customer1.php"); ?>
<?php include_once("../customer1.php"); ?>



customer1.php
  <form name=frm method=post action="<?=$g5['path']?>/bbs/write_update.php" onsubmit="return checkFrm(this);">
  <input type="hidden" name="token" value=<?php echo $token ?>>


customer2.php부분
  <form name=frm2 method=post action="<?=$g5['path']?>/bbs/write_update.php" onsubmit="return checkFrm2(this);">
<input type="hidden" name="token" value=<?php echo $token ?>>

한 페이지내에서는 한 테이블에 대한 토큰은 딱 한번만 생성되어야합니다
get_write_token을 한번만 선언하세요
같은 테이블의 토큰을 두번 선언하는 순간 앞에 생성된 토큰은 못쓰는 토큰이 되어버립니다

폼을 두개 동시에 서브밋하는게 아닌 이상 정상작동해야 정상일텐데요

 

해당 파일이 인클루드 되어있는 곳도 볼수있을까요?

이렇게 해도 안되긴 하는대
우선 감사드리고 답변 채택부터 했습니다^^

오른쪽 슬라이드 부분
  <?php $token = get_write_token('incom'); ?>



tail 부분
<?php /* $token = get_write_token('incom'); */ ?>
이렇게 하시면 됩니다.

지금 사이트 들어가보니 token값이 정상적으로 들어가지않고있습니다

오른쪽슬라이드가 tail보다 더 아래에있나보네요?

<?php $token = get_write_token('incom'); ?>는 무조건 상단에 선언되면 됩니다
각 폼이 인클루드 되는 위치를 잘 보시고 <?php $token = get_write_token('incom'); ?>가 모든 인클루드 상단에 올수있도록 위치를 변경해주세요

말로 설명하니 조금 복잡하게 들릴수있는데
각 폼 인클루드 순서를 정확하게 한번 보세요
인클루드가 선언되기전에 <?php $token = get_write_token('incom'); ?>가 맨위에 있어야합니다

답변을 작성하시기 전에 로그인 해주세요.
전체 2

회원로그인

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