私はGUMP https://github.com/Wixel/GUMPを使用してサーバーサイドフォームの検証を行い、リダイレクト後のメッセージの表示に関する質問があります。GUMPを使用したPHPフォームの検証
送信後にフォームデータを検証し、エラーがあった場合はフォームにリダイレクトしますが、リダイレクト後にフォームにエラーを渡す最善の方法はわかりません。
私はこれを行うための二つの方法を提案し、この質問Header Redirect after form Validation in PHP読んだ:答えの作者は、方法1であると考えて
1.
$message="Some message for the next page.";
$message=urlencode($message);
header("Location:page.php?message=".$message);
2.
$_SESSION['message']='some other message';
をより安全ですが、それがどうして私に伝えられますか?
は、私もそれはPHP-フォームビルダークラスhttps://github.com/lkorth/php-form-builder-classで行うのかを見て持っていた、と彼らは方法2を使用するように見える:
/*Valldation errors are saved in the session after the form submission, and will be displayed to the user
when redirected back to the form.*/
public static function setError($id, $errors, $element = "") {
if(!is_array($errors))
$errors = array($errors);
if(empty($_SESSION["pfbc"][$id]["errors"][$element]))
$_SESSION["pfbc"][$id]["errors"][$element] = array();
foreach($errors as $error)
$_SESSION["pfbc"][$id]["errors"][$element][] = $error;
}
だから、私の質問があり、最良の方法でありますこれについて行く? $_GET
またはセッション変数にエラーを渡しますか?
P.S.私が何かを見逃してしまった場合、それを行う方法があります。これは簡単です/ GUMPに組み込まれています、それを指摘してください!