将相同的会话从浏览器转换为Adobe

时间:2018-04-20 14:00:19

标签: php google-chrome session-cookies acrobat pdf-form

我正在使用PDF表单,我已经能够将信息发送到php脚本,当我将其作为HTML发送时,它正确获取数据字段值。

我的问题是,我想知道是谁通过让用户登录我制作的页面来发送表单。当他连接时,我无法得到他的ID,因为会话和cookie保留在浏览器中,当我通过单击提交按钮发送表单时,Adobe程序获得另一个PHPSESSID,Cookies也不同。

有没有办法让两者都在同一台机器上? 我尝试使用IP进行识别,但这不是一个好方法,因为它们可能在NAT之后。

当我登录网站时,Adobe Acrobat是否有办法获得相同的会话实例或Cookie Chrome设置?

1 个答案:

答案 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