Extra Form
PHP PHP 5.3
CMS XpressEngine

xe로 제작중인데요.

 

컨택트 폼 연동을 했는데 form 값 체크 하는 모듈이 어디에 있는지요?

 

<filter name="insert" module="board" act="procBoardInsertDocument" confirm_msg_code="confirm_request">
  <form>
    <node target="user_name" required="true" maxlength="20"/>
    <node target="password" required="true" />
    <node target="email_address" maxlength="250" required="true" filter="email" />
    <node target="address" maxlength="250" required="true" />
    <node target="mobile_phone" maxlength="4" required="false" filter="tel" />
    <node target="homepage" maxlength="250"/>
    <node target="title" required="true" minlength="1" maxlength="250" />
    <node target="content" required="true" minlength="1" />
    <node target="inquiry" required="true" minlength="1" />
    <node target="category_srl" required="true" />
  </form>
  <response callback_func="completeDocumentInserted">
    <tag name="error" />
    <tag name="message" />
    <tag name="mid" />
    <tag name="document_srl" />
    <tag name="category_srl" />
  </response>
</filter>
 

 

위 부분에서 붉은 부분이 체크 함수인거같은데 어느 파일에 있는지 모르겠습니다.

email_address 입력 박스에 이메일 형식 체크 안하려고 하는데 어디에서 그 작업을 해야 하는지 모르겟네요,ㅠㅠ

  • ?
    <node target="email_address" maxlength="250" required="true" filter="email" />
    에서 filter="email" 이 이메일형식 체크하는겁니다.
    이메일 필수도 없애고프면 required="true" 도 지워버리면 되고요
  • ? ?
    답변 감사합니다~^^
  • ? ?
    말씀 주신대로 required="true" 를 삭제 했는데도 이메일 올바른 형식이 아니라고 체크 되네요

    그래서 required="false"로 해봐도 역시나 체크를 하구요..ㅠ
  • ? ?
    변경해서 저장한 후
    관리자페이지 하단의... 캐시파일 재생성 해보세요. 혹시모르니 세션정리도 하시고..
  • profile
    일단 최종 질문으로는 세진님말씀처럼 해당 코드에서 required 부분을 지워주시면 되요.

    procBoardInsertDocument 는

    proc <- 어떤방식으로 실행될 것인지 POST으로 form 을 받는지 아니면 display의 약자인 disp의 액션값인지를 정하는 부분입니다. 이 부분은 XE모듈 제작이나 액션값을 알려고 할때 알아두시면 좋습니다.

    Board <- 모듈명 (modules/board 와 같은 이름들입니다 앞부분이 대문자로 시작하고요)

    InsertDocument <- 해당 규칙의 이름(모듈제작자가 지정)

    이와 같은 형식으로 제작됩니다.

    따라서 proc 이다음 Board 가 잇기때문에 다음 대문자가 나오기전까지의 이름이 모듈의 경로를 파악할 수 있는 것입니다.

    Board <-까지 이므로 이는 modules/board 안에 있는 파일중에 하나 입니다.

    그리고

    procBoardAdmin~ 으로 시작되는 것이랑
    procBoard~ 으로 시작되는 부분이 있는데 procBoardAdmin 부분은 대부분 board.admin.controller.php파일에 위치하고요

    procBoard~ 으로 시작되는 것은 대부분 board.controller.php 안에 들어갑니다.

    procBoard~
    dispBoard~ 와 같은 규칙은 모듈명포함 .view.php 으로 끝나는 파일과 controller.php 으로 끝나는 파일들속에 액션값으로 만드는 규칙으로 생성되는 파일들이니 대부분 이 파일들을 확인해보시면 좋습니다.
  • profile ?
    답변 감사드립니다.
    아주 유용한 정보를 알려주셨네요
    차근차근 보겠습니다.
    감사합니다^^
  • profile
    이메일 형식 체크도 하지 않을 거면 이메일을 아예 받지 말고 이름이나 닉네임, 확장변수 등 다른 필드를 활용하는 편이 나을 텐데요? DB의 email_address 필드에 이메일이 아닌 데이터가 들어가면 나중에 어디에선가 문제가 발생할 가능성이 있습니다. 정석대로 하세요 정석대로~ ㅎㅎ
  • profile ?
    네 답변 감사합니다.
    지당하고 옳은 말씀입니다.
    귀찮다고 대충 편법쓰지말고 정석대로 하는게 100번 옳은 말씀입니다.
    항상 나중에 문제가 발생하더라구요^^