채택완료

자동방지 문자 틀렸을때 내용유지

2023-12-26 (화) 15:05:06 2,338

그누보드5 를 커스터마이징해서 신청폼으로 사용중인데요.

자동등록방지 문자를 잘못 입력하면 리프레시 되면서 입력한 내용이 모두 사라집니다.

비회원이 신청폼 작성후 자동등록 방지 문자를 잘못 입력한 경우에 

입력한 내용은 유지되고 자동등록 번호만 새로 입력할 수 있게 하려면 어떻게 해야 할까요?

답변 2개 / 댓글 1개

채택된 답변
+20 포인트
2023-12-31 (일) 11:39:27

다음과 같은 방법으로 가능하지 않을까 합니다.

참고하셔서 실제 구현하고자 하는 형식으로 가공하시면 될것 같네요

1. 세션 또는 쿠키사용

자동등록 방지 문자를 확인하기 전에, 사용자가 입력한 내용을 세션에 저장

Copy
// 세션 시작
session_start();

// 사용자가 제출한 내용을 세션에 저장
$_SESSION['form_data'] = $_POST; // 이는 예시이며, 실제로는 데이터를 적절히 가공하여 저장해야 합니다.

2. 자동등록방지 문자 검증

자동등록 방지 문자를 검증하기 전에, 세션에서 저장한 데이터를 다시 가져옴

Copy
// 세션 시작
session_start();

// 사용자가 입력한 내용을 가져옴
$form_data = isset($_SESSION['form_data']) ? $_SESSION['form_data'] : array();

3. 폼에 이전데이터 입력

Copy
<form action="your_form_action.php" method="post">
    <!-- 이전에 입력한 데이터를 가져와서 폼에 채워 넣기 -->
    <input type="text" name="username" value="<?php echo isset($form_data['username']) ? $form_data['username'] : ''; ?>" />
    <!-- 다른 입력 필드들도 동일하게 처리 -->
    <input type="text" name="email" value="<?php echo isset($form_data['email']) ? $form_data['email'] : ''; ?>" />

    <!-- 자동등록 방지 문자 입력 필드 -->
    <input type="text" name="captcha" />

    <input type="submit" value="Submit" />
</form>

4. 세션데이터 초기화

세션에 저장한 데이터는 한 번 사용하면 초기화해야함

Copy
// 세션 시작
session_start();

// 사용자가 입력한 데이터를 가져옴
$form_data = isset($_SESSION['form_data']) ? $_SESSION['form_data'] : array();

// 세션 초기화
unset($_SESSION['form_data']);

답변에 대한 댓글 1개

상세한 답변 감사 드립니다. 알려주신 내용으로 한번 시도해 보겠습니다. 새해 복 많이 받으세요.^^

JavaScript sessionStorage 또는

데이터의 보안이 필요한경우 서버 session 을 이용하는 방법이 있을것 같습니다.

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