我正在使用PDF表单,我已经能够将信息发送到php脚本,当我将其作为HTML发送时,它正确获取数据字段值。
我的问题是,我想知道是谁通过让用户登录我制作的页面来发送表单。当他连接时,我无法得到他的ID,因为会话和cookie保留在浏览器中,当我通过单击提交按钮发送表单时,Adobe程序获得另一个PHPSESSID,Cookies也不同。
有没有办法让两者都在同一台机器上? 我尝试使用IP进行识别,但这不是一个好方法,因为它们可能在NAT之后。
当我登录网站时,Adobe Acrobat是否有办法获得相同的会话实例或Cookie Chrome设置?
答案 0 :(得分:0)
为什么不使用php库创建一个带有隐藏字段的" session"而不是这样尝试呢?包含会话ID?
在PHP中加载特定会话:
session_id($_POST['my_hidden_value']);
session_start();
// $_SESSION is available now
请记住,当传递带有文件的会话时,它可能会被劫持,会话将在一段时间后被删除,因此您应该考虑生成一个"下载密钥"链接到用户,将其添加到文档并使用它来确定哪个用户提交了表单 这种方式即使有人拥有下载密钥,他也无法以此用户身份登录。
/ e:您可以使用fpdf文件操作PDF,如下所示:
session_start();
// Load fpdm
require('fpdm.php');
// Create a random session id
$SessionID = md5($_SESSION['userid'] . time());
// Store it in some database here
// Fields to fill out
$fields = array(
'my_hidden_value' => $SessionID
);
// Load pdf, fill field and display it to user
$pdf = new FPDM('template.pdf');
$pdf->Load($fields, false);
$pdf->Merge();
$pdf->Output();
来源(修改):http://www.fpdf.org/en/script/ex93.pdf
FPDF:http://www.fpdf.org