我有一个脚本,首先检查表单页是否是从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;
}
//..
}
}
当?rfr
在网址中时,主网站上的隐藏字段可以正常读取,但是当在Facebook中存在iframed并且存在?rfr
时,会显示$ msg_noreferer消息。关于为什么会发生这种情况的任何想法?
编辑:我还应该提一下,当我查看源代码时,在Facebook中正确设置了字段值,但它似乎没有通过正确的方式发布数据
答案 0 :(得分:0)
我还应该提一下,当我查看来源时,在Facebook中正确设置了字段值,但它似乎没有正确发布数据
我会说,该值已发布正常,但表单验证不接受它,因为隐藏字段不会在验证时添加到表单中。
如果在处理从浏览器收到的POST请求时实际执行了向表单添加隐藏字段的代码,那么检查了吗?