フォーム ページが GET パラメータから参照されているかどうかを最初に確認するスクリプトがあります。
$page['is_referred'] = isset($_GET['rfr']) ? 1 : 0;
次に、その設定値が Symfony2 フォームの非表示フィールドの値として使用されます
$form = $app['form.factory']->createBuilder('form', $data)
//....
->add('referred', 'hidden', array(
'data' => $page['is_referred'],
))
->getForm();
それから
if ('POST' === $request->getMethod()) {
$form->bindRequest($request);
if ($form->isValid()) {
//...
$referred = $form->get('referred')->getData();
$msg_referer = "Thanks from Referrer";
$msg_noreferer = "Thanks";
if( 1 == $referred ){
$page['thanks'] = $msg_referer;
}else{
$page['thanks'] = $msg_noreferer;
}
//..
}
}
非表示フィールドは、URL に含まれている場合、メイン サイトでは問題なく読み取られますが?rfr
、Facebook で iframe を使用して?rfr
存在する場合、代わりに $msg_noreferer メッセージが表示されます。なぜこれが起こるのかについてのアイデアはありますか?
編集:ソースを確認すると、Facebookでフィールド値が正しく設定されていることにも言及する必要がありますが、データが正しく投稿されていないようです