sfGuardによって保護されたPOSTデータを取るアクションがあります。つまり、ユーザーがログインしていない場合は、POSTデータがログインフォームに送信されます。通常、これは問題ではなく、ユーザーは引き続きログインし、データを再度提出する必要があります。セキュアアクションへのPOST要求の送信
残念ながら、ログインフォームは、POSTデータをフォーム自体と一緒に送信したように使用しているようです。これは、必要なユーザー名とパスワードのフィールドが欠落していると不満を持ち、CSRFトークンが欠落していると不平を言うことを意味します。この最後の問題は、フォームを送信した後で、ユーザがログインできないことを意味するものではありません。
ログインしていないユーザーにはフォームを提示しないでください。フォームが開いたままユーザーがログアウトする可能性があります。だから私はインターフェイスを水密でエラーのない状態に保つことを求めている。
これはsfGuardの欠点ですか、避けることができますか、私は何か間違ったことをやっていますか?明確にするために
は、ルートは次のようになります。次のように
add_subgroup:
url: /group/:id/add
class: sfPropelRoute
options:
model: Group
type: object
param: { module: subgroups, action: create }
requirements:
group_id: \d+
sf_method: [post]
リクエストを送信するために使用される形態である:
<form action="<?php echo url_for('add_subgroup', $group) ?>" method="post">
<input type="hidden" name="group_id" value="<?php echo $group->getId() ?>" />
<input type="text" name="subgroup_id" />
<input type="submit" class="button" value="Add" />
</form>
あなたはログインフォームまたは何をしようとしている、より具体的なことができますか? – Henry
保護されたアクションを呼び出そうとしています。ユーザーがログインしていない場合は、既存のログインフォームに移動します。アクションがPOSTデータを必要とするため、このPOSTデータはフォームに干渉しています。あなたは私がより具体的にすべきことをより具体的にすることができますか? – Druckles
ユーザーがログインしていない場合はどう扱いますか?ヘッダーのリダイレクトを発行すると、POSTデータはクリアされます。代わりにそれを含めると、POSTデータが表示されます。 –