폼이 있는데 나는 required
속성 이외의 클라이언트 쪽 유효성 검사를 수행하지 않습니다. 나는 서버 쪽에서 검증을하고있다.동시에 리다이렉트 및 POST
가사 /은 add.php
<form action="../scripts/lyrics/submit_lyrics.php" id="lyricsForm" method="post" autocomplete="off" enctype="multipart/form-data">
양식 데이터 별도 PHP 파일에서 처리된다. 검색 및 다음과 같은 방법으로 양식 데이터의 유효성을 검사 :
스크립트/가사/submit_lyrics.php
$form_data = new FormData(["artist", "album", "song", "year", "track_no", "lyrics"], "sssiis");
$form_data->validate();
무엇 validate
방법을 수행하는 것은
public function validate() {
$valid = $this->check_form_data($fields);
$fields = implode(",", $fields);
if (!$valid) {
header("location: ".BASE."lyrics/add?status=error&problem=input&specifics=$fields");
exit;
}
}
확인 양식 데이터입니다 리디렉션 양식 페이지 (가사/add.php)에 페이지 ( 스크립트/가사/submit_lyrics.php) 검증 (실패한 경우). 그런 다음 GET
메서드를 사용하여 입력에 문제가 있음을 나타내는 오류 메시지를 출력합니다.
내가 POST
을 사용하여 이것을 수행 할 수 있는지 궁금합니다. 나는
header("location: ".BASE."lyrics/add?status=error&problem=input&specifics=$fields");
그것이
BASE."lyrics/add"
에 페이지를 리디렉션 또한 해당 페이지에
POST
를 사용하여 검증 정보를 보낼 수 있도록이 줄을 수정해야합니다. 그래서 여전히 유효성 검사 오류를 출력 할 수 있지만
GET
대신
POST
을 사용합니다.
이것이 가능합니까?
세션에 값을 저장하십시오. –
이것에 컬을 사용할 수 있습니다 –
원본 URL을 호출하는 데 사용되는 동일한 '동사'로 리디렉션되는 http 307이 있습니다. 그래서 만약 당신이 "foo.php"에 글을 올리면 307은 "bar.php"로 가고, 브라우저는 bar.php가 아닌 get.php에 글을 올릴 것입니다. –