이름, 성, 전화 번호, 메시지 등의 입력 필드가 여러 개인 양식이 있고이 필드에 모두 유효성이 있다고 가정 해 보겠습니다. 우리는 잊었 기 때문에 이름을 제외한 모든 것을 입력합니다. 데이터 전송을 위해 제출을 클릭했지만 이름을 입력하는 것을 잊어 버렸기 때문에 오류가 반환되었습니다. 입력 한 모든 정보가 계속 표시되므로 다시 입력 할 필요가 없습니다.PHP에 입력 된 값을 유지하는 방법 사용자가 제출 버튼을 누른 후 다시 입력 할 필요가 없습니까?
어떻게해야합니까? 아래 코드는 from this website입니다.
<?php
if (isset($_POST["submit"])) {
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$human = intval($_POST['human']);
$from = 'Demo Contact Form';
$to = '[email protected]';
$subject = 'Message from Contact Demo ';
$body ="From: $name\n E-Mail: $email\n Message:\n $message";
// Check if name has been entered
if (!$_POST['name']) {
$errName = 'Please enter your name';
}
// Check if email has been entered and is valid
if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$errEmail = 'Please enter a valid email address';
}
//Check if message has been entered
if (!$_POST['message']) {
$errMessage = 'Please enter your message';
}
//Check if simple anti-bot test is correct
if ($human !== 5) {
$errHuman = 'Your anti-spam is incorrect';
}
// If there are no errors, send the email
if (!$errName && !$errEmail && !$errMessage && !$errHuman) {
if (mail ($to, $subject, $body, $from)) {
$result='<div class="alert alert-success">Thank You! I will be in touch</div>';
} else {
$result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later.</div>';
}
}
}
?>
에코 그들 =는 isset ($ _ POST [ '이름'])? @Robin :'post' 연산을 사용하는 것이 안전 할 수도 있지만, 그럼에도 불구하고'htmlspecialchars()'를 사용하여 렌더링하는 습관을 익히는 것은 좋은 생각입니다. $ _POST [ 'name'] : ""?> –
그렇지 않으면 초보자가'get' 변수를 이스케이프 처리하지 않고 모든 종류의 XSS 문제를 일으키기위한 작은 단계 일뿐입니다. – halfer