두 페이지로 구성된 사용자 등록 양식의 입력을 확인하고 있습니다. $_POST
입력이 유효성 검사를 통과하면 $valid
변수가 true
으로 설정됩니다.2 단계 양식의 유효성을 검사하는 방법은 무엇입니까?
최초 등록 양식의 유효성이 성공적으로 확인 된 경우에만 사용자를 두 번째 등록 양식으로 가져 오는 방법 (예 : $valid
은 true
)
두 페이지로 구성된 사용자 등록 양식의 입력을 확인하고 있습니다. $_POST
입력이 유효성 검사를 통과하면 $valid
변수가 true
으로 설정됩니다.2 단계 양식의 유효성을 검사하는 방법은 무엇입니까?
최초 등록 양식의 유효성이 성공적으로 확인 된 경우에만 사용자를 두 번째 등록 양식으로 가져 오는 방법 (예 : $valid
은 true
)
대신 자바 스크립트를 사용하여 양식을 확인할 수 추가, 다음 형태로 onsubmit="validateForm()"
을 추가하고 validateForm()
기능은 true 또는 false를 반환합니다. false를 반환하면 양식이 제출되지 않습니다.
PHP로 유효성을 검사하려면 먼저 양식을 제출해야하며, 유효하지 않으면 원래 양식 페이지로 리디렉션하지만 제출 된 값을 다시 설정해야합니다. 내가해야 할 일은 먼저 페이지 상단의 양식 필드에 대한 모든 변수를 인스턴스화하고 공백 값으로 설정하는 것입니다. 그런 다음 valid = false와 같은 플래그에 대한 섹션 검사를 수행하고, 그렇다면 해당 변수를 게시 된 값으로 업데이트하십시오. 예를 들어
는 :
<form name="myForm" action="" method="post">
<input type="text" name="first_name" value="<?=echo $first_name?>">
<input type="text" name="last_name" value="<?=echo $last_name?>">
<input type="text" name="email" value="<?=echo $email?>">
<input type="text" name="phone" value="<?=$phone?>">
</form>
은 상기 예에만 로직의 예시 목적을위한 것이주의 :
<?php
$first_name = '';
$last_name = '';
$email = '';
$phone = '';
$valid = true;
// Check if valid:
if (isset($_POST['first_name'])) {
// Validate string and if bad valid = false.
$valid = false;
// Set value from $_POST;
$first_name = $_POST['first_name'];
}
if(isset($_POST['email'])) {
// Perform validation.
$valid = true; // else false
$email = $_POST['email'];
}
// Check valid flag.
if (!valid) {
// Display some error to the user.
$message = 'There was something wrong.';
} else {
// Tedirect to the destination page.
// header(..);
}
그 다음 페이지의 상단 변수 필드의 값을 설정. 이 취약점은
XSS 및 기타 유형의 취약점을 노출합니다.
$_POST
을 받고 header을 사용하여 유효성 검사 리디렉션 사용자를 두 번째 등록 페이지로 전달합니다.
그리고 그 일을하기 전에
는$_SESSION
및 2 차 등록 페이지에 액세스합니다에서
true
중 하나
header('Location: http://example.com/2ndregistrationstep.php?valid=true')
사용자가 GET 매개 변수를 변경할 수 있기 때문에 양식의 상태를 GET 매개 변수로 전달하면 안됩니다. 세션 상태에 의존하는 경우 만료 된 세션의 사례를 처리하고 있는지 확인하십시오. – Gajus
귀하의 스크립트에 등록 양식을 직접 인쇄한다고 가정합니다. 이유는 단순 논리를 추가하지 : 당신이 클라이언트 사이트 확인을 위해 자바 스크립트를 사용 해달라고 이유
<?php
if (isset($_POST)) {
// .. validate, and then
$_SESSION['valid'] = TRUE; // or FALSE
}
if (empty($_SESSION['valid'])) {
// .. print first step
} else {
// .. print second step
}
를, 등록 절차에 대한 도움의 큰 거래 될 것입니다 – swapnilsarwe
이외 당신이 사용자를 보내야 코드를 보지 않고 아무 말도 꽤 하드 제출 된 데이터가 유효하지만 이미 알고 있다면 즉시 두 번째 단계로 넘어갑니다. – JJJ