私はフォームを持っており、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;
}
}
チェックフォームデータとでリダイレクトフォームページ(lyrics/add.php)にページ(スクリプト/歌詞/ submit_lyrics.php)の情報検証(失敗した場合)。次に、GET
メソッドを使用して入力に問題があることを示すエラーメッセージを出力します。
私がPOST
を使用してこれを行うことができるかどうか不思議です。私はそれがBASE."lyrics/add"
にページをリダイレクトしてもそのページにPOST
を使用して検証情報を送信します
header("location: ".BASE."lyrics/add?status=error&problem=input&specifics=$fields");
この行を変更する必要があります。だから私はまだGET
の代わりにPOST
を使用して、検証エラーを出力することができます。
これは可能ですか?
セッションに値を格納します。 –
これにcurlを使うことができます –
元のURLを呼び出すために使用された同じ動詞でリダイレクトされるhttp 307があります。だからあなたが "foo.php"に投稿し、307が "bar.php"であれば、ブラウザはbar.phpへの投稿を取得します。 –